SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ForceFree::AnalyticData::RotatingDipole Class Reference

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 = implementation defined
 

Public Member Functions

 RotatingDipole (const RotatingDipole &)=default
 
RotatingDipoleoperator= (const RotatingDipole &)=default
 
 RotatingDipole (RotatingDipole &&)=default
 
RotatingDipoleoperator= (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.
 

Detailed Description

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.

Note
Coordinate radius of the star is rescaled to 1.0 in code units.

The vector potential of the initial magnetic field has the form

(1)Aϕ=A0ϖ0(x2+y2)(r2+δ2)3/2

where A0 is the vector potential amplitude, ϖ0 is a constant with the unit of length, r2=x2+y2+z2, and δ 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

(2)B~x=A0ϖ03xz(r2+δ2)5/2,(3)B~y=A0ϖ03yz(r2+δ2)5/2,(4)B~z=A0ϖ03z2r2+2δ2(r2+δ2)5/2.

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 ( x2+y2+z2<1.0) are identified as the interior and masked by interior_mask() member function. In the masked region we impose the MHD condition E+v×B=0, where the velocity field is given by vΩz^×r. By this means, initial dipolar magnetic field is effectively "anchored" inside the star while electromagnetic fields are evolved self-consistently outside the star.

Note
We impose the MHD condition stated above and q=0 inside the masked interior region during the evolution phase. While this initial data class sets both electric field and charge density to zero at t=0, those variables are immediately overwritten with proper values ( E=v×B, q=0) once the simulation begins.

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 rLC=c/Ω.

The option TiltAngle controls the angle α between the rotation axis ( z) and the magnetic axis of initial magnetic field on the xz plane. An aligned rotator ( α=0) is a common test problem for FFE codes, whereas an oblique rotator ( α0) is a more realistic model of pulsars .

Member Function Documentation

◆ get_clone()

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

Member Data Documentation

◆ help

constexpr Options::String ForceFree::AnalyticData::RotatingDipole::help
staticconstexpr
Initial value:
{
"Magnetosphere of an isolated rotating star with dipole magnetic field."}

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