SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
RadiationTransport::M1Grey::AnalyticData::HomogeneousSphere Class Reference

Construct a homogeneous sphere of neutrino radiation. More...

#include <HomogeneousSphere.hpp>

Classes

struct  BoundaryRoundness
 BoundaryRoundness. More...
 
struct  EmissivityAndOpacity
 The emissivity and absorption opacity. More...
 
struct  OuterOpacity
 The absorption opacity of the exterior. More...
 
struct  Radius
 The sphere radius. More...
 

Public Types

using options = implementation defined
 

Public Member Functions

auto get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override
 
 HomogeneousSphere (double radius, double emissivity_and_opacity, double outer_opacity, double boundary_roundness)
 
template<typename Tag >
tuples::TaggedTuple< Tag > variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< Tag >) const
 Retrieve the metric variables.
 
template<typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< Tags... >) const
 Retrieve a collection of variables.
 
void pup (PUP::er &p) override
 
virtual auto get_clone () const -> std::unique_ptr< InitialData >=0
 

Static Public Attributes

static constexpr Options::String help
 

Friends

bool operator== (const HomogeneousSphere &lhs, const HomogeneousSphere &rhs)
 
template<typename NeutrinoSpecies >
auto variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< RadiationTransport::M1Grey::Tags::TildeE< Frame::Inertial, NeutrinoSpecies > >) const -> tuples::TaggedTuple< RadiationTransport::M1Grey::Tags::TildeE< Frame::Inertial, NeutrinoSpecies > >
 Retrieve fluid and neutrino variables.
 
template<typename NeutrinoSpecies >
auto variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< RadiationTransport::M1Grey::Tags::TildeS< Frame::Inertial, NeutrinoSpecies > >) const -> tuples::TaggedTuple< RadiationTransport::M1Grey::Tags::TildeS< Frame::Inertial, NeutrinoSpecies > >
 Retrieve fluid and neutrino variables.
 
template<typename NeutrinoSpecies >
auto variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< RadiationTransport::M1Grey::Tags::GreyEmissivity< NeutrinoSpecies > >) const -> tuples::TaggedTuple< RadiationTransport::M1Grey::Tags::GreyEmissivity< NeutrinoSpecies > >
 Retrieve fluid and neutrino variables.
 
template<typename NeutrinoSpecies >
auto variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< RadiationTransport::M1Grey::Tags::GreyAbsorptionOpacity< NeutrinoSpecies > >) const -> tuples::TaggedTuple< RadiationTransport::M1Grey::Tags::GreyAbsorptionOpacity< NeutrinoSpecies > >
 Retrieve fluid and neutrino variables.
 
template<typename NeutrinoSpecies >
auto variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< RadiationTransport::M1Grey::Tags::GreyScatteringOpacity< NeutrinoSpecies > >) const -> tuples::TaggedTuple< RadiationTransport::M1Grey::Tags::GreyScatteringOpacity< NeutrinoSpecies > >
 Retrieve fluid and neutrino variables.
 
static auto variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< hydro::Tags::LorentzFactor< DataVector > >) -> tuples::TaggedTuple< hydro::Tags::LorentzFactor< DataVector > >
 Retrieve fluid and neutrino variables.
 
static auto variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< hydro::Tags::SpatialVelocity< DataVector, 3 > >) -> tuples::TaggedTuple< hydro::Tags::SpatialVelocity< DataVector, 3 > >
 Retrieve fluid and neutrino variables.
 

Detailed Description

Construct a homogeneous sphere of neutrino radiation.

We follow the homogeneous sphere test problem in Section 4.5 of [167]. The initial data has radius = 1, with equal emissivity and absorption η=κa=10 inside the uniform sphere. Outside of the sphere the absorption is much lower, allowing the neutrinos to stream out. Initially the neutrino energy density is distributed uniformly inside the sphere. The momentum density is initialized to 0.

Note: To avoid sharp discontinuities, we round the edges of the energy profile with an arctangent function, instead of the step function, which has sharper features.

Member Function Documentation

◆ get_clone()

auto RadiationTransport::M1Grey::AnalyticData::HomogeneousSphere::get_clone ( ) const -> std::unique_ptr< evolution::initial_data::InitialData >
overridevirtual

Member Data Documentation

◆ help

constexpr Options::String RadiationTransport::M1Grey::AnalyticData::HomogeneousSphere::help
staticconstexpr
Initial value:
= {
"A homogeneous sphere emitting and absorbing neutrinos."}

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