MFEM  v4.5.2
Finite element discretization library
Public Types | Public Member Functions | List of all members
mfem::PetscBCHandler Class Reference

Helper class for handling essential boundary conditions. More...

#include <petsc.hpp>

Public Types

enum  Type { ZERO, CONSTANT, TIME_DEPENDENT }
 

Public Member Functions

 PetscBCHandler (Type type_=ZERO)
 
 PetscBCHandler (Array< int > &ess_tdof_list, Type type_=ZERO)
 
virtual ~PetscBCHandler ()
 
Type GetType () const
 Returns the type of boundary conditions. More...
 
void SetType (enum Type type_)
 Sets the type of boundary conditions. More...
 
virtual void Eval (double t, Vector &g)
 Boundary conditions evaluation. More...
 
void SetTDofs (Array< int > &list)
 Sets essential dofs (local, per-process numbering) More...
 
Array< int > & GetTDofs ()
 Gets essential dofs (local, per-process numbering) More...
 
void SetTime (double t)
 Sets the current time. More...
 
void SetUp (PetscInt n)
 SetUp the helper object, where n is the size of the solution vector. More...
 
void ApplyBC (const Vector &x, Vector &y)
 y = x on ess_tdof_list_c and y = g (internally evaluated) on ess_tdof_list More...
 
void ApplyBC (Vector &x)
 Replace boundary dofs with the current value. More...
 
void FixResidualBC (const Vector &x, Vector &y)
 y = x-g on ess_tdof_list, the rest of y is unchanged More...
 
void Zero (Vector &x)
 Replace boundary dofs with 0. More...
 
void ZeroBC (const Vector &x, Vector &y)
 y = x on ess_tdof_list_c and y = 0 on ess_tdof_list More...
 

Detailed Description

Helper class for handling essential boundary conditions.

Definition at line 588 of file petsc.hpp.

Member Enumeration Documentation

◆ Type

Enumerator
ZERO 
CONSTANT 

Constant in time b.c.

TIME_DEPENDENT 

Definition at line 591 of file petsc.hpp.

Constructor & Destructor Documentation

◆ PetscBCHandler() [1/2]

mfem::PetscBCHandler::PetscBCHandler ( Type  type_ = ZERO)
inline

Definition at line 598 of file petsc.hpp.

◆ PetscBCHandler() [2/2]

mfem::PetscBCHandler::PetscBCHandler ( Array< int > &  ess_tdof_list,
enum PetscBCHandler::Type  type_ = ZERO 
)

Definition at line 2737 of file petsc.cpp.

◆ ~PetscBCHandler()

virtual mfem::PetscBCHandler::~PetscBCHandler ( )
inlinevirtual

Definition at line 603 of file petsc.hpp.

Member Function Documentation

◆ ApplyBC() [1/2]

void mfem::PetscBCHandler::ApplyBC ( const Vector x,
Vector y 
)

y = x on ess_tdof_list_c and y = g (internally evaluated) on ess_tdof_list

Definition at line 2768 of file petsc.cpp.

◆ ApplyBC() [2/2]

void mfem::PetscBCHandler::ApplyBC ( Vector x)

Replace boundary dofs with the current value.

Definition at line 2793 of file petsc.cpp.

◆ Eval()

virtual void mfem::PetscBCHandler::Eval ( double  t,
Vector g 
)
inlinevirtual

Boundary conditions evaluation.

In the result vector, g, only values at the essential dofs need to be set.

Definition at line 614 of file petsc.hpp.

◆ FixResidualBC()

void mfem::PetscBCHandler::FixResidualBC ( const Vector x,
Vector y 
)

y = x-g on ess_tdof_list, the rest of y is unchanged

Definition at line 2817 of file petsc.cpp.

◆ GetTDofs()

Array<int>& mfem::PetscBCHandler::GetTDofs ( )
inline

Gets essential dofs (local, per-process numbering)

Definition at line 621 of file petsc.hpp.

◆ GetType()

Type mfem::PetscBCHandler::GetType ( ) const
inline

Returns the type of boundary conditions.

Definition at line 606 of file petsc.hpp.

◆ SetTDofs()

void mfem::PetscBCHandler::SetTDofs ( Array< int > &  list)

Sets essential dofs (local, per-process numbering)

Definition at line 2745 of file petsc.cpp.

◆ SetTime()

void mfem::PetscBCHandler::SetTime ( double  t)
inline

Sets the current time.

Definition at line 624 of file petsc.hpp.

◆ SetType()

void mfem::PetscBCHandler::SetType ( enum Type  type_)
inline

Sets the type of boundary conditions.

Definition at line 609 of file petsc.hpp.

◆ SetUp()

void mfem::PetscBCHandler::SetUp ( PetscInt  n)

SetUp the helper object, where n is the size of the solution vector.

Definition at line 2752 of file petsc.cpp.

◆ Zero()

void mfem::PetscBCHandler::Zero ( Vector x)

Replace boundary dofs with 0.

Definition at line 2836 of file petsc.cpp.

◆ ZeroBC()

void mfem::PetscBCHandler::ZeroBC ( const Vector x,
Vector y 
)

y = x on ess_tdof_list_c and y = 0 on ess_tdof_list

Definition at line 2845 of file petsc.cpp.


The documentation for this class was generated from the following files: