|
SpECTRE
2021.08.02
|
Functionality related to solving elliptic partial differential equations. More...
Namespaces | |
| namespace | BoundaryConditions |
| Boundary conditions for elliptic systems. | |
| namespace | dg |
| Functionality related to discontinuous Galerkin discretizations of elliptic equations. | |
Classes | |
| struct | DefaultElementsAllocator |
A Parallel::protocols::ArrayElementsAllocator that creates array elements to cover the initial computational domain. More... | |
| struct | DgElementArray |
| The parallel component responsible for managing the DG elements that compose the computational domain. More... | |
Enumerations | |
| enum class | BoundaryConditionType { Dirichlet , Neumann } |
| Identify types of boundary conditions for elliptic equations. More... | |
Functions | |
| template<bool Linearized, typename ArgsTransform = void, size_t Dim, typename Registrars , typename DbTagsList , typename MapKeys , typename... FieldsAndFluxes> | |
| void | apply_boundary_condition (const elliptic::BoundaryConditions::BoundaryCondition< Dim, Registrars > &boundary_condition, const db::DataBox< DbTagsList > &box, const MapKeys &map_keys_to_direction, const gsl::not_null< FieldsAndFluxes * >... fields_and_fluxes) noexcept |
Apply the boundary_condition to the fields_and_fluxes with arguments from interface tags in the DataBox. More... | |
| std::ostream & | operator<< (std::ostream &os, BoundaryConditionType boundary_condition_type) noexcept |
Functionality related to solving elliptic partial differential equations.
|
strong |
|
noexcept |
Apply the boundary_condition to the fields_and_fluxes with arguments from interface tags in the DataBox.
This functions assumes the arguments for the boundary_condition are stored in the DataBox in tags domain::Tags::Faces<Dim, Tag>. This may turn out not to be the most efficient setup, so code that uses the boundary conditions doesn't have to use this function but can procure the arguments differently. For example, future optimizations may involve storing a subset of arguments that don't change during an elliptic solve in direction-maps in the DataBox, and slicing other arguments to the interface every time the boundary conditions are applied.
The ArgsTransform template parameter can be used to transform the set of argument tags for the boundary conditions further. It must be compatible with tmpl::transform. For example, it may wrap the tags in another prefix. Set it to void (default) to apply no transformation.