|
SpECTRE
2021.08.02
|
Magnetized TOV star initial data, where metric terms only account for the hydrodynamics not the magnetic fields. More...
#include <MagnetizedTovStar.hpp>
Classes | |
| struct | CutoffPressureFraction |
| struct | PressureExponent |
| struct | VectorPotentialAmplitude |
Public Types | |
| using | options = tmpl::push_back< tov_star::options, PressureExponent, CutoffPressureFraction, VectorPotentialAmplitude > |
| template<typename DataType > | |
| using | tags = typename tov_star::template tags< DataType > |
Public Member Functions | |
| MagnetizedTovStar (const MagnetizedTovStar &)=delete | |
| MagnetizedTovStar & | operator= (const MagnetizedTovStar &)=delete |
| MagnetizedTovStar (MagnetizedTovStar &&) noexcept=default | |
| MagnetizedTovStar & | operator= (MagnetizedTovStar &&) noexcept=default |
| MagnetizedTovStar (double central_rest_mass_density, double polytropic_constant, double polytropic_exponent, size_t pressure_exponent, double cutoff_pressure_fraction, double vector_potential_amplitude) noexcept | |
| template<typename DataType , typename... Tags> | |
| tuples::TaggedTuple< Tags... > | variables (const tnsr::I< DataType, 3 > &x, tmpl::list< Tags... >) const noexcept |
Retrieve a collection of variables at (x) | |
| void | pup (PUP::er &p) noexcept |
Static Public Attributes | |
| static constexpr Options::String | help |
| static constexpr size_t | volume_dim = 3_st |
Protected Member Functions | |
| template<typename DataType > | |
| tuples::TaggedTuple< hydro::Tags::MagneticField< DataType, 3, Frame::Inertial > > | variables (const tnsr::I< DataType, 3 > &coords, tmpl::list< hydro::Tags::MagneticField< DataType, 3, Frame::Inertial > >, const RadialVariables< DataType > &radial_vars) const noexcept |
Protected Attributes | |
| size_t | pressure_exponent_ = std::numeric_limits<size_t>::max() |
| double | cutoff_pressure_ = std::numeric_limits<double>::signaling_NaN() |
| double | vector_potential_amplitude_ |
Friends | |
| bool | operator== (const MagnetizedTovStar &lhs, const MagnetizedTovStar &rhs) noexcept |
Magnetized TOV star initial data, where metric terms only account for the hydrodynamics not the magnetic fields.
Superposes a poloidal magnetic field on top of a TOV solution where the vector potential has the form
\begin{align*} A_{\phi} = A_b \varpi^2 \max(p-p_{\mathrm{cut}}, 0)^{n_s} \end{align*}
where \(A_b\) controls the amplitude of the magnetic field, \(\varpi^2=x^2+y^2=r^2-z^2\) is the cylindrical radius, \(n_s\) controls the degree of differentiability, and \(p_{\mathrm{cut}}\) controls the pressure cutoff below which the magnetic field is zero.
In Cartesian coordinates the vector potential is:
\begin{align*} A_x&=-\frac{y}{\varpi^2}A_\phi, \\ A_y&=\frac{x}{\varpi^2}A_\phi, \\ A_z&=0, \end{align*}
For the poloidal field this means
\begin{align*} A_x &= -y A_b\max(p-p_{\mathrm{cut}}, 0)^{n_s}, \\ A_y &= x A_b\max(p-p_{\mathrm{cut}}, 0)^{n_s}. \end{align*}
The magnetic field is computed from the vector potential as
\begin{align*} B^i&=n_a\epsilon^{aijk}\partial_jA_k \\ &=-\frac{1}{\sqrt{\gamma}}[ijk]\partial_j A_k, \end{align*}
where \([ijk]\) is the total anti-symmetric symbol. This means that
\begin{align*} B^x&=\frac{1}{\sqrt{\gamma}} (\partial_z A_y-\partial_y A_z), \\ B^y&=\frac{1}{\sqrt{\gamma}} (\partial_x A_z - \partial_z A_x), \\ B^z&=\frac{1}{\sqrt{\gamma}} (\partial_y A_x - \partial_x A_y). \end{align*}
Focusing on the region where the field is non-zero we have:
\begin{align*} \partial_x A_y &= A_b(p-p_{\mathrm{cut}})^{n_s}+ \frac{x^2}{r}A_bn_s(p-p_{\mathrm{cut}})^{n_s-1}\partial_r p \\ \partial_y A_x &= -A_b(p-p_{\mathrm{cut}})^{n_s}- \frac{y^2}{r}A_bn_s(p-p_{\mathrm{cut}})^{n_s-1}\partial_r p \\ \partial_z A_x &= -\frac{yz}{r}A_bn_s(p-p_{\mathrm{cut}})^{n_s-1}\partial_rp \\ \partial_z A_y &= \frac{xz}{r}A_bn_s(p-p_{\mathrm{cut}})^{n_s-1}\partial_rp \end{align*}
The magnetic field is given by:
\begin{align*} B^x&=\frac{1}{\sqrt{\gamma}}\frac{xz}{r} A_bn_s(p-p_{\mathrm{cut}})^{n_s-1}\partial_rp \\ B^y&=\frac{1}{\sqrt{\gamma}}\frac{yz}{r} A_bn_s(p-p_{\mathrm{cut}})^{n_s-1}\partial_rp \\ B^z&=-\frac{A_b}{\sqrt{\gamma}}\left[ 2(p-p_{\mathrm{cut}})^{n_s} \phantom{\frac{a}{b}}\right. \\ &\left.+\frac{x^2+y^2}{r} n_s(p-p_{\mathrm{cut}})^{n_s-1}\partial_r p \right] \end{align*}
Taking the small- \(r\) limit gives the \(r=0\) magnetic field:
\begin{align*} B^x&=0, \\ B^y&=0, \\ B^z&=-\frac{A_b}{\sqrt{\gamma}} 2(p-p_{\mathrm{cut}})^{n_s}. \end{align*}
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.
Parameters for desired magnetic field strength:
Note that the magnetic field strength goes as \(A_b\) so any desired value can be achieved by a linear scaling.
|
staticconstexpr |
|
protected |