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_3d Decay of a velocity profile directed along the field. See section 4.1 in the Braginskii code paper.

  • brag_2d Braginskii vicosity without the MHD solver enabled. See section 4.2 in the Braginskii code paper.

  • fastwave_2d Decay 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_2d Buoyant bubble rising in an isothermal galaxy cluster with Braginskii viscosity.

These tests should be run with the test.sh bash script.

Additional Parameters

  • BragViscosityCoefficient A constant viscosity coefficient.

  • BragViscosityCourant The Courant number, see equation 52 in the Braginskii code paper.

  • BragViscosityMaxRKL2Stages The maximum number of RKL2 stages allowed when BRAGINSKII_RKL2_SUPER_TIME_STEPPING is enabled. Should be an odd integer. Very large values will make the calculation inaccurate.

  • BragViscosityMaxSubcycles The maximum number of subcycling steps allowed when BRAGINSKII_VISCOSITY_SUBCYCLE is enabled.

  • BragViscosityMaximumCoefficient The 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 when BRAGINSKII_SPITZER is 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_ANISOTROPY is turned on).

BRAGINSKII_OUTPUT_NUM_SUBSTEPS

This is a diagnostic output for RKL2 or subcycling.

Authors

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.