SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ForceFree::System Struct Reference

General relativistic force-free electrodynamics (GRFFE) system with divergence cleaning. More...

#include <System.hpp>

Public Types

using boundary_conditions_base = BoundaryConditions::BoundaryCondition
 
using boundary_correction_base = BoundaryCorrections::BoundaryCorrection
 
using variables_tag = ::Tags::Variables< tmpl::list< Tags::TildeE, Tags::TildeB, Tags::TildePsi, Tags::TildePhi, Tags::TildeQ > >
 
using flux_variables = implementation defined
 
using non_conservative_variables = implementation defined
 
using gradient_variables = implementation defined
 
using spacetime_variables_tag = ::Tags::Variables< gr::tags_for_hydro< volume_dim, DataVector > >
 
using flux_spacetime_variables_tag = ::Tags::Variables< tmpl::list< gr::Tags::Lapse< DataVector >, gr::Tags::Shift< DataVector, 3 >, gr::Tags::SqrtDetSpatialMetric< DataVector >, gr::Tags::SpatialMetric< DataVector, 3 >, gr::Tags::InverseSpatialMetric< DataVector, 3 > > >
 
using compute_volume_time_derivative_terms = TimeDerivativeTerms
 
using compute_largest_characteristic_speed = Tags::LargestCharacteristicSpeedCompute
 
using inverse_spatial_metric_tag = gr::Tags::InverseSpatialMetric< DataVector, volume_dim >
 

Static Public Attributes

static constexpr bool is_in_flux_conservative_form = true
 
static constexpr bool has_primitive_and_conservative_vars = false
 
static constexpr size_t volume_dim = 3
 

Detailed Description

General relativistic force-free electrodynamics (GRFFE) system with divergence cleaning.

For electromagnetism in a curved spacetime, Maxwell equations are given as

aFab=Jb,aFab=0.

where Fab is the electromagnetic field tensor, Fab is its dual Fab=ϵabcdFcd/2, and Ja is the 4-current.

Note
  • We are using the electromagnetic variables with the scaling convention that the factor 4π does not appear in Maxwell equations and the stress-energy tensor of the EM fields (geometrized Heaviside-Lorentz units).
  • We adopt following definition of the Levi-Civita tensor by

    ϵabcd=g[abcd],ϵabcd=1g[abcd],

    where g is the determinant of spacetime metric, and [abcd]=±1 is the antisymmetric symbol with [0123]=+1.

In SpECTRE, we evolve 'extended' (or augmented) version of Maxwell equations with two divergence cleaning scalar fields ψ and ϕ :

a(Fab+gabψ)=Jb+κψnbψa(Fab+gabϕ)=κϕnbϕ

which reduce to the original Maxwell equations when ψ=ϕ=0. For damping constants κψ,ϕ>0, Gauss constraint violations are damped with timescales κψ,ϕ1 and propagated away.

We decompose the EM field tensor as follows

Fab=naEbnbEaϵabcdBcnd,

where na is the normal to spatial hypersurface, Ea and Ba are electric and magnetic fields.

Evolved variables are

U=γ[EiBiψϕq][E~iB~iψ~ϕ~q~]

where Ei is electric field, Bi is magnetic field, ψ is electric divergence cleaning field, ϕ is magnetic divergence cleaning field, qnaJa is electric charge density, and γ is the determinant of spatial metric.

Corresponding fluxes Fj are

Fj(E~i)=βjE~i+α(γijψ~ϵ(3)ijkB~k)Fj(B~i)=βjB~i+α(γijϕ~+ϵ(3)ijkE~k)Fj(ψ~)=βjψ~+αE~jFj(ϕ~)=βjϕ~+αB~jFj(q~)=J~jβjq~

and source terms are

S(E~i)=J~iE~jjβi+ψ~(γijjααγjkΓjki)S(B~i)=B~jjβi+ϕ~(γijjααγjkΓjki)S(ψ~)=E~kkα+αq~αϕ~(K+κϕ)S(ϕ~)=B~kkααϕ~(K+κϕ)S(q~)=0

where J~iαγJi.

See the documentation of Fluxes and Sources for further details.

In addition to Maxwell equations, general relativistic force-free electrodynamics (GRFFE) assumes the following which are called the force-free (FF) conditions.

FabJb=0,FabFab=0,FabFab>0.

In terms of electric and magnetic fields, the FF conditions above read

EiJi=0,qEi+ϵ(3)ijkJjBk=0,BiEi=0,B2E2>0.

where B2=BaBa and E2=EaEa. Also, ϵ(3)ijk is the spatial Levi-Civita tensor defined as

ϵ(3)ijknμϵμijk=1gnμ[μijk]=1γ[ijk]

where nμ is the normal to spatial hypersurface and [ijk] is the antisymmetric symbol with [123]=+1.

There are a number of different ways in literature to numerically treat the FF conditions. For the constraint BiEi=0, cleaning of the parallel electric field after every time step (e.g. ) or adopting analytically determined parallel current density were explored. On the magnetic dominance condition B2E2>0, there have been approaches with modification of the drift current or manual rescaling of the electric field .

We take the strategy that introduces special driver terms in the electric current density Ji following :

(1)Ji=Jdrifti+Jparalleli

with

(2)Jdrifti=qϵ(3)ijkEjBkBlBl,(3)Jparalleli=η[EjBjBlBlBi+R(ElElBlBl)BlBlEi].

where η is the parallel conductivity and η corresponds to the ideal force-free limit. R(x) is the ramp (or rectifier) function defined as

R(x)={x,if x00,if x<0}=max(x,0).

Internally we handle each pieces J~driftiαγJdrifti and J~paralleliαγJparalleli as two separate Tags since the latter term is stiff and needs to be evolved in conjunction with implicit time steppers.


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