SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
Poisson::BoundaryConditions::Robin< Dim > Class Template Reference

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
Robinoperator= (const Robin &)=default
 Robin (Robin &&)=default
Robinoperator= (Robin &&)=default
std::unique_ptr< domain::BoundaryConditions::BoundaryConditionget_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::BoundaryConditionTypeboundary_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
BoundaryConditionoperator= (const BoundaryCondition &)=default
BoundaryConditionoperator= (BoundaryCondition &&)=default
Public Member Functions inherited from domain::BoundaryConditions::BoundaryCondition
 BoundaryCondition (BoundaryCondition &&)=default
BoundaryConditionoperator= (BoundaryCondition &&)=default
 BoundaryCondition (const BoundaryCondition &)=default
BoundaryConditionoperator= (const BoundaryCondition &)=default
 BoundaryCondition (CkMigrateMessage *const msg)
 WRAPPED_PUPable_abstract (BoundaryCondition)

Static Public Attributes

static constexpr Options::String help
Static Public Attributes inherited from elliptic::BoundaryConditions::BoundaryCondition< Dim >
static constexpr size_t volume_dim = Dim

Detailed Description

template<size_t Dim>
class Poisson::BoundaryConditions::Robin< 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\).

Member Function Documentation

◆ boundary_condition_types()

template<size_t Dim>
std::vector< elliptic::BoundaryConditionType > Poisson::BoundaryConditions::Robin< Dim >::boundary_condition_types ( ) const
inlineoverridevirtual

◆ get_clone()

Member Data Documentation

◆ help

template<size_t Dim>
Options::String Poisson::BoundaryConditions::Robin< Dim >::help
staticconstexpr
Initial value:
=
"Robin boundary conditions a * u + b * n_i grad(u)^i = c. The boundary "
"condition is imposed as Neumann-type (i.e. on n_i grad(u)^i) if abs(b) "
"> 0 and as Dirichlet-type (i.e. on u) if b = 0."

The documentation for this class was generated from the following file:
  • src/Elliptic/Systems/Poisson/BoundaryConditions/Robin.hpp