SpECTRE  v2024.04.12
grmhd::AnalyticData::MagnetizedTovStar Class Reference

Magnetized TOV star initial data, where metric terms only account for the hydrodynamics not the magnetic fields. More...

#include <MagnetizedTovStar.hpp>

Classes

struct  MagneticFields
 

Public Types

using options = tmpl::push_back< tov_star::options, MagneticFields >
 
template<typename DataType >
using tags = typename tov_star::template tags< DataType >
 
using equation_of_state_type = EquationsOfState::EquationOfState< true, 1 >
 

Public Member Functions

 MagnetizedTovStar (const MagnetizedTovStar &rhs)
 
MagnetizedTovStaroperator= (const MagnetizedTovStar &rhs)
 
 MagnetizedTovStar (MagnetizedTovStar &&)
 
MagnetizedTovStaroperator= (MagnetizedTovStar &&)
 
 MagnetizedTovStar (double central_rest_mass_density, std::unique_ptr< EquationsOfState::EquationOfState< true, 1 > > equation_of_state, RelativisticEuler::Solutions::TovCoordinates coordinate_system, std::vector< std::unique_ptr< grmhd::AnalyticData::InitialMagneticFields::InitialMagneticField > > magnetic_fields)
 
auto get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override
 
template<typename DataType , typename... Tags>
tuples::TaggedTuple< Tags... > variables (const tnsr::I< DataType, 3 > &x, tmpl::list< Tags... >) const
 Retrieve a collection of variables at (x)
 
void pup (PUP::er &p) override
 
const EquationsOfState::EquationOfState< true, 1 > & equation_of_state () const
 
virtual auto get_clone () const -> std::unique_ptr< InitialData >=0
 

Static Public Attributes

static constexpr Options::String help = {"Magnetized TOV star."}
 
static constexpr size_t volume_dim = 3_st
 

Protected Attributes

std::vector< std::unique_ptr< grmhd::AnalyticData::InitialMagneticFields::InitialMagneticField > > magnetic_fields_ {}
 

Friends

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

Detailed Description

Magnetized TOV star initial data, where metric terms only account for the hydrodynamics not the magnetic fields.

Superposes magnetic fields on top of a TOV solution. These can be any of the classes derived from grmhd::AnalyticData::InitialMagneticFields::InitialMagneticField

Conversion to CGS units and values for poloidal magnetic field

While the amplitude \(A_b\) is specified in the code, it is more natural to work with the magnetic field strength, which is given by \(\sqrt{b^2}\) (where \(b^a\) is the comoving magnetic field), and in CGS units is

\begin{align*} |B_{\mathrm{CGS}}|&= \sqrt{4 \pi b^2} \left(\frac{c^2}{G M_\odot}\right) \left(\frac{c}{\sqrt{4 \pi \epsilon_0 G}}\right) \\ &= \sqrt{b^2} \times 8.352\times10^{19}\mathrm{G} \,. \end{align*}

We now give values used for standard tests of magnetized stars with a poloidal magnetic field.

  • \(\rho_c(0)=1.28\times10^{-3}\)
  • \(K=100\)
  • \(\Gamma=2\)
  • Domain \([-20,20]^3\)
  • Units \(M=M_\odot\)
  • A target final time 20ms means \(20\times10^{-3}/(5\times10^{-6})=4000M\)
  • The mass of the star is \(1.4M_{\odot}\)

Parameters for desired magnetic field strength:

  • For \(n_s=0\) and \(p_{\mathrm{cut}}=0.04p_{\max}\) setting \(A_b=6\times10^{-5}\) yields a maximum mganetic field strength of \(1.002\times10^{16}G\).
  • For \(n_s=1\) and \(p_{\mathrm{cut}}=0.04p_{\max}\) setting \(A_b=0.4\) yields a maximum mganetic field strength of \(1.05\times10^{16}G\).
  • For \(n_s=2\) and \(p_{\mathrm{cut}}=0.04p_{\max}\) setting \(A_b=2500\) yields a maximum mganetic field strength of \(1.03\times10^{16}G\).
  • For \(n_s=3\) and \(p_{\mathrm{cut}}=0.04p_{\max}\) setting \(A_b=1.65\times10^{7}\) yields a maximum mganetic field strength of \(1.07\times10^{16}G\).

Note that the magnetic field strength goes as \(A_b\) so any desired value can be achieved by a linear scaling.

Member Function Documentation

◆ get_clone()

auto grmhd::AnalyticData::MagnetizedTovStar::get_clone ( ) const -> std::unique_ptr< evolution::initial_data::InitialData >
overridevirtual

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