BRAGINSKII_VISCOSITY
Braginskii MHD (Braginskii 1965) is an extension to ideal MHD which is relevant when the plasma is weakly collisional and magnetized, i.e., when the mean-free-path of particle collisions is much larger than the gyroradius but much smaller than the scale-height. This leads to anisotropic heat diffusion (see the conduction module by Rahul Kannan) and anisotropic momentum diffusion (known as Braginskii viscosity, this module) which is directed along the local magnetic field.
The module is explained in detail in the Braginskii code paper:
Berlok, T., Pakmor, R., and Pfrommer, C., “Braginskii viscosity on an unstructured, moving mesh accelerated with super-time-stepping”, MNRAS, vol. 491, no. 2, pp. 2919–2938, 2020. doi:10.1093/mnras/stz3115.
Usage
We have included a few examples in the examples directory:
brag_decay_3dDecay of a velocity profile directed along the field. See section 4.1 in the Braginskii code paper.brag_2dBraginskii vicosity without the MHD solver enabled. See section 4.2 in the Braginskii code paper.fastwave_2dDecay of a magnetosonic wave due to Braginskii viscosity. Five versions with different types of timestepping. See section 4.3 in the Braginskii code paper.rising_bubble_2dBuoyant bubble rising in an isothermal galaxy cluster with Braginskii viscosity.
These tests should be run with the test.sh bash script.
Additional Parameters
BragViscosityCoefficientA constant viscosity coefficient.BragViscosityCourantThe Courant number, see equation 52 in the Braginskii code paper.BragViscosityMaxRKL2StagesThe maximum number of RKL2 stages allowed whenBRAGINSKII_RKL2_SUPER_TIME_STEPPINGis enabled. Should be an odd integer. Very large values will make the calculation inaccurate.BragViscosityMaxSubcyclesThe maximum number of subcycling steps allowed whenBRAGINSKII_VISCOSITY_SUBCYCLEis enabled.BragViscosityMaximumCoefficientThe Spitzer viscosity coefficient depends on density and temperature as temperature^(5/2)/density. To avoid extremely small time steps, this parameter is used to set a maximum value for the viscosity coefficient whenBRAGINSKII_SPITZERis enabled.
Additional Config.sh Options
Braginskii viscosity currently has the following extra options.
- BRAGINSKII_VISCOSITY
enables the module.
- BRAGINSKII_VISCOSITY_GLOBAL_TIMESTEP
Use the same time step for all cells in the simulation. Activate together with
FORCE_EQUAL_TIMESTEPS.- BRAGINSKII_RKL2_SUPER_TIME_STEPPING
Second order accurate Runge-Kutta Legendre super timestepping. See section 3.2 in the Braginskii code paper.
- BRAGINSKII_VISCOSITY_SUBCYCLE
Subcycle the explicit call.
- BRAGINSKII_SPITZER
Use Spitzer viscosity coefficient (temperature and density dependent). Otherwise a constant value, set in the parameter file,
BragViscosityCoefficient, is used.- BRAGINSKII_LIMIT_PRESSURE_ANISOTROPY
Limit the pressure anisotropy to marginal stability of firehose and mirror instabilities when evaluating the viscous flux.
- BRAGINSKII_OUTPUT_PRESSURE_ANISOTROPY
Output the (full, unlimited) pressure anisotropy (even if
BRAGINSKII_LIMIT_PRESSURE_ANISOTROPYis turned on).- BRAGINSKII_OUTPUT_NUM_SUBSTEPS
This is a diagnostic output for RKL2 or subcycling.
Usage Policy and Citation
Please contact the author before using this code for a new project. Co-authorship on a first paper may be required.
Papers to cite:
Berlok, T., Pakmor, R., and Pfrommer, C., “Braginskii viscosity on an unstructured, moving mesh accelerated with super-time-stepping”, MNRAS, vol. 491, no. 2, pp. 2919–2938, 2020. doi:10.1093/mnras/stz3115.