SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
ScalarWave::BoundaryConditions::SphericalRadiation< Dim > Class Template Referencefinal

Impose spherical radiation boundary conditions. More...

#include <SphericalRadiation.hpp>

Classes

struct  TypeOptionTag

Public Types

using options = tmpl::list<TypeOptionTag>
using dg_interior_evolved_variables_tags
using dg_interior_temporary_tags
using dg_gridless_tags = tmpl::list<>

Public Member Functions

 SphericalRadiation (detail::SphericalRadiationType type)
 SphericalRadiation (SphericalRadiation &&)=default
SphericalRadiationoperator= (SphericalRadiation &&)=default
 SphericalRadiation (const SphericalRadiation &)=default
SphericalRadiationoperator= (const SphericalRadiation &)=default
 SphericalRadiation (CkMigrateMessage *msg)
 WRAPPED_PUPable_decl_base_template (domain::BoundaryConditions::BoundaryCondition, SphericalRadiation)
auto get_clone () const -> std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > override
void pup (PUP::er &p) override
std::optional< std::stringdg_ghost (gsl::not_null< Scalar< DataVector > * > psi_ext, gsl::not_null< Scalar< DataVector > * > pi_ext, gsl::not_null< tnsr::i< DataVector, Dim, Frame::Inertial > * > phi_ext, gsl::not_null< Scalar< DataVector > * > gamma2_ext, const std::optional< tnsr::I< DataVector, Dim, Frame::Inertial > > &, const tnsr::i< DataVector, Dim, Frame::Inertial > &normal_covector, const Scalar< DataVector > &psi, const tnsr::i< DataVector, Dim, Frame::Inertial > &phi, const tnsr::I< DataVector, Dim, Frame::Inertial > &coords, const Scalar< DataVector > &gamma2) const
Public Member Functions inherited from ScalarWave::BoundaryConditions::BoundaryCondition< Dim >
 BoundaryCondition (BoundaryCondition &&)=default
BoundaryConditionoperator= (BoundaryCondition &&)=default
 BoundaryCondition (const BoundaryCondition &)=default
BoundaryConditionoperator= (const BoundaryCondition &)=default
 BoundaryCondition (CkMigrateMessage *msg)
void pup (PUP::er &p) override
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 constexpr evolution::BoundaryConditions::Type bc_type

Detailed Description

template<size_t Dim>
class ScalarWave::BoundaryConditions::SphericalRadiation< Dim >

Impose spherical radiation boundary conditions.

These can be imposed in one of two forms:

\begin{align*} \Pi=\partial_r\Psi, \end{align*}

referred to as a Sommerfeld condition, or

\begin{align*} \Pi=\partial_r\Psi + \frac{1}{r}\Psi \end{align*}

referred to as a Bayliss-Turkel condition.

The Bayliss-Turkel condition produces fewer reflections than the Sommerfeld condition.

Warning
These are implemented assuming the outer boundary is spherical and centered at the origin of the radiation because the code sets \(\Pi=n^i\Phi_i\), where \(n^i\) is the outward pointing unit normal vector. It might be possible to generalize the condition to non-spherical boundaries by using \(x^i/r\) instead of \(n^i\), but this hasn't been tested.

Member Typedef Documentation

◆ dg_interior_evolved_variables_tags

template<size_t Dim>
using ScalarWave::BoundaryConditions::SphericalRadiation< Dim >::dg_interior_evolved_variables_tags
Initial value:
tmpl::list<Tags::Psi, Tags::Phi<Dim>>

◆ dg_interior_temporary_tags

template<size_t Dim>
using ScalarWave::BoundaryConditions::SphericalRadiation< Dim >::dg_interior_temporary_tags
Initial value:
tmpl::list<domain::Tags::Coordinates<Dim, Frame::Inertial>,

Member Function Documentation

◆ get_clone()

Member Data Documentation

◆ bc_type

template<size_t Dim>
evolution::BoundaryConditions::Type ScalarWave::BoundaryConditions::SphericalRadiation< Dim >::bc_type
staticconstexpr
Initial value:
=
evolution::BoundaryConditions::Type::Ghost

◆ help

template<size_t Dim>
Options::String ScalarWave::BoundaryConditions::SphericalRadiation< Dim >::help
staticconstexpr
Initial value:
{
"Spherical radiation boundary conditions setting the value of Psi, Phi, "
"and Pi either using the Sommerfeld or first-order Bayliss-Turkel "
"method."}

The documentation for this class was generated from the following file:
  • src/Evolution/Systems/ScalarWave/BoundaryConditions/SphericalRadiation.hpp