SpECTRE  2021.08.02
RelativisticEuler::Solutions::TovStar< RadialSolution > Class Template Reference

A static spherically symmetric star. More...

#include <TovStar.hpp>

Classes

struct  CentralDensity
 The central density of the star. More...
 
struct  PolytropicConstant
 The polytropic constant of the polytropic fluid. More...
 
struct  PolytropicExponent
 The polytropic exponent of the polytropic fluid. More...
 
struct  RadialVariables
 The radial variables needed to compute the full TOVStar solution. More...
 

Public Types

using equation_of_state_type = EquationsOfState::PolytropicFluid< true >
 
using options = tmpl::list< CentralDensity, PolytropicConstant, PolytropicExponent >
 
template<typename DataType >
using tags = tmpl::list< gr::Tags::Lapse< DataType >, ::Tags::dt< gr::Tags::Lapse< DataType > >, DerivLapse< DataType >, gr::Tags::Shift< 3, Frame::Inertial, DataType >, ::Tags::dt< gr::Tags::Shift< 3, Frame::Inertial, DataType > >, DerivShift< DataType >, gr::Tags::SpatialMetric< 3, Frame::Inertial, DataType >, ::Tags::dt< gr::Tags::SpatialMetric< 3, Frame::Inertial, DataType > >, DerivSpatialMetric< DataType >, gr::Tags::SqrtDetSpatialMetric< DataType >, gr::Tags::ExtrinsicCurvature< 3, Frame::Inertial, DataType >, gr::Tags::InverseSpatialMetric< 3, Frame::Inertial, DataType >, hydro::Tags::RestMassDensity< DataType >, hydro::Tags::SpecificInternalEnergy< DataType >, hydro::Tags::Pressure< DataType >, hydro::Tags::SpatialVelocity< DataType, 3 >, hydro::Tags::MagneticField< DataType, 3 >, hydro::Tags::DivergenceCleaningField< DataType >, hydro::Tags::LorentzFactor< DataType >, hydro::Tags::SpecificEnthalpy< DataType > >
 
- Public Types inherited from RelativisticEuler::AnalyticSolution< 3 >
using tags = tmpl::push_back< typename gr::AnalyticSolution< Dim >::template tags< DataType >, hydro::Tags::RestMassDensity< DataType >, hydro::Tags::SpecificInternalEnergy< DataType >, hydro::Tags::Pressure< DataType >, hydro::Tags::SpatialVelocity< DataType, Dim >, hydro::Tags::MagneticField< DataType, Dim >, hydro::Tags::DivergenceCleaningField< DataType >, hydro::Tags::LorentzFactor< DataType >, hydro::Tags::SpecificEnthalpy< DataType > >
 

Public Member Functions

 TovStar (const TovStar &)=delete
 
TovStaroperator= (const TovStar &)=delete
 
 TovStar (TovStar &&) noexcept=default
 
TovStaroperator= (TovStar &&) noexcept=default
 
 TovStar (double central_rest_mass_density, double polytropic_constant, double polytropic_exponent) noexcept
 
template<typename DataType , typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, 3 > &x, const double, tmpl::list< Tags... >) const noexcept
 Retrieve a collection of variables at (x, t)
 
void pup (PUP::er &) noexcept
 
const EquationsOfState::PolytropicFluid< true > & equation_of_state () const noexcept
 

Static Public Attributes

static constexpr size_t volume_dim = 3_st
 
static constexpr Options::String help
 
- Static Public Attributes inherited from RelativisticEuler::AnalyticSolution< 3 >
static constexpr size_t volume_dim
 

Protected Types

template<typename DataType >
using SpatialVelocity = hydro::Tags::SpatialVelocity< DataType, 3 >
 
template<typename DataType >
using MagneticField = hydro::Tags::MagneticField< DataType, 3 >
 
template<typename DataType >
using DerivLapse = ::Tags::deriv< gr::Tags::Lapse< DataType >, tmpl::size_t< 3 >, Frame::Inertial >
 
template<typename DataType >
using Shift = gr::Tags::Shift< 3, Frame::Inertial, DataType >
 
template<typename DataType >
using DerivShift = ::Tags::deriv< gr::Tags::Shift< 3, Frame::Inertial, DataType >, tmpl::size_t< 3 >, Frame::Inertial >
 
template<typename DataType >
using SpatialMetric = gr::Tags::SpatialMetric< 3, Frame::Inertial, DataType >
 
template<typename DataType >
using DerivSpatialMetric = ::Tags::deriv< gr::Tags::SpatialMetric< 3, Frame::Inertial, DataType >, tmpl::size_t< 3 >, Frame::Inertial >
 
template<typename DataType >
using InverseSpatialMetric = gr::Tags::InverseSpatialMetric< 3, Frame::Inertial, DataType >
 
template<typename DataType >
using ExtrinsicCurvature = gr::Tags::ExtrinsicCurvature< 3, Frame::Inertial, DataType >
 

Protected Member Functions

const RadialSolution & radial_tov_solution () const noexcept
 
template<typename DataType , typename Tag >
tuples::TaggedTuple<::Tags::dt< Tag > > variables (const tnsr::I< DataType, 3 > &x, tmpl::list<::Tags::dt< Tag > >, const RadialVariables< DataType > &) const noexcept
 

Friends

template<typename LocalRadialSolution >
bool operator== (const TovStar< LocalRadialSolution > &lhs, const TovStar< LocalRadialSolution > &rhs) noexcept
 

Detailed Description

template<typename RadialSolution>
class RelativisticEuler::Solutions::TovStar< RadialSolution >

A static spherically symmetric star.

An analytic solution for a static, spherically-symmetric star found by solving the Tolman-Oppenheimer-Volkoff (TOV) equations. The equation of state is assumed to be that of a polytropic fluid.

Template Parameters
RadialSolutionselects not only how the TOV equations are solved, but also the radial coordinate that the solution is given in (e.g. areal or isotropic). See the documentation of the specific RadialSolutions for more details.

Member Data Documentation

◆ help

template<typename RadialSolution >
constexpr Options::String RelativisticEuler::Solutions::TovStar< RadialSolution >::help
staticconstexpr
Initial value:
= {
"A static, spherically-symmetric star found by solving the \n"
"Tolman-Oppenheimer-Volkoff (TOV) equations, with a given central \n"
"density and polytropic fluid."}