SpECTRE  v2026.06.09
Loading...
Searching...
No Matches
elliptic::BoundaryConditions::AnalyticSolution< System, Dim, tmpl::list< FieldTags... >, tmpl::list< FluxTags... > > Class Template Reference

Impose the analytic solution on the boundary. More...

#include <AnalyticSolution.hpp>

Classes

struct  Solution

Public Types

using options
using argument_tags
using volume_tags = tmpl::list<Parallel::Tags::Metavariables>
using argument_tags_linearized = tmpl::list<>
using volume_tags_linearized = tmpl::list<>

Public Member Functions

 AnalyticSolution (const AnalyticSolution &rhs)
AnalyticSolutionoperator= (const AnalyticSolution &rhs)
 AnalyticSolution (AnalyticSolution &&)=default
AnalyticSolutionoperator= (AnalyticSolution &&)=default
 AnalyticSolution (std::unique_ptr< elliptic::analytic_data::AnalyticSolution > solution, const typename elliptic::OptionTags::BoundaryConditionType< FieldTags >::type... boundary_condition_types)
 Select which elliptic::BoundaryConditionType to apply for each field.
std::unique_ptr< domain::BoundaryConditions::BoundaryConditionget_clone () const override
std::vector< elliptic::BoundaryConditionTypeboundary_condition_types () const override
template<typename Metavariables>
void apply (const gsl::not_null< typename FieldTags::type * >... fields, const gsl::not_null< typename FieldTags::type * >... n_dot_fluxes, const TensorMetafunctions::prepend_spatial_index< typename FieldTags::type, Dim, UpLo::Lo, Frame::Inertial > &..., const Metavariables &, const tnsr::I< DataVector, Dim > &face_inertial_coords, const tnsr::i< DataVector, Dim > &face_normal) const
void apply_linearized (const gsl::not_null< typename FieldTags::type * >... fields, const gsl::not_null< typename FieldTags::type * >... n_dot_fluxes, const TensorMetafunctions::prepend_spatial_index< typename FieldTags::type, Dim, UpLo::Lo, Frame::Inertial > &...) 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<typename System, size_t Dim, typename... FieldTags, typename... FluxTags>
class elliptic::BoundaryConditions::AnalyticSolution< System, Dim, tmpl::list< FieldTags... >, tmpl::list< FluxTags... > >

Impose the analytic solution on the boundary.

The user can select to impose the analytic solution as Dirichlet or Neumann boundary conditions for each field separately. Dirichlet boundary conditions are imposed on the fields and Neumann boundary conditions are imposed on the fluxes.

Member Typedef Documentation

◆ argument_tags

template<typename System, size_t Dim, typename... FieldTags, typename... FluxTags>
using elliptic::BoundaryConditions::AnalyticSolution< System, Dim, tmpl::list< FieldTags... >, tmpl::list< FluxTags... > >::argument_tags
Initial value:
Definition IndexType.hpp:46
Tag to retrieve the Metavariables from the DataBox.
Definition MetavariablesTag.hpp:17
The normalized (co)vector represented by Tag.
Definition Magnitude.hpp:123
The coordinates in a given frame.
Definition Tags.hpp:85
The unnormalized face normal one form.
Definition FaceNormal.hpp:129

◆ options

template<typename System, size_t Dim, typename... FieldTags, typename... FluxTags>
using elliptic::BoundaryConditions::AnalyticSolution< System, Dim, tmpl::list< FieldTags... >, tmpl::list< FluxTags... > >::options

Member Function Documentation

◆ boundary_condition_types()

template<typename System, size_t Dim, typename... FieldTags, typename... FluxTags>
std::vector< elliptic::BoundaryConditionType > elliptic::BoundaryConditions::AnalyticSolution< System, Dim, tmpl::list< FieldTags... >, tmpl::list< FluxTags... > >::boundary_condition_types ( ) const
inlineoverridevirtual

◆ get_clone()

template<typename System, size_t Dim, typename... FieldTags, typename... FluxTags>
std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > elliptic::BoundaryConditions::AnalyticSolution< System, Dim, tmpl::list< FieldTags... >, tmpl::list< FluxTags... > >::get_clone ( ) const
inlineoverridevirtual

Member Data Documentation

◆ help

template<typename System, size_t Dim, typename... FieldTags, typename... FluxTags>
Options::String elliptic::BoundaryConditions::AnalyticSolution< System, Dim, tmpl::list< FieldTags... >, tmpl::list< FluxTags... > >::help
staticconstexpr
Initial value:
=
"Boundary conditions from the analytic solution"

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