mod_physics_vars_mhd Module


Uses

  • module~~mod_physics_vars_mhd~~UsesGraph module~mod_physics_vars_mhd mod_physics_vars_mhd module~mod_global_parameters mod_global_parameters module~mod_physics_vars_mhd->module~mod_global_parameters module~mod_basic_types mod_basic_types module~mod_global_parameters->module~mod_basic_types module~mod_connectivity mod_connectivity module~mod_global_parameters->module~mod_connectivity module~mod_constants mod_constants module~mod_global_parameters->module~mod_constants module~mod_physicaldata mod_physicaldata module~mod_global_parameters->module~mod_physicaldata module~mod_variables mod_variables module~mod_global_parameters->module~mod_variables mpi mpi module~mod_global_parameters->mpi module~mod_variables->module~mod_basic_types

Variables

Type Visibility Attributes Name Initial
double precision, public :: H_ion_fr = 1d0

Ionization fraction of H H_ion_fr = H+/(H+ + H)

double precision, public :: He_abundance = 0.1d0

Helium abundance over Hydrogen

double precision, public :: He_ion_fr = 1d0

Ionization fraction of He He_ion_fr = (He2+ + He+)/(He2+ + He+ + He)

double precision, public :: He_ion_fr2 = 1d0

Ratio of number He2+ / number He+ + He2+ He_ion_fr2 = He2+/(He2+ + He+)

double precision, public :: RR = 1d0
integer, public, parameter :: dp = kind(0.0d0)
integer, public :: e_

Index of the energy density (-1 if not present)

integer, public, parameter :: flux_default = 0

Indicates a normal flux

integer, public, parameter :: flux_tvdlf = 1

Indicates the flux should be treated with tvdlf

integer, public, allocatable :: flux_type(:,:)

Array per direction per variable, which can be used to specify that certain fluxes have to be treated differently

double precision, public :: gamma_1
double precision, public :: htc_Cchi = 0.0d0

Magnetisation chi prefactor: chi = htc_Cchi * B * Te^1.5 / n

double precision, public :: inv_gamma_1
integer, public, allocatable :: mag(:)

Indices of the magnetic field

logical, public :: mhd_energy = .true.

Whether an energy equation is used

logical, public :: mhd_energy_only = .false.

Freeze rho/v/B and evolve only the energy equation (compile-time MHD_ENERGY_ONLY flag)

double precision, public :: mhd_eta = 0.0d0

The resistivity

double precision, public :: mhd_gamma = 5.d0/3.0d0

The adiabatic index

double precision, public :: mhd_glm_alpha = 0.5d0

GLM-MHD parameter: ratio of the diffusive and advective time scales for div b taking values within [0, 1]

logical, public :: mhd_gravity = .false.

Whether to use gravity

logical, public :: mhd_hyperbolic_thermal_conduction = .false.

Switch for hyperbolic thermal conduction

logical, public :: mhd_hyperbolic_thermal_conduction_anisotropic = .false.

Compile-time selector for anisotropic HTC

integer, public :: mhd_n_tracer = 0

Number of tracer species

logical, public :: mhd_partial_ionization = .false.

Whether plasma is partially ionized

logical, public :: mhd_particles = .false.

Whether particles module is added

logical, public :: mhd_radiative_cooling = .false.

switch for radiative cooling

logical, public :: mhd_resistivity = .false.

switch for adding resistive terms

logical, public :: mhd_source_usr = .false.

switch for source user

integer, public, allocatable :: mom(:)

Indices of the momentum density

integer, public, parameter :: nw_flux = 2+2*ndim+1+1+ndim
integer, public, parameter :: nw_phys = 2+2*ndim+1+1+ndim
integer, public :: p_

Index of the gas pressure (-1 if not present) should equal e_

logical, public :: phys_energy = .false.

Solve energy equation or not

logical, public :: phys_equi_pe = .false.

if equilibrium pressure is splitted

double precision, public :: phys_gamma = 5.d0/3.d0
logical, public :: phys_internal_e = .false.

Solve internal energy instead of total energy

logical, public :: phys_partial_ionization = .false.

Solve partially ionized one-fluid plasma

logical, public :: phys_req_diagonal = .true.

Whether the physics routines require diagonal ghost cells, for example for computing a curl.

logical, public :: phys_total_energy = .false.

Solve total energy equation or not

integer, public :: phys_wider_stencil = 0

To use wider stencils in flux calculations. A value of 1 will extend it by one cell in both directions, in any dimension

character(len=name_len), public :: physics_type = "mhd"

String describing the physics type of the simulation

integer, public :: psi_

Indices of the GLM psi

integer, public, allocatable :: q_(:)

Indices of the heat-flux vector components q_(1:ndir); this is the full Cartesian heat-flux vector

integer, public :: rho_

Index of the density (in the w array)

double precision, public :: tc_kappa0_par = -1.0d0

sig_par = tc_kappa0_par * Te^2.5; if <= 0 and tc_kappa_par <= 0, set from Spitzer in phys_units()

double precision, public :: tc_kappa_par = -1.0d0

sig_par = tc_kappa_par (constant, no T^2.5); takes precedence over tc_kappa0_par when > 0

double precision, public :: tc_kappa_perp = -1.0d0

sig_perp = tc_kappa_perp (constant, no T^2.5); takes precedence over the Braginskii closure when > 0

integer, public :: tracer(1)

Indices of the tracers