Peano
Loading...
Searching...
No Matches
exahype2.api.InitPointWisely.InitPointWisely Class Reference

Point-wise initial condition: given the physical position of a single degree of freedom, write its initial Q there. More...

Inheritance diagram for exahype2.api.InitPointWisely.InitPointWisely:
Collaboration diagram for exahype2.api.InitPointWisely.InitPointWisely:

Data Structures

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

Public Member Functions

 __init__ (self, str implementation=None, bool stateless=False)
 implementation: str A C++ snippet that becomes initPointWisely()'s body (the empty string is a valid, generated no-op body, though a no-op initial condition leaves Q uninitialised), or None (the default) to leave initPointWisely() pure virtual for you to implement by hand.
 
- 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 = "initPointWisely"
 
- 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

Point-wise initial condition: given the physical position of a single degree of freedom, write its initial Q there.

Unlike the legacy, cell-wise initialCondition() (handed a whole mesh cell's centre and extent plus gridIsConstructed, and expected to fill an entire patch itself - see python/exahype2/solvers/rkfd/*.template.h), this term is evaluated once per degree of freedom, exactly like Flux and MaxEigenvalue are:

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

Q holds unknowns+auxiliary_variables entries - the whole state, not just the hyperbolic unknowns Flux/MaxEigenvalue work with - since this term has to set up everything a fresh degree of freedom needs, not just contribute to an already-existing state.

Definition at line 8 of file InitPointWisely.py.

Constructor & Destructor Documentation

◆ __init__()

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

implementation: str A C++ snippet that becomes initPointWisely()'s body (the empty string is a valid, generated no-op body, though a no-op initial condition leaves Q uninitialised), or None (the default) to leave initPointWisely() pure virtual for you to implement by hand.

A grid construction such as exahype2.api.fv.SetupSimulationOverRegularGrid validates that the solver it is attached to has this term registered before it does anything else, since it relies on it to fill in the initial condition.

Reimplemented from exahype2.api.PDETerm.PDETerm.

Definition at line 41 of file InitPointWisely.py.

References exahype2.api.InitPointWisely.InitPointWisely.__init__(), exahype2.api.blockstructured.DirichletBoundaryConditions.DirichletBoundaryConditions.NAME, exahype2.api.blockstructured.SommerfeldBoundaryConditions.SommerfeldBoundaryConditions.NAME, exahype2.api.Flux.Flux.NAME, exahype2.api.GradientRefinement.GradientRefinement.NAME, exahype2.api.InitPointWisely.InitPointWisely.NAME, exahype2.api.MassMatrix.MassMatrix.NAME, exahype2.api.MaxEigenvalue.MaxEigenvalue.NAME, exahype2.api.NonconservativeProduct.NonconservativeProduct.NAME, exahype2.api.PDETerm.PDETerm.NAME, exahype2.api.PointSource.PointSource.NAME, exahype2.api.RefineErasePointwisely.RefineErasePointwisely.NAME, and exahype2.api.VolumetricSource.VolumetricSource.NAME.

Referenced by exahype2.api.InitPointWisely.InitPointWisely.__init__().

Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ NAME

◆ SIGNATURE

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

Definition at line 34 of file InitPointWisely.py.


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