Special Relativity - PrincetonUniversity/athena-public-version GitHub Wiki
Athena++ supports special-relativistic fluid dynamics. In this mode the primitive variables are
- comoving rest mass density Ļ,
- gas pressure pgas,
- spatial components uāi of the 4-velocity, and
- passive scalar dimensionless concentration Ļ (one for each species).
In MHD we also have a magnetic field B with components Bāi.
The conserved variables are
- coordinate-frame density Dā=āĪ³Ļ,
- total energy density Eā=āĪ³ā2wtotāāāptotāāābātbāt,
- momentum density M with components Māiā=āĪ³ā2wtotvāiāāābātbāi, and
- coordinate-frame species density Sā=āĻD.
Here we define the following useful quantities:
- Lorentz factor Ī³ā=ā(1ā+āu1u1ā+āu2u2ā+āu3u3)1/2,
- 3-velocity components vāiā=āuāi/Ī³,
- projected 4-field with components bātā=āĪ³āvā B and bāiā=āBāi/Ī³ā+ābātvāi,
- magnetic pressure pmagā=āĪ·Ī¼Ī½bāĪ¼bāĪ½/2,
- total pressure ptotā=āpgasā+āpmag,
- adiabatic index Ī,
- comoving gas enthalpy wgasā=āĻā+āĪ/(Īā1)āĆāpgas,
- comoving magnetic enthalpy wmagā=ā2pmag,
- comoving total enthalpy wtotā=āwgasā+āwmag.
The evolution equations are then
- ātDā+āājā(Ī³Ļvāj)ā=ā0,
- ātEā+āājMājā=ā0,
- ātMāiā+āājā(Ī³ā2wtotvāivājā+āptotĪ“āijāāābāibāj)ā=ā0,
- ātBāiā+āājā(Ī³vājbāiāāāĪ³vāibāj)ā=ā0, and
- ātSā+āājā(ĻĪ³Ļvāj)ā=ā0.
The momentum equation might have source terms on the right-hand side in non-Cartesian coordinates.
To enable special relativity, add the -s
flag when configuring. This option will automatically select an appropriate Riemann solver and equation of state. The Riemann solver can be local Lax-Friedrichs, HLLE, HLLC (hydrodynamics only), or HLLD (MHD only). Note the Roe solver is unavailable for relativity. The equation of state must be adiabatic (i.e. gamma-law).
SR is compatible with the same set of coordinates as Newtonian physics: Cartesian, cylindrical, and spherical-polar. Note the coordinates labeled "Minkowski" are for use with general relativity only. For those with GR experience, it is worth noting that cylindrical and spherical-polar coordinates are implemented in a locally orthonormal way for SR, rather than in the natural coordinate way. For example, a purely radial velocity field that is everywhere half the speed of light will have constant components (0.5, 0, 0) in spherical coordinates, rather than spatially varying components and understood basis vectors that also vary in magnitude spatially. This is reflected in the output data.
When calculating timesteps in SR, Athena++ assumes a signal speed of the speed of light (i.e. unity). Therefore a fixed grid will have fixed timesteps given by the CFL number multiplied by the smallest cell width.
SR is fully compatible with static and adaptive mesh refinement.
Caution is advised when simulating extreme conditions (very high Lorentz factors, high magnetizations, etc.). Due to the extra nonlinear coupling in SR compared to Newtonian physics, there are more ways in which a simulation can go wrong, often manifesting in recovering superluminal velocities in the conserved-to-primitive variable inversion.
In order to help robustness, various limits are available in the <hydro>
section of the input file, described below:
Name | Default Value | Description |
---|---|---|
dfloor | ā10-35 | floor on Ļ |
pfloor | ā10-35 | floor on pgas |
sfloor | ā10-35 | floor on Ļ |
gamma_max | 1000 | ceiling on Ī³ |
sigma_max | 0 | ceiling on 2pmag/Ļ; only used if positive |
beta_min | 0 | floor on pgas/pmag; only used if positive |
If Lorentz factors above Ī³max are found, the primitive velocities are all rescaled by the same factor in order to make Ī³ā=āĪ³max. For the limits on plasma Ļ and Ī², Ļ and pgas are adjusted and the magnetic field is left alone in order to preserve āā Bā=ā0.