Peano
Loading...
Searching...
No Matches
exahype2.api.blockstructured.DirichletBoundaryConditions.DirichletBoundaryConditions Class Reference

Dirichlet boundary conditions: given a position x outside of the domain and a time stamp t, write the prescribed solution Q there. More...

Inheritance diagram for exahype2.api.blockstructured.DirichletBoundaryConditions.DirichletBoundaryConditions:
Collaboration diagram for exahype2.api.blockstructured.DirichletBoundaryConditions.DirichletBoundaryConditions:

Data Structures

class  Generator
 DirichletBoundaryConditions-specific code generation. More...
 

Public Member Functions

 __init__ (self, str implementation=None, bool stateless=False)
 
- Public Member Functions inherited from exahype2.api.PDETerm.PDETerm
str __repr__ (self)
 
str __str__ (self)
 
"PDETerm.Generator" generator (self)
 Code generator for this term: an instance of this term's own (possibly subclass-specific) Generator.
 

Static Public Attributes

tuple SIGNATURE
 
str NAME = "dirichletBoundaryConditions"
 
- Static Public Attributes inherited from exahype2.api.PDETerm.PDETerm
str NAME
 
str SIGNATURE
 

Additional Inherited Members

- Data Fields inherited from exahype2.api.PDETerm.PDETerm
 name
 
 implementation
 
 stateless
 

Detailed Description

Dirichlet boundary conditions: given a position x outside of the domain and a time stamp t, write the prescribed solution Q there.

virtual void dirichletBoundaryConditions(
const tarch::la::Vector<Dimensions, double>& x,
double t,
double* __restrict__ Q // Q[{{NUMBER_OF_UNKNOWNS}}+{{NUMBER_OF_AUXILIARY_VARIABLES}}]
);

Different to the legacy boundaryConditions() (

See also
python/exahype2/solvers/fv/SingleSweepAbstract.template.h), the term is not handed the solution inside the domain, the face's normal or the mesh size. It is parameterised through position and time only.

A Finite Volume scheme such as exahype2.api.fv.RusanovWithExplicitEuler evaluates the term at the centres of the ghost volumes, i.e. of the volumes of the halo layer which lie outside of the domain, and stores the result in the face data its reconstruction reads from (

See also
exahype2.api.fv.actionsets.ApplyDirichletBoundaryConditions). t is the time stamp of the solution that the time step is about to advance.

A solver needs this term if and only if at least one axis of the domain is not periodic (

See also
exahype2.api.Project.set_global_simulation_parameters()). If all axes are periodic, the term is never invoked, and the time step does not contain any boundary handling at all.

Only the non-stateless variant is supported at the moment, i.e. the term has to be added with stateless=False.

Definition at line 8 of file DirichletBoundaryConditions.py.

Constructor & Destructor Documentation

◆ __init__()

exahype2.api.blockstructured.DirichletBoundaryConditions.DirichletBoundaryConditions.__init__ (   self,
str   implementation = None,
bool   stateless = False 
)

Field Documentation

◆ NAME

◆ SIGNATURE

tuple exahype2.api.blockstructured.DirichletBoundaryConditions.DirichletBoundaryConditions.SIGNATURE
static
Initial value:
= (
"const tarch::la::Vector<Dimensions, double>& x, "
"double t, "
"double* __restrict__ Q"
)

Definition at line 44 of file DirichletBoundaryConditions.py.


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