SpECTRE  v2025.08.19
GrSelfForce::BoundaryConditions::Sommerfeld Class Reference

Radial Sommerfeld boundary conditions for the m-mode metric perturbations. More...

#include <Sommerfeld.hpp>

Classes

struct  BlackHoleMass
 
struct  BlackHoleSpin
 
struct  MModeNumber
 
struct  OrbitalRadius
 

Public Types

using options = tmpl::list< BlackHoleMass, BlackHoleSpin, OrbitalRadius, MModeNumber >
 
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

 Sommerfeld (const Sommerfeld &)=default
 
Sommerfeldoperator= (const Sommerfeld &)=default
 
 Sommerfeld (Sommerfeld &&)=default
 
Sommerfeldoperator= (Sommerfeld &&)=default
 
 Sommerfeld (double black_hole_mass, double black_hole_spin, double orbital_radius, int m_mode_number)
 
double black_hole_mass () const
 
double black_hole_spin () const
 
double orbital_radius () const
 
int m_mode_number () const
 
std::unique_ptr< domain::BoundaryConditions::BoundaryConditionget_clone () const override
 
std::vector< elliptic::BoundaryConditionTypeboundary_condition_types () const override
 
void apply (gsl::not_null< tnsr::aa< ComplexDataVector, 3 > * > field, gsl::not_null< tnsr::aa< ComplexDataVector, 3 > * > n_dot_field_gradient, const GradTensorType &deriv_field) const
 
void apply_linearized (gsl::not_null< tnsr::aa< ComplexDataVector, 3 > * > field_correction, gsl::not_null< tnsr::aa< ComplexDataVector, 3 > * > n_dot_field_correction_gradient, const GradTensorType &deriv_field_correction) const
 
void pup (PUP::er &p) override
 
- Public Member Functions inherited from elliptic::BoundaryConditions::BoundaryCondition< 2 >
 BoundaryCondition (const BoundaryCondition &)=default
 
 BoundaryCondition (BoundaryCondition &&)=default
 
BoundaryConditionoperator= (const BoundaryCondition &)=default
 
BoundaryConditionoperator= (BoundaryCondition &&)=default
 
virtual std::vector< elliptic::BoundaryConditionTypeboundary_condition_types () const=0
 
- 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)
 
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< 2 >
static constexpr size_t volume_dim
 

Friends

bool operator== (const Sommerfeld &lhs, const Sommerfeld &rhs)
 

Detailed Description

Radial Sommerfeld boundary conditions for the m-mode metric perturbations.

These radial boundary conditions enforce an outgoing direction of radiation propagation. They apply both near the Kerr horizon (inner radial boundary) and at large distance (outer radial boundary):

\begin{equation} n_i F^i = i m \Omega \Psi_m \end{equation}

These boundary conditions currently assume a circular equatorial orbit.

Member Function Documentation

◆ boundary_condition_types()

std::vector< elliptic::BoundaryConditionType > GrSelfForce::BoundaryConditions::Sommerfeld::boundary_condition_types ( ) const
inlineoverridevirtual

◆ get_clone()

std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > GrSelfForce::BoundaryConditions::Sommerfeld::get_clone ( ) const
overridevirtual

Member Data Documentation

◆ help

constexpr Options::String GrSelfForce::BoundaryConditions::Sommerfeld::help
staticconstexpr
Initial value:
=
"Radial Sommerfeld boundary condition"

The documentation for this class was generated from the following file: