|
SpECTRE
v2026.04.01
|
The elliptic DG operator on an element-centered subdomain. More...
#include <SubdomainOperator.hpp>
Public Types | |
| using | system = System |
| using | options_group = OptionsGroup |
Public Member Functions | |
| template<typename ResultTags, typename OperandTags, typename DbTagsList> | |
| void | operator() (const gsl::not_null< LinearSolver::Schwarz::ElementCenteredSubdomainData< Dim, ResultTags > * > result, const LinearSolver::Schwarz::ElementCenteredSubdomainData< Dim, OperandTags > &operand, const db::DataBox< DbTagsList > &box, const std::unordered_map< std::pair< size_t, Direction< Dim > >, const BoundaryConditionsBase &, boost::hash< std::pair< size_t, Direction< Dim > > > > &override_boundary_conditions={}) const |
| void | pup (PUP::er &) |
Additional Inherited Members | |
| Static Public Attributes inherited from LinearSolver::Schwarz::SubdomainOperator< System::volume_dim > | |
| static constexpr size_t | volume_dim |
The elliptic DG operator on an element-centered subdomain.
This operator is a restriction of the full (linearized) DG-operator to an element-centered subdomain with a few points overlap into neighboring elements. It is a LinearSolver::Schwarz::SubdomainOperator to be used with the Schwarz linear solver when it solves the elliptic DG operator.
This operator requires the following tags are available on overlap regions with neighboring elements:
Some of these tags may require communication between elements. For example, nonlinear system fields are constant background fields for the linearized DG operator, but are updated in every nonlinear solver iteration. Therefore, the updated nonlinear fields must be communicated across overlaps between nonlinear solver iterations. To perform the communication you can use LinearSolver::Schwarz::Actions::SendOverlapFields and LinearSolver::Schwarz::Actions::ReceiveOverlapFields, setting RestrictToOverlap to false. See LinearSolver::Schwarz::SubdomainOperator for details.
|
inline |