Fluid model

ViscoResistiveDeltafMHD

Delta-f visco-resistive MHD equations discretized with a variational method.

Overview

ViscoResistiveDeltafMHD is the dissipative perturbative MHD model using

pressure as thermodynamic variable. It is intended for departures from a background equilibrium that are not strictly linear but still naturally formulated as perturbations.

Use cases

This model is appropriate for:
  • perturbative nonlinear MHD around a prescribed equilibrium
  • dissipative MHD verification with background fields
  • comparing linear and delta f variational formulations

Governing equations

PDEs solved by model:

Continuity:

Momentum:

Pressure:

Induction:

Here and are artificial viscosity and resistivity coefficients.

Normalization

The velocity scale is Alfvénic:

Discretization

Time integration is performed by the following propagators (in sequence):
  1. struphy.propagators.variational_density_evolve.VariationalDensityEvolve
  2. struphy.propagators.variational_momentum_advection.VariationalMomentumAdvection
  3. struphy.propagators.variational_pb_evolve.VariationalPBEvolve
  4. struphy.propagators.variational_viscosity.VariationalViscosity (if with_viscosity is True)
  5. struphy.propagators.variational_resistivity.VariationalResistivity (if with_resistivity is True)

Diagnostics

The following scalars are tracked during simulation:

  • Kinetic energy: en_U
  • Thermal energies: en_thermo, en_thermo_l1
  • Magnetic energies: en_mag_1, en_mag_2, en_mag_l1
  • Total energies: en_tot, en_tot_l1

Example

Create and initialize the visco-resistive delta f MHD model:

from struphy.models import ViscoResistiveDeltafMHD

model = ViscoResistiveDeltafMHD()
model.mhd.pressure
model.em_fields.b_field