template<typename Stencil_T, typename flag_t>
class walberla::pde::Dirichlet< Stencil_T, flag_t >
Dirichlet boundary handling for PDEs.
This boundary condition imposes a Dirichlet condition with arbitrary values on a PDE. It does so by modifying the right-hand side and the stencil field. Anything that has internal copies of the stencil field (e.g. the multigrid V-cycle's coarsened stencils) is responsible for updating its copies when boundary conditions are changed.
- Template Parameters
-
Stencil_T | The stencil used for the discrete operator |
flag_t | The integer type used by the flag field |
|
| Dirichlet (const BoundaryUID &boundaryUID, const FlagUID &uid, Field_T *const rhsField, const StencilField_T *const stencilField, StencilField_T *const adaptBCStencilField, FlagField< flag_t > *const flagField) |
| Creates a Dirichlet boundary. More...
|
|
void | pushFlags (std::vector< FlagUID > &uids) const |
|
void | beforeBoundaryTreatment () const |
|
void | afterBoundaryTreatment () |
|
template<typename Buffer_T > |
void | packCell (Buffer_T &buffer, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const |
|
template<typename Buffer_T > |
void | registerCell (Buffer_T &buffer, const flag_t, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) |
|
void | registerCell (const flag_t, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const BoundaryConfiguration &dirichletBC) |
|
void | registerCells (const flag_t, const CellInterval &cells, const BoundaryConfiguration &dirichletBC) |
|
template<typename CellIterator > |
void | registerCells (const flag_t, const CellIterator &begin, const CellIterator &end, const BoundaryConfiguration &dirichletBC) |
|
void | unregisterCell (const flag_t, const cell_idx_t nx, const cell_idx_t ny, const cell_idx_t nz) |
|
void | treatDirection (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const stencil::Direction dir, const cell_idx_t nx, const cell_idx_t ny, const cell_idx_t nz, const flag_t mask) |
| Treat one direction by adapting RHS according to Dirichlet boundary value. More...
|
|
const real_t & | getValue (const cell_idx_t x, cell_idx_t y, cell_idx_t z) const |
|
| Dirichlet (const BoundaryUID &boundaryUID, const FlagUID &uid, Field_T *const rhsField, const StencilField_T *const stencilField, StencilField_T *const adaptBCStencilField, FlagField< flag_t > *const flagField, const StructuredBlockStorage &blocks) |
|
void | pushFlags (std::vector< FlagUID > &uids) const |
|
void | beforeBoundaryTreatment () const |
|
void | afterBoundaryTreatment () |
|
template<typename Buffer_T > |
void | packCell (Buffer_T &buffer, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) const |
|
template<typename Buffer_T > |
void | registerCell (Buffer_T &buffer, const flag_t, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) |
|
void | registerCell (const flag_t, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const BoundaryConfiguration &dirichletBC) |
|
void | registerCells (const flag_t, const CellInterval &cells, const BoundaryConfiguration &dirichletBC) |
|
template<typename CellIterator > |
void | registerCells (const flag_t, const CellIterator &begin, const CellIterator &end, const BoundaryConfiguration &dirichletBC) |
|
void | unregisterCell (const flag_t, const cell_idx_t x, const cell_idx_t y, const cell_idx_t z) |
|
void | treatDirection (const cell_idx_t x, const cell_idx_t y, const cell_idx_t z, const stencil::Direction dir, const cell_idx_t nx, const cell_idx_t ny, const cell_idx_t nz, const flag_t mask) |
|
const real_t & | getValue (const cell_idx_t x, cell_idx_t y, cell_idx_t z) const |
|
| Boundary (const BoundaryUID &boundaryUID) |
|
void | setMask (const flag_t mask) |
|
flag_t | getMask () const |
|
const BoundaryUID & | getUID () const |
|