Fluid model
ViscoResistiveLinearMHD
Linear visco-resistive MHD equations discretized with a variational method.
Overview
This is the linear dissipative MHD model with pressure as primitive
thermodynamic variable. It is intended for small-amplitude perturbations around an equilibrium while retaining explicit viscosity and resistivity.
Use cases
This model is appropriate for:
- linear dissipative MHD wave studies
- equilibrium perturbation benchmarks with viscosity and resistivity
- verification of linear variational MHD operators
Governing equations
PDEs solved by model:
Continuity:
Momentum:
Pressure:
Induction:
Here and are artificial viscosity and resistivity coefficients.
Normalization
The characteristic velocity is the Alfvén speed,
Discretization
Time integration is performed by the following propagators (in sequence):
struphy.propagators.variational_density_evolve.VariationalDensityEvolvestruphy.propagators.variational_pb_evolve.VariationalPBEvolvestruphy.propagators.variational_viscosity.VariationalViscosity(ifwith_viscosityis True)struphy.propagators.variational_resistivity.VariationalResistivity(ifwith_resistivityis True)
Diagnostics
The following scalars are tracked during simulation:
- Kinetic energy:
en_U - Thermal perturbation energy:
en_thermo - Magnetic energies:
en_mag_1,en_mag_2 - Total energy diagnostics:
en_tot,en_tot_l1 - Auxiliary linearized diagnostics:
en_thermo_l1,en_mag_l1
Example
Create and initialize a linear visco-resistive MHD model:
from struphy.models import ViscoResistiveLinearMHD
model = ViscoResistiveLinearMHD()
model.em_fields.b_field
model.mhd.velocity model.mhd.pressure