|
SpECTRE
v2025.08.19
|
Impose Robin boundary conditions \(a u + b n_i \nabla^i u = c\). The boundary condition is imposed as Neumann-type (i.e. on \(n_i \nabla^i u\)) if \(|b| > 0\) and as Dirichlet-type (i.e. on \(u\)) if \(b = 0\). More...
#include <Robin.hpp>
Classes | |
| struct | Constant |
| struct | DirichletWeight |
| struct | NeumannWeight |
Public Types | |
| using | options = tmpl::list< DirichletWeight, NeumannWeight, Constant > |
| using | argument_tags = tmpl::list<> |
| using | volume_tags = tmpl::list<> |
| using | argument_tags_linearized = tmpl::list<> |
| using | volume_tags_linearized = tmpl::list<> |
Public Member Functions | |
| Robin (const Robin &)=default | |
| Robin & | operator= (const Robin &)=default |
| Robin (Robin &&)=default | |
| Robin & | operator= (Robin &&)=default |
| std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > | get_clone () const override |
| Robin (double dirichlet_weight, double neumann_weight, double constant, const Options::Context &context={}) | |
| double | dirichlet_weight () const |
| double | neumann_weight () const |
| double | constant () const |
| std::vector< elliptic::BoundaryConditionType > | boundary_condition_types () const override |
| void | apply (gsl::not_null< Scalar< DataVector > * > field, gsl::not_null< Scalar< DataVector > * > n_dot_field_gradient, const tnsr::i< DataVector, Dim > &deriv_field) const |
| void | apply_linearized (gsl::not_null< Scalar< DataVector > * > field_correction, gsl::not_null< Scalar< DataVector > * > n_dot_field_gradient_correction, const tnsr::i< DataVector, Dim > &deriv_field_correction) const |
| void | pup (PUP::er &p) override |
Public Member Functions inherited from elliptic::BoundaryConditions::BoundaryCondition< Dim > | |
| BoundaryCondition (const BoundaryCondition &)=default | |
| BoundaryCondition (BoundaryCondition &&)=default | |
| BoundaryCondition & | operator= (const BoundaryCondition &)=default |
| BoundaryCondition & | operator= (BoundaryCondition &&)=default |
| virtual std::vector< elliptic::BoundaryConditionType > | boundary_condition_types () const =0 |
Public Member Functions inherited from domain::BoundaryConditions::BoundaryCondition | |
| BoundaryCondition (BoundaryCondition &&)=default | |
| BoundaryCondition & | operator= (BoundaryCondition &&)=default |
| BoundaryCondition (const BoundaryCondition &)=default | |
| BoundaryCondition & | operator= (const BoundaryCondition &)=default |
| BoundaryCondition (CkMigrateMessage *const msg) | |
| WRAPPED_PUPable_abstract (BoundaryCondition) | |
| virtual auto | get_clone () const -> std::unique_ptr< BoundaryCondition >=0 |
Static Public Attributes | |
| static constexpr Options::String | help |
Static Public Attributes inherited from elliptic::BoundaryConditions::BoundaryCondition< Dim > | |
| static constexpr size_t | volume_dim = Dim |
Impose Robin boundary conditions \(a u + b n_i \nabla^i u = c\). The boundary condition is imposed as Neumann-type (i.e. on \(n_i \nabla^i u\)) if \(|b| > 0\) and as Dirichlet-type (i.e. on \(u\)) if \(b = 0\).
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements domain::BoundaryConditions::BoundaryCondition.
|
staticconstexpr |