|
SpECTRE
v2025.08.19
|
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 [148]
\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 [190].
|
overridevirtual |
Implements evolution::initial_data::InitialData.
|
staticconstexpr |