MPI-AMRVAC 3.2
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
Loading...
Searching...
No Matches
Functions/Subroutines | Variables
mod_hd_phys Module Reference

Hydrodynamics physics module. More...

Functions/Subroutines

subroutine, public hd_phys_init ()
 Initialize the module.
 
subroutine, public hd_check_params
 
subroutine, public hd_check_w (primitive, ixil, ixol, w, flag)
 Returns logical argument flag where values are ok.
 
subroutine, public hd_ei_to_e (ixil, ixol, w, x)
 Transform internal energy to total energy.
 
subroutine, public hd_e_to_ei (ixil, ixol, w, x)
 Transform total energy to internal energy.
 
subroutine, public hd_get_csound2 (w, x, ixil, ixol, csound2)
 Calculate the square of the thermal sound speed csound2 within ixO^L. For conserved w: extracts pthermal first, then applies Gamma_1. For LTE+IonE: look up Gamma_1 from pressure-indexed table, then cs2 = Gamma_1 * p/rho. Uses pressure-indexed table (gamma1_from_nH_p) because pressure is continuous at contact discontinuities, avoiding spurious gamma1 spikes from the eint-indexed table.
 
subroutine, public hd_get_csrad2 (w, x, ixil, ixol, csound)
 Calculate modified squared sound speed for FLD NOTE: only for diagnostic purposes, unused subroutine.
 
subroutine, public hd_get_csrad2_prim (w, x, ixil, ixol, csound)
 Calculate modified squared sound speed for FLD NOTE: w is primitive on entry here! NOTE: used in FLD module as phys_get_csrad2.
 
subroutine, public hd_get_pradiation_from_prim (w, x, ixil, ixol, prad)
 Calculate radiation pressure within ixO^L NOTE: w is primitive on entry here! NOTE: used in FLD module as it is called from phys_get_csrad2.
 
subroutine, public hd_get_pthermal_plus_pradiation (w, x, ixil, ixol, pth_plus_prad)
 calculates the sum of the gas pressure and max Prad tensor element NOTE: only for diagnostic purposes, unused subroutine
 
subroutine, public hd_get_trad (w, x, ixil, ixol, trad)
 Calculates radiation temperature.
 
subroutine, public hd_get_temperature_from_etot (w, x, ixil, ixol, res)
 Calculate temperature=p/rho when in e_ the total energy is stored.
 
double precision function, dimension(ixo^s), public hd_kin_en (w, ixil, ixol, inv_rho)
 
subroutine, public hd_handle_small_values (primitive, w, x, ixil, ixol, subname)
 

Variables

logical, public, protected hd_energy = .true.
 Whether an energy equation is used.
 
logical, public, protected hd_thermal_conduction = .false.
 Whether thermal conduction is added.
 
logical, public, protected hd_hyperbolic_thermal_conduction = .false.
 Whether hyperbolic thermal conduction (Cattaneo relaxation) is used. 1D only — the q-variable is treated as a scalar carrying the heat flux along the only spatial direction.
 
logical, public, protected hd_htc_sat = .false.
 Whether saturation is considered for hyperbolic TC.
 
type(tc_fluid), allocatable, public tc_fl
 
type(te_fluid), allocatable, public te_fl_hd
 
logical, public, protected hd_radiative_cooling = .false.
 Whether radiative cooling is added.
 
type(rc_fluid), allocatable, public rc_fl
 
logical, public, protected hd_dust = .false.
 Whether dust is added.
 
logical, public, protected hd_dust_implicit = .false.
 Whether dust is added using and implicit update in IMEX.
 
logical, public, protected hd_radiation_fld = .false.
 Whether radiation-gas interaction is handled using flux limited diffusion.
 
type(fld_fluid), allocatable, public fld_fl
 Radiation fluid object (gas-EoS callbacks for FLD), wired in hd_link_eos.
 
logical, public, protected hd_viscosity = .false.
 Whether viscosity is added.
 
logical, public, protected hd_gravity = .false.
 Whether gravity is added.
 
logical, public, protected hd_particles = .false.
 Whether particles module is added.
 
logical, public, protected hd_rotating_frame = .false.
 Whether rotating frame is activated.
 
logical, public, protected hd_cak_force = .false.
 Whether CAK radiation line force is activated.
 
integer, public, protected hd_n_tracer = 0
 Number of tracer species.
 
integer, public, protected rho_
 Whether plasma is partially ionized.
 
integer, dimension(:), allocatable, public, protected mom
 Indices of the momentum density.
 
integer, public, protected c
 Indices of the momentum density for the form of better vectorization.
 
integer, public, protected m
 
integer, public, protected c_
 
integer, dimension(:), allocatable, public, protected tracer
 Indices of the tracers.
 
integer, public, protected e_
 Index of the energy density (-1 if not present)
 
integer, public, protected p_
 Index of the gas pressure (-1 if not present) should equal e_.
 
integer, public, protected ne_
 Index of the electron number density for LTE module.
 
integer, public, protected r_e
 Index of the radiation energy (when fld active)
 
integer, public, protected te_
 Indices of temperature.
 
integer, public, protected fip_ = -1
 Index of the FIP passive scalar rho*fip in conserved form, fip in primitive form.
 
logical, public, protected hd_fip = .false.
 Whether FIP passive scalar is enabled.
 
integer, public, protected tcoff_
 Index of the cutoff temperature for the TRAC method.
 
integer, public, protected q_
 Index of the hyperbolic-TC heat-flux variable (-1 if not present)
 
double precision, public hypertc_kappa
 Thermal-conductivity prefactor in hyperbolic TC, set in hd_physical_units. Spitzer form: κ(T) = hypertc_kappa · T^{5/2}.
 
double precision, public, protected hd_htc_kappa_override = -1.0d0
 Optional parfile override for hypertc_kappa (e.g. to match a constant-κ parabolic TC run for benchmarking). Default -1.0 leaves the Spitzer value computed from physical units.
 
double precision, public, protected hd_htc_hyp_diff = 0.02d0
 Hyperdiffusion coefficient applied to the cell-refreshed q at the end of each face-recipe substep. 4th-order undivided difference smoother: q -= alpha * (qdt/dt) * (q_{i+2} + q_{i-2}.
 
double precision, public, protected hd_htc_beta = 2.0d0
 Face-recipe heat-wave speed scaling: c_HTC,f = hd_htc_beta * c_max,f. Higher value -> closer to diffusion limit (q tracks Spitzer noise aggressively, AMR-triggering corona noise). Lower value -> more hyperbolic (q lags Spitzer target by Delta_t/tau ~ 1/beta^2 per step, dampening high-frequency noise). At our resolution beta=2-3 is the practical sweet spot: q evolves slowly enough that T-table round-off noise doesn't propagate, but fast enough that real TR conduction equilibrates within O(100) hydro timesteps.
 
double precision, public, protected hd_htc_sat_alpha = 1.0d0
 Cowie-McKee saturation coefficient: q_sat = hd_htc_sat_alpha * rho * c_s^3. Standard convention is alpha ~ 1 (absorbs the sqrt(m_p/m_e) factor that would appear if c_s were replaced by the electron thermal speed). Default 1.0.
 
double precision, public, protected hd_htc_pos_eta = 0.5d0
 Per-face energy-positivity safety fraction: |q_f^{n+1/2} dt A_f| <= hd_htc_pos_eta * min(e_int_L V_L, e_int_R V_R). Default 0.5 leaves headroom against simultaneous PdV and cooling decrements.
 
double precision, public, protected hd_htc_validity_warn = 0.1d0
 Validity-monitor threshold for l_r,f / Delta_x_f. Warn if any face exceeds this in a given block (printed once per dtsave_log step). Default 0.1: above this, HTC is modifying the physics beyond pure Spitzer; above 1.0 the local Spitzer approximation breaks down.
 
double precision, public, protected hd_htc_gradt_floor = 1.0d-3
 Gradient deadband: zero out the Spitzer face flux when abs(T_R - T_L) / max(T_L, T_R) < hd_htc_gradT_floor This suppresses sign-flipping q noise driven by EoS-table round-off (~1e-4 in T) being amplified by huge coronal kappa. Default 1.0e-3 sits 10x above the table noise floor but 5x below typical coronal gradients (Delta_x / L_T ~ 5e-3 at our resolution), so it kills the noise without suppressing real conduction. Set to 0.0 to disable.
 
double precision, public hd_htc_validity_max_runtime = 0.0d0
 Running max of l_r,f / dx_f across all face-recipe calls since simulation start. Inspect post-hoc via debugger or dump alongside dat files. Not reset per timestep – monotonic non-decreasing.
 
integer, public, protected iw_colmass = -1
 Index into wextra for escape probability column mass.
 
double precision, public hd_adiab = 1.0d0
 gamma is set in &eos_list and accessed via eosgamma
 
logical, public, protected hd_trac = .false.
 Whether TRAC method is used.
 
integer, public, protected hd_trac_type = 1
 
integer, public, protected hd_trac_nzones = 1
 
double precision, dimension(10), public, protected hd_trac_zone_splits = -1.d0
 
double precision, public, protected hd_trac_delta = 0.5d0
 Johnston 2021 resolution parameter delta (default 0.5)
 
double precision, public, protected hd_trac_v_thresh = 0.01d0
 Johnston 2021 mass flux velocity threshold (fraction of local c_s). Below this Mach number, enthalpy flux is ignored in the TRAC formula to prevent feedback-driven asymmetry from subsonic sloshing.
 
logical, public, protected hd_well_balanced = .false.
 Whether well-balanced reconstruction is used (Kaeppeli & Mishra style)
 
logical, public hd_equi_rho0 = .false.
 Equilibrium splitting variables (stubs for mod_usr.t compatibility)
 
logical, public hd_equi_pe0 = .false.
 
integer, public equi_rho0_ = -1
 
integer, public equi_pe0_ = -1
 
integer, public equi_e0_ = -1
 
double precision, public, protected h_ion_fr =1d0
 Helium abundance over Hydrogen He_abundance is set in &eos_list and accessed via eosHe_abundance Ionization fraction of H H_ion_fr = H+/(H+ + H)
 
double precision, public, protected he_ion_fr =1d0
 Ionization fraction of He He_ion_fr = (He2+ + He+)/(He2+ + He+ + He)
 
double precision, public, protected he_ion_fr2 =1d0
 Ratio of number He2+ / number He+ + He2+ He_ion_fr2 = He2+/(He2+ + He+)
 
double precision, public, protected rr =1d0
 

Detailed Description

Hydrodynamics physics module.

Function/Subroutine Documentation

◆ hd_check_params()

subroutine, public mod_hd_phys::hd_check_params

Definition at line 855 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_check_w()

subroutine, public mod_hd_phys::hd_check_w ( logical, intent(in)  primitive,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s, nw), intent(in)  w,
logical, dimension(ixi^s,1:nw), intent(inout)  flag 
)

Returns logical argument flag where values are ok.

Rather than redefining the hd_check_w and limiter procedure interfaces

Definition at line 1159 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_e_to_ei()

subroutine, public mod_hd_phys::hd_e_to_ei ( integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s, nw), intent(inout)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x 
)

Transform total energy to internal energy.

Definition at line 1288 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_ei_to_e()

subroutine, public mod_hd_phys::hd_ei_to_e ( integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s, nw), intent(inout)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x 
)

Transform internal energy to total energy.

Definition at line 1276 of file mod_hd_phys.t.

◆ hd_get_csound2()

subroutine, public mod_hd_phys::hd_get_csound2 ( double precision, dimension(ixi^s,nw), intent(in)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s), intent(out)  csound2 
)

Calculate the square of the thermal sound speed csound2 within ixO^L. For conserved w: extracts pthermal first, then applies Gamma_1. For LTE+IonE: look up Gamma_1 from pressure-indexed table, then cs2 = Gamma_1 * p/rho. Uses pressure-indexed table (gamma1_from_nH_p) because pressure is continuous at contact discontinuities, avoiding spurious gamma1 spikes from the eint-indexed table.

get_thermal_pressure has its own timing; only time the gamma1 loop here

Definition at line 1739 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_csrad2()

subroutine, public mod_hd_phys::hd_get_csrad2 ( double precision, dimension(ixi^s, nw), intent(in)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s), intent(out)  csound 
)

Calculate modified squared sound speed for FLD NOTE: only for diagnostic purposes, unused subroutine.

Definition at line 1772 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_csrad2_prim()

subroutine, public mod_hd_phys::hd_get_csrad2_prim ( double precision, dimension(ixi^s, nw), intent(in)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s), intent(out)  csound 
)

Calculate modified squared sound speed for FLD NOTE: w is primitive on entry here! NOTE: used in FLD module as phys_get_csrad2.

Definition at line 1790 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_pradiation_from_prim()

subroutine, public mod_hd_phys::hd_get_pradiation_from_prim ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s, 1:ndim, 1:ndim), intent(out)  prad 
)

Calculate radiation pressure within ixO^L NOTE: w is primitive on entry here! NOTE: used in FLD module as it is called from phys_get_csrad2.

Definition at line 1822 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_pthermal_plus_pradiation()

subroutine, public mod_hd_phys::hd_get_pthermal_plus_pradiation ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s), intent(out)  pth_plus_prad 
)

calculates the sum of the gas pressure and max Prad tensor element NOTE: only for diagnostic purposes, unused subroutine

Definition at line 1836 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_temperature_from_etot()

subroutine, public mod_hd_phys::hd_get_temperature_from_etot ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s), intent(out)  res 
)

Calculate temperature=p/rho when in e_ the total energy is stored.

Definition at line 1872 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_trad()

subroutine, public mod_hd_phys::hd_get_trad ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s), intent(out)  trad 
)

Calculates radiation temperature.

Definition at line 1858 of file mod_hd_phys.t.

◆ hd_handle_small_values()

subroutine, public mod_hd_phys::hd_handle_small_values ( logical, intent(in)  primitive,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
character(len=*), intent(in)  subname 
)

Convert to velocity to be compliant with p_to_e

Restore momentum (conserved-form invariant)

Definition at line 2445 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_kin_en()

double precision function, dimension(ixo^s), public mod_hd_phys::hd_kin_en ( double precision, dimension(ixi^s, nw), intent(in)  w,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixo^s), intent(in), optional  inv_rho 
)

Definition at line 2421 of file mod_hd_phys.t.

◆ hd_phys_init()

subroutine, public mod_hd_phys::hd_phys_init

Initialize the module.

set added variable and equation for radiation energy

Radiation fluid object: its EoS callbacks are wired in hd_link_eos

Initiate radiation-closure module

The implicit (MG diffusion) hooks need the fld_fl object, so they are wired here to physics-module wrappers that inject it.

Cache log10(nH) in wextra for LTE+IonE TC (density invariant during STS)

Definition at line 287 of file mod_hd_phys.t.

Here is the call graph for this function:

Variable Documentation

◆ c

integer, public, protected mod_hd_phys::c

Indices of the momentum density for the form of better vectorization.

Definition at line 69 of file mod_hd_phys.t.

◆ c_

integer, public, protected mod_hd_phys::c_

Definition at line 69 of file mod_hd_phys.t.

◆ e_

integer, public, protected mod_hd_phys::e_

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

Definition at line 75 of file mod_hd_phys.t.

◆ equi_e0_

integer, public mod_hd_phys::equi_e0_ = -1

Definition at line 195 of file mod_hd_phys.t.

◆ equi_pe0_

integer, public mod_hd_phys::equi_pe0_ = -1

Definition at line 194 of file mod_hd_phys.t.

◆ equi_rho0_

integer, public mod_hd_phys::equi_rho0_ = -1

Definition at line 193 of file mod_hd_phys.t.

◆ fip_

integer, public, protected mod_hd_phys::fip_ = -1

Index of the FIP passive scalar rho*fip in conserved form, fip in primitive form.

Definition at line 90 of file mod_hd_phys.t.

◆ fld_fl

type(fld_fluid), allocatable, public mod_hd_phys::fld_fl

Radiation fluid object (gas-EoS callbacks for FLD), wired in hd_link_eos.

Definition at line 40 of file mod_hd_phys.t.

◆ h_ion_fr

double precision, public, protected mod_hd_phys::h_ion_fr =1d0

Helium abundance over Hydrogen He_abundance is set in &eos_list and accessed via eosHe_abundance Ionization fraction of H H_ion_fr = H+/(H+ + H)

Definition at line 201 of file mod_hd_phys.t.

◆ hd_adiab

double precision, public mod_hd_phys::hd_adiab = 1.0d0

gamma is set in &eos_list and accessed via eosgamma

The adiabatic constant

Definition at line 172 of file mod_hd_phys.t.

◆ hd_cak_force

logical, public, protected mod_hd_phys::hd_cak_force = .false.

Whether CAK radiation line force is activated.

Definition at line 55 of file mod_hd_phys.t.

◆ hd_dust

logical, public, protected mod_hd_phys::hd_dust = .false.

Whether dust is added.

Definition at line 32 of file mod_hd_phys.t.

◆ hd_dust_implicit

logical, public, protected mod_hd_phys::hd_dust_implicit = .false.

Whether dust is added using and implicit update in IMEX.

Definition at line 35 of file mod_hd_phys.t.

◆ hd_energy

logical, public, protected mod_hd_phys::hd_energy = .true.

Whether an energy equation is used.

Definition at line 14 of file mod_hd_phys.t.

◆ hd_equi_pe0

logical, public mod_hd_phys::hd_equi_pe0 = .false.

Definition at line 192 of file mod_hd_phys.t.

◆ hd_equi_rho0

logical, public mod_hd_phys::hd_equi_rho0 = .false.

Equilibrium splitting variables (stubs for mod_usr.t compatibility)

Definition at line 191 of file mod_hd_phys.t.

◆ hd_fip

logical, public, protected mod_hd_phys::hd_fip = .false.

Whether FIP passive scalar is enabled.

Definition at line 93 of file mod_hd_phys.t.

◆ hd_gravity

logical, public, protected mod_hd_phys::hd_gravity = .false.

Whether gravity is added.

Definition at line 46 of file mod_hd_phys.t.

◆ hd_htc_beta

double precision, public, protected mod_hd_phys::hd_htc_beta = 2.0d0

Face-recipe heat-wave speed scaling: c_HTC,f = hd_htc_beta * c_max,f. Higher value -> closer to diffusion limit (q tracks Spitzer noise aggressively, AMR-triggering corona noise). Lower value -> more hyperbolic (q lags Spitzer target by Delta_t/tau ~ 1/beta^2 per step, dampening high-frequency noise). At our resolution beta=2-3 is the practical sweet spot: q evolves slowly enough that T-table round-off noise doesn't propagate, but fast enough that real TR conduction equilibrates within O(100) hydro timesteps.

Definition at line 133 of file mod_hd_phys.t.

◆ hd_htc_gradt_floor

double precision, public, protected mod_hd_phys::hd_htc_gradt_floor = 1.0d-3

Gradient deadband: zero out the Spitzer face flux when abs(T_R - T_L) / max(T_L, T_R) < hd_htc_gradT_floor This suppresses sign-flipping q noise driven by EoS-table round-off (~1e-4 in T) being amplified by huge coronal kappa. Default 1.0e-3 sits 10x above the table noise floor but 5x below typical coronal gradients (Delta_x / L_T ~ 5e-3 at our resolution), so it kills the noise without suppressing real conduction. Set to 0.0 to disable.

Definition at line 159 of file mod_hd_phys.t.

◆ hd_htc_hyp_diff

double precision, public, protected mod_hd_phys::hd_htc_hyp_diff = 0.02d0

Hyperdiffusion coefficient applied to the cell-refreshed q at the end of each face-recipe substep. 4th-order undivided difference smoother: q -= alpha * (qdt/dt) * (q_{i+2} + q_{i-2}.

  • 4(q_{i+1} + q_{i-1})
  • 6 q_i). MURaM (Rempel 2017) uses 0.02. Damps cell-scale q oscillations arising from kappa(T) amplifying small persistent T bumps in the EoS-derived cell-centred T profile; without it, the face-recipe q field has visible 5-cell-scale wiggles even where T is smooth. This is the only one of the OLD code's three q-smoothers (HLL diffusion, Koren reconstruction, hyperdiff) that the face-recipe needs – the architectural problems with the other two are not reintroduced.

Definition at line 123 of file mod_hd_phys.t.

◆ hd_htc_kappa_override

double precision, public, protected mod_hd_phys::hd_htc_kappa_override = -1.0d0

Optional parfile override for hypertc_kappa (e.g. to match a constant-κ parabolic TC run for benchmarking). Default -1.0 leaves the Spitzer value computed from physical units.

Definition at line 108 of file mod_hd_phys.t.

◆ hd_htc_pos_eta

double precision, public, protected mod_hd_phys::hd_htc_pos_eta = 0.5d0

Per-face energy-positivity safety fraction: |q_f^{n+1/2} dt A_f| <= hd_htc_pos_eta * min(e_int_L V_L, e_int_R V_R). Default 0.5 leaves headroom against simultaneous PdV and cooling decrements.

Definition at line 144 of file mod_hd_phys.t.

◆ hd_htc_sat

logical, public, protected mod_hd_phys::hd_htc_sat = .false.

Whether saturation is considered for hyperbolic TC.

Definition at line 23 of file mod_hd_phys.t.

◆ hd_htc_sat_alpha

double precision, public, protected mod_hd_phys::hd_htc_sat_alpha = 1.0d0

Cowie-McKee saturation coefficient: q_sat = hd_htc_sat_alpha * rho * c_s^3. Standard convention is alpha ~ 1 (absorbs the sqrt(m_p/m_e) factor that would appear if c_s were replaced by the electron thermal speed). Default 1.0.

Definition at line 139 of file mod_hd_phys.t.

◆ hd_htc_validity_max_runtime

double precision, public mod_hd_phys::hd_htc_validity_max_runtime = 0.0d0

Running max of l_r,f / dx_f across all face-recipe calls since simulation start. Inspect post-hoc via debugger or dump alongside dat files. Not reset per timestep – monotonic non-decreasing.

Definition at line 164 of file mod_hd_phys.t.

◆ hd_htc_validity_warn

double precision, public, protected mod_hd_phys::hd_htc_validity_warn = 0.1d0

Validity-monitor threshold for l_r,f / Delta_x_f. Warn if any face exceeds this in a given block (printed once per dtsave_log step). Default 0.1: above this, HTC is modifying the physics beyond pure Spitzer; above 1.0 the local Spitzer approximation breaks down.

Definition at line 150 of file mod_hd_phys.t.

◆ hd_hyperbolic_thermal_conduction

logical, public, protected mod_hd_phys::hd_hyperbolic_thermal_conduction = .false.

Whether hyperbolic thermal conduction (Cattaneo relaxation) is used. 1D only — the q-variable is treated as a scalar carrying the heat flux along the only spatial direction.

Definition at line 21 of file mod_hd_phys.t.

◆ hd_n_tracer

integer, public, protected mod_hd_phys::hd_n_tracer = 0

Number of tracer species.

Definition at line 58 of file mod_hd_phys.t.

◆ hd_particles

logical, public, protected mod_hd_phys::hd_particles = .false.

Whether particles module is added.

Definition at line 49 of file mod_hd_phys.t.

◆ hd_radiation_fld

logical, public, protected mod_hd_phys::hd_radiation_fld = .false.

Whether radiation-gas interaction is handled using flux limited diffusion.

Definition at line 38 of file mod_hd_phys.t.

◆ hd_radiative_cooling

logical, public, protected mod_hd_phys::hd_radiative_cooling = .false.

Whether radiative cooling is added.

Definition at line 28 of file mod_hd_phys.t.

◆ hd_rotating_frame

logical, public, protected mod_hd_phys::hd_rotating_frame = .false.

Whether rotating frame is activated.

Definition at line 52 of file mod_hd_phys.t.

◆ hd_thermal_conduction

logical, public, protected mod_hd_phys::hd_thermal_conduction = .false.

Whether thermal conduction is added.

Definition at line 17 of file mod_hd_phys.t.

◆ hd_trac

logical, public, protected mod_hd_phys::hd_trac = .false.

Whether TRAC method is used.

Definition at line 175 of file mod_hd_phys.t.

◆ hd_trac_delta

double precision, public, protected mod_hd_phys::hd_trac_delta = 0.5d0

Johnston 2021 resolution parameter delta (default 0.5)

Definition at line 180 of file mod_hd_phys.t.

◆ hd_trac_nzones

integer, public, protected mod_hd_phys::hd_trac_nzones = 1

Definition at line 177 of file mod_hd_phys.t.

◆ hd_trac_type

integer, public, protected mod_hd_phys::hd_trac_type = 1

Definition at line 176 of file mod_hd_phys.t.

◆ hd_trac_v_thresh

double precision, public, protected mod_hd_phys::hd_trac_v_thresh = 0.01d0

Johnston 2021 mass flux velocity threshold (fraction of local c_s). Below this Mach number, enthalpy flux is ignored in the TRAC formula to prevent feedback-driven asymmetry from subsonic sloshing.

Definition at line 184 of file mod_hd_phys.t.

◆ hd_trac_zone_splits

double precision, dimension(10), public, protected mod_hd_phys::hd_trac_zone_splits = -1.d0

Definition at line 178 of file mod_hd_phys.t.

◆ hd_viscosity

logical, public, protected mod_hd_phys::hd_viscosity = .false.

Whether viscosity is added.

Definition at line 43 of file mod_hd_phys.t.

◆ hd_well_balanced

logical, public, protected mod_hd_phys::hd_well_balanced = .false.

Whether well-balanced reconstruction is used (Kaeppeli & Mishra style)

Definition at line 187 of file mod_hd_phys.t.

◆ he_ion_fr

double precision, public, protected mod_hd_phys::he_ion_fr =1d0

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

Definition at line 204 of file mod_hd_phys.t.

◆ he_ion_fr2

double precision, public, protected mod_hd_phys::he_ion_fr2 =1d0

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

Definition at line 207 of file mod_hd_phys.t.

◆ hypertc_kappa

double precision, public mod_hd_phys::hypertc_kappa

Thermal-conductivity prefactor in hyperbolic TC, set in hd_physical_units. Spitzer form: κ(T) = hypertc_kappa · T^{5/2}.

Definition at line 103 of file mod_hd_phys.t.

◆ iw_colmass

integer, public, protected mod_hd_phys::iw_colmass = -1

Index into wextra for escape probability column mass.

Definition at line 167 of file mod_hd_phys.t.

◆ m

integer, public, protected mod_hd_phys::m

Definition at line 69 of file mod_hd_phys.t.

◆ mom

integer, dimension(:), allocatable, public, protected mod_hd_phys::mom

Indices of the momentum density.

Definition at line 66 of file mod_hd_phys.t.

◆ ne_

integer, public, protected mod_hd_phys::ne_

Index of the electron number density for LTE module.

Definition at line 81 of file mod_hd_phys.t.

◆ p_

integer, public, protected mod_hd_phys::p_

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

Definition at line 78 of file mod_hd_phys.t.

◆ q_

integer, public, protected mod_hd_phys::q_

Index of the hyperbolic-TC heat-flux variable (-1 if not present)

Definition at line 99 of file mod_hd_phys.t.

◆ r_e

integer, public, protected mod_hd_phys::r_e

Index of the radiation energy (when fld active)

Definition at line 84 of file mod_hd_phys.t.

◆ rc_fl

type(rc_fluid), allocatable, public mod_hd_phys::rc_fl

Definition at line 29 of file mod_hd_phys.t.

◆ rho_

integer, public, protected mod_hd_phys::rho_

Whether plasma is partially ionized.

Index of the density (in the w array)

Definition at line 63 of file mod_hd_phys.t.

◆ rr

double precision, public, protected mod_hd_phys::rr =1d0

Definition at line 211 of file mod_hd_phys.t.

◆ tc_fl

type(tc_fluid), allocatable, public mod_hd_phys::tc_fl

Definition at line 24 of file mod_hd_phys.t.

◆ tcoff_

integer, public, protected mod_hd_phys::tcoff_

Index of the cutoff temperature for the TRAC method.

Definition at line 96 of file mod_hd_phys.t.

◆ te_

integer, public, protected mod_hd_phys::te_

Indices of temperature.

Definition at line 87 of file mod_hd_phys.t.

◆ te_fl_hd

type(te_fluid), allocatable, public mod_hd_phys::te_fl_hd

Definition at line 25 of file mod_hd_phys.t.

◆ tracer

integer, dimension(:), allocatable, public, protected mod_hd_phys::tracer

Indices of the tracers.

Definition at line 72 of file mod_hd_phys.t.