|
MPI-AMRVAC 3.2
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
|
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 |
Hydrodynamics physics module.
| subroutine, public mod_hd_phys::hd_check_params |
| 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.

| 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.

| 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.
| 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.

| 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.

| 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.

| 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.

| 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.

| 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.

| 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.
| 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.

| 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.
| 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.

| 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.
| integer, public, protected mod_hd_phys::c_ |
Definition at line 69 of file mod_hd_phys.t.
| 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.
| integer, public mod_hd_phys::equi_e0_ = -1 |
Definition at line 195 of file mod_hd_phys.t.
| integer, public mod_hd_phys::equi_pe0_ = -1 |
Definition at line 194 of file mod_hd_phys.t.
| integer, public mod_hd_phys::equi_rho0_ = -1 |
Definition at line 193 of file mod_hd_phys.t.
| 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.
| 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.
| 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.
| 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.
| 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.
| logical, public, protected mod_hd_phys::hd_dust = .false. |
Whether dust is added.
Definition at line 32 of file mod_hd_phys.t.
| 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.
| 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.
| logical, public mod_hd_phys::hd_equi_pe0 = .false. |
Definition at line 192 of file mod_hd_phys.t.
| 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.
| 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.
| logical, public, protected mod_hd_phys::hd_gravity = .false. |
Whether gravity is added.
Definition at line 46 of file mod_hd_phys.t.
| 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.
| 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.
| 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}.
Definition at line 123 of file mod_hd_phys.t.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| integer, public, protected mod_hd_phys::hd_n_tracer = 0 |
Number of tracer species.
Definition at line 58 of file mod_hd_phys.t.
| logical, public, protected mod_hd_phys::hd_particles = .false. |
Whether particles module is added.
Definition at line 49 of file mod_hd_phys.t.
| 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.
| 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.
| 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.
| 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.
| logical, public, protected mod_hd_phys::hd_trac = .false. |
Whether TRAC method is used.
Definition at line 175 of file mod_hd_phys.t.
| 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.
| integer, public, protected mod_hd_phys::hd_trac_nzones = 1 |
Definition at line 177 of file mod_hd_phys.t.
| integer, public, protected mod_hd_phys::hd_trac_type = 1 |
Definition at line 176 of file mod_hd_phys.t.
| 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.
| 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.
| logical, public, protected mod_hd_phys::hd_viscosity = .false. |
Whether viscosity is added.
Definition at line 43 of file mod_hd_phys.t.
| 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.
| 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.
| 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.
| 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.
| 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.
| integer, public, protected mod_hd_phys::m |
Definition at line 69 of file mod_hd_phys.t.
| integer, dimension(:), allocatable, public, protected mod_hd_phys::mom |
Indices of the momentum density.
Definition at line 66 of file mod_hd_phys.t.
| 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.
| 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.
| 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.
| 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.
| type(rc_fluid), allocatable, public mod_hd_phys::rc_fl |
Definition at line 29 of file mod_hd_phys.t.
| 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.
| double precision, public, protected mod_hd_phys::rr =1d0 |
Definition at line 211 of file mod_hd_phys.t.
| type(tc_fluid), allocatable, public mod_hd_phys::tc_fl |
Definition at line 24 of file mod_hd_phys.t.
| 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.
| integer, public, protected mod_hd_phys::te_ |
Indices of temperature.
Definition at line 87 of file mod_hd_phys.t.
| type(te_fluid), allocatable, public mod_hd_phys::te_fl_hd |
Definition at line 25 of file mod_hd_phys.t.
| integer, dimension(:), allocatable, public, protected mod_hd_phys::tracer |
Indices of the tracers.
Definition at line 72 of file mod_hd_phys.t.