SpECTRE
v2024.04.12
|
The magnetosphere of an isolated rotating star with dipolar initial magnetic field in the flat spacetime. This is a toy model of a pulsar magnetosphere. More...
#include <RotatingDipole.hpp>
Classes | |
struct | AngularVelocity |
struct | Delta |
struct | TiltAngle |
struct | Varpi0 |
struct | VectorPotentialAmplitude |
Public Types | |
using | options = tmpl::list< VectorPotentialAmplitude, Varpi0, Delta, AngularVelocity, TiltAngle > |
Public Member Functions | |
RotatingDipole (const RotatingDipole &)=default | |
RotatingDipole & | operator= (const RotatingDipole &)=default |
RotatingDipole (RotatingDipole &&)=default | |
RotatingDipole & | operator= (RotatingDipole &&)=default |
RotatingDipole (double vector_potential_amplitude, double varpi0, double delta, double angular_velocity, double tilt_angle, const Options::Context &context={}) | |
auto | get_clone () const -> std::unique_ptr< evolution::initial_data::InitialData > override |
void | pup (PUP::er &p) override |
template<typename... Tags> | |
tuples::TaggedTuple< Tags... > | variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< Tags... >) const |
Retrieve a collection of EM variables at position x. | |
template<typename Tag > | |
tuples::TaggedTuple< Tag > | variables (const tnsr::I< DataVector, 3 > &x, tmpl::list< Tag >) const |
Retrieve the metric variables. | |
double | angular_velocity () const |
virtual auto | get_clone () const -> std::unique_ptr< InitialData >=0 |
Static Public Member Functions | |
static std::optional< Scalar< DataVector > > | interior_mask (const tnsr::I< DataVector, 3, Frame::Inertial > &x) |
Static Public Attributes | |
static constexpr Options::String | help |
Friends | |
bool | operator== (const RotatingDipole &lhs, const RotatingDipole &rhs) |
auto | variables (const tnsr::I< DataVector, 3 > &coords, tmpl::list< Tags::TildeB >) const -> tuples::TaggedTuple< Tags::TildeB > |
Retrieve the EM variables. | |
static auto | variables (const tnsr::I< DataVector, 3 > &coords, tmpl::list< Tags::TildeE >) -> tuples::TaggedTuple< Tags::TildeE > |
Retrieve the EM variables. | |
static auto | variables (const tnsr::I< DataVector, 3 > &coords, tmpl::list< Tags::TildePsi >) -> tuples::TaggedTuple< Tags::TildePsi > |
Retrieve the EM variables. | |
static auto | variables (const tnsr::I< DataVector, 3 > &coords, tmpl::list< Tags::TildePhi >) -> tuples::TaggedTuple< Tags::TildePhi > |
Retrieve the EM variables. | |
static auto | variables (const tnsr::I< DataVector, 3 > &coords, tmpl::list< Tags::TildeQ >) -> tuples::TaggedTuple< Tags::TildeQ > |
Retrieve the EM variables. | |
The magnetosphere of an isolated rotating star with dipolar initial magnetic field in the flat spacetime. This is a toy model of a pulsar magnetosphere.
The vector potential of the initial magnetic field has the form [132]
\begin{equation} A_\phi = \frac{A_0 \varpi_0 (x^2+y^2)}{(r^2 + \delta^2)^{3/2}} \end{equation}
where \(A_0\) is the vector potential amplitude, \(\varpi_0\) is a constant with the unit of length, \(r^2 = x^2 + y^2 + z^2\), and \(\delta\) is a small number for regularization of the dipole magnetic field at the origin ( \(r=0\)).
In the Cartesian coordinates, components of densitized magnetic fields are given as
\begin{align} \tilde{B}^x & = A_0 \varpi_0 \frac{3xz}{(r^2 + \delta^2)^{5/2}} , \\ \tilde{B}^y & = A_0 \varpi_0 \frac{3yz}{(r^2 + \delta^2)^{5/2}} , \\ \tilde{B}^z & = A_0 \varpi_0 \frac{3z^2 - r^2 + 2\delta^2}{(r^2 + \delta^2)^{5/2}} . \end{align}
Rotation of the star is switched on at \(t=0\) with the angular velocity specified in the input file. The grid points inside the star ( \(x^2 + y^2 + z^2 < 1.0\)) are identified as the interior and masked by interior_mask()
member function. In the masked region we impose the MHD condition \(\mathbf{E} + \mathbf{v} \times \mathbf{B} = 0\), where the velocity field is given by \(\mathbf{v} \equiv \Omega \hat{z} \times \mathbf{r}\). By this means, initial dipolar magnetic field is effectively "anchored" inside the star while electromagnetic fields are evolved self-consistently outside the star.
When the system reaches a stationary state, magnetic field lines far from the star are opening up while the field lines close to the star are corotating. The light cylinder and the Y-point, which marks the boundary between these two regions with different magnetic field topology, are expected to be formed at \(r_\text{LC} = c/\Omega\).
The option TiltAngle
controls the angle \(\alpha\) between the rotation axis ( \(z\)) and the magnetic axis of initial magnetic field on the \(x-z\) plane. An aligned rotator ( \(\alpha = 0\)) is a common test problem for FFE codes, whereas an oblique rotator ( \(\alpha \neq 0\)) is a more realistic model of pulsars [170].
|
overridevirtual |
Implements evolution::initial_data::InitialData.
|
staticconstexpr |