SpECTRE
v2024.09.29
|
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 |