MPI-AMRVAC  3.1
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
Data Types | Functions/Subroutines | Variables
mod_mhd_phys Module Reference

Magneto-hydrodynamics module. More...

Functions/Subroutines

subroutine mhd_write_info (fh)
 Write this module's parameters to a snapsoht. More...
 
subroutine, public mhd_phys_init ()
 
subroutine mhd_te_images
 
subroutine mhd_sts_set_source_tc_mhd (ixIL, ixOL, w, x, wres, fix_conserve_at_step, my_dt, igrid, nflux)
 
double precision function mhd_get_tc_dt_mhd (w, ixIL, ixOL, dxD, x)
 
subroutine mhd_tc_handle_small_e (w, x, ixIL, ixOL, step)
 
subroutine tc_params_read_mhd (fl)
 
subroutine rc_params_read (fl)
 
subroutine set_equi_vars_grid_faces (igrid, x, ixIL, ixOL)
 sets the equilibrium variables More...
 
subroutine set_equi_vars_grid (igrid)
 sets the equilibrium variables More...
 
double precision function, dimension(ixo^s, 1:nwc) convert_vars_splitting (ixIL, ixOL, w, x, nwc)
 
subroutine mhd_check_params
 
subroutine mhd_physical_units ()
 
subroutine mhd_check_w_semirelati (primitive, ixIL, ixOL, w, flag)
 
subroutine mhd_check_w_origin (primitive, ixIL, ixOL, w, flag)
 
subroutine mhd_check_w_noe (primitive, ixIL, ixOL, w, flag)
 
subroutine mhd_check_w_inte (primitive, ixIL, ixOL, w, flag)
 
subroutine mhd_check_w_hde (primitive, ixIL, ixOL, w, flag)
 
subroutine mhd_to_conserved_origin (ixIL, ixOL, w, x)
 Transform primitive variables into conservative ones. More...
 
subroutine mhd_to_conserved_origin_noe (ixIL, ixOL, w, x)
 Transform primitive variables into conservative ones. More...
 
subroutine mhd_to_conserved_hde (ixIL, ixOL, w, x)
 Transform primitive variables into conservative ones. More...
 
subroutine mhd_to_conserved_inte (ixIL, ixOL, w, x)
 Transform primitive variables into conservative ones. More...
 
subroutine mhd_to_conserved_split_rho (ixIL, ixOL, w, x)
 Transform primitive variables into conservative ones. More...
 
subroutine mhd_to_conserved_semirelati (ixIL, ixOL, w, x)
 Transform primitive variables into conservative ones. More...
 
subroutine mhd_to_conserved_semirelati_noe (ixIL, ixOL, w, x)
 
subroutine mhd_to_primitive_origin (ixIL, ixOL, w, x)
 Transform conservative variables into primitive ones. More...
 
subroutine mhd_to_primitive_origin_noe (ixIL, ixOL, w, x)
 Transform conservative variables into primitive ones. More...
 
subroutine mhd_to_primitive_hde (ixIL, ixOL, w, x)
 Transform conservative variables into primitive ones. More...
 
subroutine mhd_to_primitive_inte (ixIL, ixOL, w, x)
 Transform conservative variables into primitive ones. More...
 
subroutine mhd_to_primitive_split_rho (ixIL, ixOL, w, x)
 Transform conservative variables into primitive ones. More...
 
subroutine mhd_to_primitive_semirelati (ixIL, ixOL, w, x)
 Transform conservative variables into primitive ones. More...
 
subroutine mhd_to_primitive_semirelati_noe (ixIL, ixOL, w, x)
 Transform conservative variables into primitive ones. More...
 
subroutine, public mhd_ei_to_e (ixIL, ixOL, w, x)
 Transform internal energy to total energy. More...
 
subroutine mhd_ei_to_e_hde (ixIL, ixOL, w, x)
 Transform internal energy to hydrodynamic energy. More...
 
subroutine mhd_ei_to_e_semirelati (ixIL, ixOL, w, x)
 Transform internal energy to total energy and velocity to momentum. More...
 
subroutine, public mhd_e_to_ei (ixIL, ixOL, w, x)
 Transform total energy to internal energy. More...
 
subroutine mhd_e_to_ei_hde (ixIL, ixOL, w, x)
 Transform hydrodynamic energy to internal energy. More...
 
subroutine mhd_e_to_ei_semirelati (ixIL, ixOL, w, x)
 Transform total energy to internal energy and momentum to velocity. More...
 
subroutine mhd_handle_small_values_semirelati (primitive, w, x, ixIL, ixOL, subname)
 
subroutine mhd_handle_small_values_origin (primitive, w, x, ixIL, ixOL, subname)
 
subroutine mhd_handle_small_values_inte (primitive, w, x, ixIL, ixOL, subname)
 
subroutine mhd_handle_small_values_noe (primitive, w, x, ixIL, ixOL, subname)
 
subroutine mhd_handle_small_values_hde (primitive, w, x, ixIL, ixOL, subname)
 
subroutine, public mhd_get_v (w, x, ixIL, ixOL, v)
 Calculate v vector. More...
 
subroutine mhd_get_cmax_origin (w, x, ixIL, ixOL, idim, cmax)
 Calculate cmax_idim=csound+abs(v_idim) within ixO^L. More...
 
subroutine mhd_get_cmax_origin_noe (w, x, ixIL, ixOL, idim, cmax)
 Calculate cmax_idim=csound+abs(v_idim) within ixO^L. More...
 
subroutine mhd_get_cmax_semirelati (w, x, ixIL, ixOL, idim, cmax)
 Calculate cmax_idim for semirelativistic MHD. More...
 
subroutine mhd_get_cmax_semirelati_noe (w, x, ixIL, ixOL, idim, cmax)
 Calculate cmax_idim for semirelativistic MHD. More...
 
subroutine mhd_get_a2max (w, x, ixIL, ixOL, a2max)
 
subroutine mhd_get_tcutoff (ixIL, ixOL, w, x, Tco_local, Tmax_local)
 get adaptive cutoff temperature for TRAC (Johnston 2019 ApJL, 873, L22) More...
 
subroutine mhd_get_h_speed (wprim, x, ixIL, ixOL, idim, Hspeed)
 get H speed for H-correction to fix the carbuncle problem at grid-aligned shock front More...
 
subroutine mhd_get_cbounds (wLC, wRC, wLp, wRp, x, ixIL, ixOL, idim, Hspeed, cmax, cmin)
 Estimating bounds for the minimum and maximum signal velocities without split. More...
 
subroutine mhd_get_cbounds_semirelati (wLC, wRC, wLp, wRp, x, ixIL, ixOL, idim, Hspeed, cmax, cmin)
 Estimating bounds for the minimum and maximum signal velocities without split. More...
 
subroutine mhd_get_cbounds_split_rho (wLC, wRC, wLp, wRp, x, ixIL, ixOL, idim, Hspeed, cmax, cmin)
 Estimating bounds for the minimum and maximum signal velocities with rho split. More...
 
subroutine mhd_get_ct_velocity (vcts, wLp, wRp, ixIL, ixOL, idim, cmax, cmin)
 prepare velocities for ct methods More...
 
subroutine mhd_get_csound_prim (w, x, ixIL, ixOL, idim, csound)
 Calculate fast magnetosonic wave speed. More...
 
subroutine mhd_get_csound_prim_split (w, x, ixIL, ixOL, idim, csound)
 Calculate fast magnetosonic wave speed. More...
 
subroutine mhd_get_csound_semirelati (w, x, ixIL, ixOL, idim, csound, gamma2)
 Calculate cmax_idim for semirelativistic MHD. More...
 
subroutine mhd_get_csound_semirelati_noe (w, x, ixIL, ixOL, idim, csound, gamma2)
 Calculate cmax_idim for semirelativistic MHD. More...
 
subroutine mhd_get_pthermal_noe (w, x, ixIL, ixOL, pth)
 Calculate isothermal thermal pressure. More...
 
subroutine mhd_get_pthermal_inte (w, x, ixIL, ixOL, pth)
 Calculate thermal pressure from internal energy. More...
 
subroutine mhd_get_pthermal_origin (w, x, ixIL, ixOL, pth)
 Calculate thermal pressure=(gamma-1)*(e-0.5*m**2/rho-b**2/2) within ixO^L. More...
 
subroutine mhd_get_pthermal_semirelati (w, x, ixIL, ixOL, pth)
 Calculate thermal pressure. More...
 
subroutine mhd_get_pthermal_hde (w, x, ixIL, ixOL, pth)
 Calculate thermal pressure=(gamma-1)*(e-0.5*m**2/rho) within ixO^L. More...
 
subroutine mhd_get_temperature_from_te (w, x, ixIL, ixOL, res)
 copy temperature from stored Te variable More...
 
subroutine mhd_get_temperature_from_eint (w, x, ixIL, ixOL, res)
 Calculate temperature=p/rho when in e_ the internal energy is stored. More...
 
subroutine mhd_get_temperature_from_etot (w, x, ixIL, ixOL, res)
 Calculate temperature=p/rho when in e_ the total energy is stored. More...
 
subroutine mhd_get_temperature_from_etot_with_equi (w, x, ixIL, ixOL, res)
 
subroutine mhd_get_temperature_from_eint_with_equi (w, x, ixIL, ixOL, res)
 
subroutine mhd_get_temperature_equi (w, x, ixIL, ixOL, res)
 
subroutine mhd_get_rho_equi (w, x, ixIL, ixOL, res)
 
subroutine mhd_get_pe_equi (w, x, ixIL, ixOL, res)
 
subroutine mhd_get_p_total (w, x, ixIL, ixOL, p)
 Calculate total pressure within ixO^L including magnetic pressure. More...
 
subroutine mhd_get_flux (wC, w, x, ixIL, ixOL, idim, f)
 Calculate fluxes within ixO^L without any splitting. More...
 
subroutine mhd_get_flux_noe (wC, w, x, ixIL, ixOL, idim, f)
 Calculate fluxes within ixO^L without any splitting. More...
 
subroutine mhd_get_flux_hde (wC, w, x, ixIL, ixOL, idim, f)
 Calculate fluxes with hydrodynamic energy equation. More...
 
subroutine mhd_get_flux_split (wC, w, x, ixIL, ixOL, idim, f)
 Calculate fluxes within ixO^L with possible splitting. More...
 
subroutine mhd_get_flux_semirelati (wC, w, x, ixIL, ixOL, idim, f)
 Calculate semirelativistic fluxes within ixO^L without any splitting. More...
 
subroutine mhd_get_flux_semirelati_noe (wC, w, x, ixIL, ixOL, idim, f)
 
subroutine add_source_ambipolar_internal_energy (qdt, ixIL, ixOL, wCT, w, x, ie)
 Source terms J.E in internal energy. For the ambipolar term E = ambiCoef * JxBxB=ambiCoef * B^2(-J_perpB) More...
 
subroutine mhd_get_jxbxb (w, x, ixIL, ixOL, res)
 
subroutine sts_set_source_ambipolar (ixIL, ixOL, w, x, wres, fix_conserve_at_step, my_dt, igrid, nflux)
 Sets the sources for the ambipolar this is used for the STS method. More...
 
subroutine update_faces_ambipolar (ixIL, ixOL, w, x, ECC, fE, circ)
 get ambipolar electric field and the integrals around cell faces More...
 
subroutine get_flux_on_cell_face (ixIL, ixOL, ff, src)
 use cell-center flux to get cell-face flux and get the source term as the divergence of the flux More...
 
double precision function get_ambipolar_dt (w, ixIL, ixOL, dxD, x)
 Calculates the explicit dt for the ambipokar term This function is used by both explicit scheme and STS method. More...
 
subroutine, public multiplyambicoef (ixIL, ixOL, res, w, x)
 multiply res by the ambipolar coefficient The ambipolar coefficient is calculated as -mhd_eta_ambi/rho^2 The user may mask its value in the user file by implemneting usr_mask_ambipolar subroutine More...
 
subroutine mhd_add_source (qdt, dtfactor, ixIL, ixOL, wCT, wCTprim, w, x, qsourcesplit, active)
 w[iws]=w[iws]+qdt*S[iws,wCT] where S is the source based on wCT within ixO More...
 
subroutine add_pe0_divv (qdt, dtfactor, ixIL, ixOL, wCT, w, x)
 
subroutine get_tau (ixIL, ixOL, w, Te, tau, sigT5)
 
subroutine add_hypertc_source (qdt, ixIL, ixOL, wCT, w, x, wCTprim)
 
subroutine get_lorentz_force (ixIL, ixOL, w, JxB)
 Compute the Lorentz force (JxB) More...
 
subroutine mhd_gamma2_alfven (ixIL, ixOL, w, gamma_A2)
 Compute 1/(1+v_A^2/c^2) for semirelativistic MHD, where v_A is the Alfven velocity. More...
 
double precision function, dimension(ixo^s) mhd_gamma_alfven (w, ixIL, ixOL)
 Compute 1/sqrt(1+v_A^2/c^2) for semirelativisitic MHD, where v_A is the Alfven velocity. More...
 
subroutine, public mhd_get_rho (w, x, ixIL, ixOL, rho)
 
subroutine mhd_handle_small_ei (w, x, ixIL, ixOL, ie, subname)
 handle small or negative internal energy More...
 
subroutine mhd_update_temperature (ixIL, ixOL, wCT, w, x)
 
subroutine add_source_b0split (qdt, dtfactor, ixIL, ixOL, wCT, w, x)
 Source terms after split off time-independent magnetic field. More...
 
subroutine add_source_semirelativistic (qdt, ixIL, ixOL, wCT, w, x, wCTprim)
 Source terms for semirelativistic MHD Gombosi 2002 JCP 177, 176. More...
 
subroutine add_source_internal_e (qdt, ixIL, ixOL, wCT, w, x, wCTprim)
 Source terms for internal energy version of MHD. More...
 
subroutine add_source_hydrodynamic_e (qdt, ixIL, ixOL, wCT, w, x, wCTprim)
 Source terms for hydrodynamic energy version of MHD. More...
 
subroutine add_source_res1 (qdt, ixIL, ixOL, wCT, w, x)
 Add resistive source to w within ixO Uses 3 point stencil (1 neighbour) in each direction, non-conservative. If the fourthorder precompiler flag is set, uses fourth order central difference for the laplacian. Then the stencil is 5 (2 neighbours). More...
 
subroutine add_source_res2 (qdt, ixIL, ixOL, wCT, w, x)
 Add resistive source to w within ixO Uses 5 point stencil (2 neighbours) in each direction, conservative. More...
 
subroutine add_source_hyperres (qdt, ixIL, ixOL, wCT, w, x)
 Add Hyper-resistive source to w within ixO Uses 9 point stencil (4 neighbours) in each direction. More...
 
subroutine add_source_glm (qdt, ixIL, ixOL, wCT, w, x)
 
subroutine add_source_powel (qdt, ixIL, ixOL, wCT, w, x)
 Add divB related sources to w within ixO corresponding to Powel. More...
 
subroutine add_source_janhunen (qdt, ixIL, ixOL, wCT, w, x)
 
subroutine add_source_linde (qdt, ixIL, ixOL, wCT, w, x)
 
subroutine, public get_normalized_divb (w, ixIL, ixOL, divb)
 get dimensionless div B = |divB| * volume / area / |B| More...
 
subroutine, public get_current (w, ixIL, ixOL, idirmin, current)
 Calculate idirmin and the idirmin:3 components of the common current array make sure that dxlevel(^D) is set correctly. More...
 
subroutine mhd_get_dt (w, ixIL, ixOL, dtnew, dxD, x)
 If resistivity is not zero, check diffusion time limit for dt. More...
 
subroutine mhd_add_source_geom (qdt, dtfactor, ixIL, ixOL, wCT, wprim, w, x)
 
subroutine mhd_add_source_geom_semirelati (qdt, dtfactor, ixIL, ixOL, wCT, wprim, w, x)
 
subroutine mhd_add_source_geom_split (qdt, dtfactor, ixIL, ixOL, wCT, wprim, w, x)
 
double precision function, dimension(ixo^s), public mhd_mag_en_all (w, ixIL, ixOL)
 Compute 2 times total magnetic energy. More...
 
subroutine mhd_getv_hall (w, x, ixIL, ixOL, vHall)
 
subroutine mhd_get_jambi (w, x, ixIL, ixOL, res)
 
subroutine mhd_modify_wlr (ixIL, ixOL, qt, wLC, wRC, wLp, wRp, s, idir)
 
subroutine mhd_boundary_adjust (igrid, psb)
 
subroutine fixdivb_boundary (ixGL, ixOL, w, x, iB)
 
subroutine, public mhd_clean_divb_multigrid (qdt, qt, active)
 
subroutine mhd_update_faces (ixIL, ixOL, qt, qdt, wprim, fC, fE, sCT, s, vcts)
 
subroutine update_faces_average (ixIL, ixOL, qt, qdt, fC, fE, sCT, s)
 get electric field though averaging neighors to update faces in CT More...
 
subroutine update_faces_contact (ixIL, ixOL, qt, qdt, wp, fC, fE, sCT, s, vcts)
 update faces using UCT contact mode by Gardiner and Stone 2005 JCP 205, 509 More...
 
subroutine update_faces_hll (ixIL, ixOL, qt, qdt, fE, sCT, s, vcts)
 update faces More...
 
subroutine get_resistive_electric_field (ixIL, ixOL, sCT, s, jce)
 calculate eta J at cell edges More...
 
subroutine get_ambipolar_electric_field (ixIL, ixOL, w, x, fE)
 get ambipolar electric field on cell edges More...
 
subroutine, public mhd_face_to_center (ixOL, s)
 calculate cell-center values from face-center values More...
 
subroutine, public b_from_vector_potential (ixIsL, ixIL, ixOL, ws, x)
 calculate magnetic field from vector potential More...
 
subroutine rfactor_from_temperature_ionization (w, x, ixIL, ixOL, Rfactor)
 
subroutine rfactor_from_constant_ionization (w, x, ixIL, ixOL, Rfactor)
 

Variables

double precision, public mhd_gamma = 5.d0/3.0d0
 The adiabatic index. More...
 
double precision, public mhd_adiab = 1.0d0
 The adiabatic constant. More...
 
double precision, public mhd_eta = 0.0d0
 The MHD resistivity. More...
 
double precision, public mhd_eta_hyper = 0.0d0
 The MHD hyper-resistivity. More...
 
double precision, public mhd_etah = 0.0d0
 Hall resistivity. More...
 
double precision, public mhd_eta_ambi = 0.0d0
 The MHD ambipolar coefficient. More...
 
double precision, public, protected mhd_trac_mask = 0.d0
 Height of the mask used in the TRAC method. More...
 
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]. More...
 
double precision, public, protected mhd_reduced_c = 0.02d0*const_c
 Reduced speed of light for semirelativistic MHD: 2% of light speed. More...
 
double precision, public hypertc_kappa
 The thermal conductivity kappa in hyperbolic thermal conduction. More...
 
double precision, public, protected he_abundance =0.1d0
 Helium abundance over Hydrogen. More...
 
double precision, public, protected h_ion_fr =1d0
 Ionization fraction of H H_ion_fr = H+/(H+ + H) More...
 
double precision, public, protected he_ion_fr =1d0
 Ionization fraction of He He_ion_fr = (He2+ + He+)/(He2+ + He+ + He) More...
 
double precision, public, protected he_ion_fr2 =1d0
 Ratio of number He2+ / number He+ + He2+ He_ion_fr2 = He2+/(He2+ + He+) More...
 
double precision, public, protected rr =1d0
 
integer, public equi_rho0_ = -1
 equi vars indices in the stateequi_vars array More...
 
integer, public equi_pe0_ = -1
 
integer, public, protected mhd_n_tracer = 0
 Number of tracer species. More...
 
integer, public, protected rho_
 Index of the density (in the w array) More...
 
integer, dimension(:), allocatable, public, protected mom
 Indices of the momentum density. More...
 
integer, public, protected c
 Indices of the momentum density for the form of better vectorization. More...
 
integer, public, protected m
 
integer, public, protected c_
 
integer, public, protected e_
 Index of the energy density (-1 if not present) More...
 
integer, public, protected b
 
integer, public, protected p_
 Index of the gas pressure (-1 if not present) should equal e_. More...
 
integer, public, protected q_
 Index of the heat flux q. More...
 
integer, public, protected psi_
 Indices of the GLM psi. More...
 
integer, public, protected te_
 Indices of temperature. More...
 
integer, public, protected tcoff_
 Index of the cutoff temperature for the TRAC method. More...
 
integer, public, protected tweight_
 
integer, dimension(:), allocatable, public, protected tracer
 Indices of the tracers. More...
 
integer, dimension(2 *^nd), public, protected boundary_divbfix_skip =0
 To skip * layer of ghost cells during divB=0 fix for boundary. More...
 
logical, public, protected mhd_energy = .true.
 Whether an energy equation is used. More...
 
logical, public, protected mhd_thermal_conduction = .false.
 Whether thermal conduction is used. More...
 
logical, public, protected mhd_radiative_cooling = .false.
 Whether radiative cooling is added. More...
 
logical, public, protected mhd_hyperbolic_thermal_conduction = .false.
 Whether thermal conduction is used. More...
 
logical, public, protected mhd_viscosity = .false.
 Whether viscosity is added. More...
 
logical, public, protected mhd_gravity = .false.
 Whether gravity is added. More...
 
logical, public, protected mhd_rotating_frame = .false.
 Whether rotating frame is activated. More...
 
logical, public, protected mhd_hall = .false.
 Whether Hall-MHD is used. More...
 
logical, public, protected mhd_ambipolar = .false.
 Whether Ambipolar term is used. More...
 
logical, public, protected mhd_ambipolar_sts = .false.
 Whether Ambipolar term is implemented using supertimestepping. More...
 
logical, public, protected mhd_ambipolar_exp = .false.
 Whether Ambipolar term is implemented explicitly. More...
 
logical, public, protected mhd_particles = .false.
 Whether particles module is added. More...
 
logical, public, protected mhd_magnetofriction = .false.
 Whether magnetofriction is added. More...
 
logical, public, protected mhd_glm = .false.
 Whether GLM-MHD is used to control div B. More...
 
logical, public, protected mhd_glm_extended = .true.
 Whether extended GLM-MHD is used with additional sources. More...
 
logical, public, protected mhd_trac = .false.
 Whether TRAC method is used. More...
 
integer, public, protected mhd_trac_type =1
 Which TRAC method is used. More...
 
integer, public, protected mhd_trac_finegrid =4
 Distance between two adjacent traced magnetic field lines (in finest cell size) More...
 
logical, public, protected mhd_internal_e = .false.
 Whether internal energy is solved instead of total energy. More...
 
logical, public, protected mhd_hydrodynamic_e = .false.
 Whether hydrodynamic energy is solved instead of total energy. More...
 
logical, public, protected source_split_divb = .false.
 Whether divB cleaning sources are added splitting from fluid solver. More...
 
logical, public, protected mhd_semirelativistic = .false.
 Whether semirelativistic MHD equations (Gombosi 2002 JCP) are solved. More...
 
logical, public, protected mhd_partial_ionization = .false.
 Whether plasma is partially ionized. More...
 
logical, public, protected mhd_cak_force = .false.
 Whether CAK radiation line force is activated. More...
 
logical, public, protected mhd_4th_order = .false.
 MHD fourth order. More...
 
logical, public has_equi_rho0 = .false.
 whether split off equilibrium density More...
 
logical, public has_equi_pe0 = .false.
 whether split off equilibrium thermal pressure More...
 
logical, public mhd_equi_thermal = .false.
 
logical, public, protected mhd_dump_full_vars = .false.
 whether dump full variables (when splitting is used) in a separate dat file More...
 
logical, public, protected mhd_divb_4thorder = .false.
 Whether divB is computed with a fourth order approximation. More...
 
logical, public divbwave = .true.
 Add divB wave in Roe solver. More...
 
logical, public clean_initial_divb = .false.
 clean initial divB More...
 
logical, public, protected eq_state_units = .true.
 
logical, dimension(2 *^nd), public, protected boundary_divbfix =.true.
 To control divB=0 fix for boundary. More...
 
logical, public, protected b0field_forcefree =.true.
 B0 field is force-free. More...
 
logical, public partial_energy = .false.
 Whether an internal or hydrodynamic energy equation is used. More...
 
character(len=std_len), public, protected typedivbfix = 'linde'
 Method type to clean divergence of B. More...
 
character(len=std_len), public, protected type_ct = 'uct_contact'
 Method type of constrained transport. More...
 
type(tc_fluid), allocatable, public tc_fl
 type of fluid for thermal conduction More...
 
type(te_fluid), allocatable, public te_fl_mhd
 type of fluid for thermal emission synthesis More...
 
type(rc_fluid), allocatable, public rc_fl
 type of fluid for radiative cooling More...
 
procedure(mask_subroutine), pointer, public usr_mask_ambipolar => null()
 
procedure(sub_convert), pointer, public mhd_to_primitive => null()
 
procedure(sub_convert), pointer, public mhd_to_conserved => null()
 
procedure(sub_get_pthermal), pointer, public mhd_get_pthermal => null()
 
procedure(sub_get_pthermal), pointer, public mhd_get_temperature => null()
 

Detailed Description

Magneto-hydrodynamics module.

Function/Subroutine Documentation

◆ add_hypertc_source()

subroutine mod_mhd_phys::add_hypertc_source ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, dimension(ixi^s,1:nw), intent(in)  wCTprim 
)

Definition at line 4569 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ add_pe0_divv()

subroutine mod_mhd_phys::add_pe0_divv ( double precision, intent(in)  qdt,
double precision, intent(in)  dtfactor,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Definition at line 4512 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ add_source_ambipolar_internal_energy()

subroutine mod_mhd_phys::add_source_ambipolar_internal_energy ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
integer, intent(in)  ie 
)

Source terms J.E in internal energy. For the ambipolar term E = ambiCoef * JxBxB=ambiCoef * B^2(-J_perpB)

ambiCoef is calculated as mhd_ambi_coef/rho^2, see also the subroutine mhd_get_Jambi

Definition at line 4057 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ add_source_b0split()

subroutine mod_mhd_phys::add_source_b0split ( double precision, intent(in)  qdt,
double precision, intent(in)  dtfactor,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Source terms after split off time-independent magnetic field.

Definition at line 4755 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ add_source_glm()

subroutine mod_mhd_phys::add_source_glm ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Definition at line 5254 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ add_source_hydrodynamic_e()

subroutine mod_mhd_phys::add_source_hydrodynamic_e ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, dimension(ixi^s,1:nw), intent(in), optional  wCTprim 
)

Source terms for hydrodynamic energy version of MHD.

Definition at line 4910 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ add_source_hyperres()

subroutine mod_mhd_phys::add_source_hyperres ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Add Hyper-resistive source to w within ixO Uses 9 point stencil (4 neighbours) in each direction.

Definition at line 5198 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ add_source_internal_e()

subroutine mod_mhd_phys::add_source_internal_e ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, dimension(ixi^s,1:nw), intent(in)  wCTprim 
)

Source terms for internal energy version of MHD.

Definition at line 4871 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ add_source_janhunen()

subroutine mod_mhd_phys::add_source_janhunen ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Definition at line 5357 of file mod_mhd_phys.t.

◆ add_source_linde()

subroutine mod_mhd_phys::add_source_linde ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Definition at line 5381 of file mod_mhd_phys.t.

◆ add_source_powel()

subroutine mod_mhd_phys::add_source_powel ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Add divB related sources to w within ixO corresponding to Powel.

Definition at line 5316 of file mod_mhd_phys.t.

◆ add_source_res1()

subroutine mod_mhd_phys::add_source_res1 ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Add resistive source to w within ixO Uses 3 point stencil (1 neighbour) in each direction, non-conservative. If the fourthorder precompiler flag is set, uses fourth order central difference for the laplacian. Then the stencil is 5 (2 neighbours).

Definition at line 5020 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ add_source_res2()

subroutine mod_mhd_phys::add_source_res2 ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Add resistive source to w within ixO Uses 5 point stencil (2 neighbours) in each direction, conservative.

Definition at line 5128 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ add_source_semirelativistic()

subroutine mod_mhd_phys::add_source_semirelativistic ( double precision, intent(in)  qdt,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, dimension(ixi^s,1:nw), intent(in), optional  wCTprim 
)

Source terms for semirelativistic MHD Gombosi 2002 JCP 177, 176.

Definition at line 4826 of file mod_mhd_phys.t.

◆ b_from_vector_potential()

subroutine, public mod_mhd_phys::b_from_vector_potential ( integer, intent(in)  ixIs,
integer, intent(in)  L,
integer, intent(in)  ixI,
  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixis^s,1:nws), intent(inout)  ws,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

calculate magnetic field from vector potential

Definition at line 7433 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ convert_vars_splitting()

double precision function, dimension(ixo^s, 1:nwc) mod_mhd_phys::convert_vars_splitting ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
integer, intent(in)  nwc 
)

Definition at line 1151 of file mod_mhd_phys.t.

◆ fixdivb_boundary()

subroutine mod_mhd_phys::fixdivb_boundary ( integer, intent(in)  ixG,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixg^s,1:nw), intent(inout)  w,
double precision, dimension(ixg^s,1:ndim), intent(in)  x,
integer, intent(in)  iB 
)

Definition at line 6182 of file mod_mhd_phys.t.

◆ get_ambipolar_dt()

double precision function mod_mhd_phys::get_ambipolar_dt ( double precision, dimension(ixi^s,1:nw), intent(in)  w,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, intent(in)  dx,
double precision, intent(in)  D,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Calculates the explicit dt for the ambipokar term This function is used by both explicit scheme and STS method.

Definition at line 4328 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ get_ambipolar_electric_field()

subroutine mod_mhd_phys::get_ambipolar_electric_field ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, dimension(ixi^s,sdim:3), intent(out)  fE 
)

get ambipolar electric field on cell edges

Definition at line 7335 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ get_current()

subroutine, public mod_mhd_phys::get_current ( double precision, dimension(ixi^s,1:nw), intent(in)  w,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(out)  idirmin,
double precision, dimension(ixi^s,7-2*ndir:3)  current 
)

Calculate idirmin and the idirmin:3 components of the common current array make sure that dxlevel(^D) is set correctly.

Definition at line 5491 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ get_flux_on_cell_face()

subroutine mod_mhd_phys::get_flux_on_cell_face ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(:^d&,:), intent(inout)  ff,
double precision, dimension(ixi^s), intent(out)  src 
)

use cell-center flux to get cell-face flux and get the source term as the divergence of the flux

Definition at line 4273 of file mod_mhd_phys.t.

◆ get_lorentz_force()

subroutine mod_mhd_phys::get_lorentz_force ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  w,
double precision, dimension(ixi^s,3), intent(inout)  JxB 
)

Compute the Lorentz force (JxB)

Definition at line 4614 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ get_normalized_divb()

subroutine, public mod_mhd_phys::get_normalized_divb ( double precision, dimension(ixi^s,1:nw), intent(in)  w,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s)  divb 
)

get dimensionless div B = |divB| * volume / area / |B|

Definition at line 5457 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ get_resistive_electric_field()

subroutine mod_mhd_phys::get_resistive_electric_field ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
type(state), intent(in)  sCT,
type(state), intent(in)  s,
double precision, dimension(ixi^s,sdim:3)  jce 
)

calculate eta J at cell edges

Definition at line 7266 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ get_tau()

subroutine mod_mhd_phys::get_tau ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  w,
double precision, dimension(ixi^s), intent(in)  Te,
double precision, dimension(ixi^s), intent(out)  tau,
double precision, dimension(ixi^s), intent(out)  sigT5 
)

w supposed to be wCTprim here

Definition at line 4540 of file mod_mhd_phys.t.

◆ mhd_add_source()

subroutine mod_mhd_phys::mhd_add_source ( double precision, intent(in)  qdt,
double precision, intent(in)  dtfactor,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(in)  wCTprim,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
logical, intent(in)  qsourcesplit,
logical, intent(inout)  active 
)

w[iws]=w[iws]+qdt*S[iws,wCT] where S is the source based on wCT within ixO

Definition at line 4380 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_add_source_geom()

subroutine mod_mhd_phys::mhd_add_source_geom ( double precision, intent(in)  qdt,
double precision, intent(in)  dtfactor,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(inout)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  wprim,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Definition at line 5581 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_add_source_geom_semirelati()

subroutine mod_mhd_phys::mhd_add_source_geom_semirelati ( double precision, intent(in)  qdt,
double precision, intent(in)  dtfactor,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(inout)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  wprim,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Definition at line 5711 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_add_source_geom_split()

subroutine mod_mhd_phys::mhd_add_source_geom_split ( double precision, intent(in)  qdt,
double precision, intent(in)  dtfactor,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(inout)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  wprim,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Definition at line 5876 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_boundary_adjust()

subroutine mod_mhd_phys::mhd_boundary_adjust ( integer, intent(in)  igrid,
type(state), dimension(max_blocks), target  psb 
)

Definition at line 6141 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_check_params()

subroutine mod_mhd_phys::mhd_check_params

Definition at line 1185 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_check_w_hde()

subroutine mod_mhd_phys::mhd_check_w_hde ( 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 
)

Definition at line 1450 of file mod_mhd_phys.t.

◆ mhd_check_w_inte()

subroutine mod_mhd_phys::mhd_check_w_inte ( 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 
)

Definition at line 1416 of file mod_mhd_phys.t.

◆ mhd_check_w_noe()

subroutine mod_mhd_phys::mhd_check_w_noe ( 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 
)

Definition at line 1395 of file mod_mhd_phys.t.

◆ mhd_check_w_origin()

subroutine mod_mhd_phys::mhd_check_w_origin ( 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 
)

Definition at line 1358 of file mod_mhd_phys.t.

◆ mhd_check_w_semirelati()

subroutine mod_mhd_phys::mhd_check_w_semirelati ( 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 
)

Definition at line 1293 of file mod_mhd_phys.t.

◆ mhd_clean_divb_multigrid()

subroutine, public mod_mhd_phys::mhd_clean_divb_multigrid ( double precision, intent(in)  qdt,
double precision, intent(in)  qt,
logical, intent(inout)  active 
)
Parameters
[in]qdtCurrent time step
[in]qtCurrent time
[in,out]activeOutput if the source is active

Definition at line 6559 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_e_to_ei()

subroutine, public mod_mhd_phys::mhd_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 1941 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_e_to_ei_hde()

subroutine mod_mhd_phys::mhd_e_to_ei_hde ( 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 hydrodynamic energy to internal energy.

Definition at line 1973 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_e_to_ei_semirelati()

subroutine mod_mhd_phys::mhd_e_to_ei_semirelati ( 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 and momentum to velocity.

Definition at line 2003 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_ei_to_e()

subroutine, public mod_mhd_phys::mhd_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 1875 of file mod_mhd_phys.t.

◆ mhd_ei_to_e_hde()

subroutine mod_mhd_phys::mhd_ei_to_e_hde ( 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 hydrodynamic energy.

Definition at line 1903 of file mod_mhd_phys.t.

◆ mhd_ei_to_e_semirelati()

subroutine mod_mhd_phys::mhd_ei_to_e_semirelati ( 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 and velocity to momentum.

Definition at line 1929 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_face_to_center()

subroutine, public mod_mhd_phys::mhd_face_to_center ( integer, intent(in)  ixO,
integer, intent(in)  L,
type(state s 
)

calculate cell-center values from face-center values

Definition at line 7368 of file mod_mhd_phys.t.

◆ mhd_gamma2_alfven()

subroutine mod_mhd_phys::mhd_gamma2_alfven ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, nw), intent(in)  w,
double precision, dimension(ixo^s), intent(out)  gamma_A2 
)

Compute 1/(1+v_A^2/c^2) for semirelativistic MHD, where v_A is the Alfven velocity.

Definition at line 4648 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_gamma_alfven()

double precision function, dimension(ixo^s) mod_mhd_phys::mhd_gamma_alfven ( double precision, dimension(ixi^s, nw), intent(in)  w,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L 
)

Compute 1/sqrt(1+v_A^2/c^2) for semirelativisitic MHD, where v_A is the Alfven velocity.

Definition at line 4667 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_a2max()

subroutine mod_mhd_phys::mhd_get_a2max ( 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(ndim), intent(inout)  a2max 
)

4th order

Definition at line 2595 of file mod_mhd_phys.t.

◆ mhd_get_cbounds()

subroutine mod_mhd_phys::mhd_get_cbounds ( double precision, dimension(ixi^s, nw), intent(in)  wLC,
double precision, dimension(ixi^s, nw), intent(in)  wRC,
double precision, dimension(ixi^s, nw), intent(in)  wLp,
double precision, dimension(ixi^s, nw), intent(in)  wRp,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(in)  idim,
double precision, dimension(ixi^s,1:number_species), intent(in)  Hspeed,
double precision, dimension(ixi^s,1:number_species), intent(inout)  cmax,
double precision, dimension(ixi^s,1:number_species), intent(inout), optional  cmin 
)

Estimating bounds for the minimum and maximum signal velocities without split.

Definition at line 2849 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_cbounds_semirelati()

subroutine mod_mhd_phys::mhd_get_cbounds_semirelati ( double precision, dimension(ixi^s, nw), intent(in)  wLC,
double precision, dimension(ixi^s, nw), intent(in)  wRC,
double precision, dimension(ixi^s, nw), intent(in)  wLp,
double precision, dimension(ixi^s, nw), intent(in)  wRp,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(in)  idim,
double precision, dimension(ixi^s,1:number_species), intent(in)  Hspeed,
double precision, dimension(ixi^s,1:number_species), intent(inout)  cmax,
double precision, dimension(ixi^s,1:number_species), intent(inout), optional  cmin 
)

Estimating bounds for the minimum and maximum signal velocities without split.

Definition at line 2942 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_cbounds_split_rho()

subroutine mod_mhd_phys::mhd_get_cbounds_split_rho ( double precision, dimension(ixi^s, nw), intent(in)  wLC,
double precision, dimension(ixi^s, nw), intent(in)  wRC,
double precision, dimension(ixi^s, nw), intent(in)  wLp,
double precision, dimension(ixi^s, nw), intent(in)  wRp,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(in)  idim,
double precision, dimension(ixi^s,1:number_species), intent(in)  Hspeed,
double precision, dimension(ixi^s,1:number_species), intent(inout)  cmax,
double precision, dimension(ixi^s,1:number_species), intent(inout), optional  cmin 
)

Estimating bounds for the minimum and maximum signal velocities with rho split.

Definition at line 2980 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_cmax_origin()

subroutine mod_mhd_phys::mhd_get_cmax_origin ( 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,
integer, intent(in)  idim,
double precision, dimension(ixi^s), intent(inout)  cmax 
)

Calculate cmax_idim=csound+abs(v_idim) within ixO^L.

Definition at line 2407 of file mod_mhd_phys.t.

◆ mhd_get_cmax_origin_noe()

subroutine mod_mhd_phys::mhd_get_cmax_origin_noe ( 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,
integer, intent(in)  idim,
double precision, dimension(ixi^s), intent(inout)  cmax 
)

Calculate cmax_idim=csound+abs(v_idim) within ixO^L.

Definition at line 2470 of file mod_mhd_phys.t.

◆ mhd_get_cmax_semirelati()

subroutine mod_mhd_phys::mhd_get_cmax_semirelati ( 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,
integer, intent(in)  idim,
double precision, dimension(ixi^s), intent(inout)  cmax 
)

Calculate cmax_idim for semirelativistic MHD.

Definition at line 2533 of file mod_mhd_phys.t.

◆ mhd_get_cmax_semirelati_noe()

subroutine mod_mhd_phys::mhd_get_cmax_semirelati_noe ( 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,
integer, intent(in)  idim,
double precision, dimension(ixi^s), intent(inout)  cmax 
)

Calculate cmax_idim for semirelativistic MHD.

Definition at line 2565 of file mod_mhd_phys.t.

◆ mhd_get_csound_prim()

subroutine mod_mhd_phys::mhd_get_csound_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,
integer, intent(in)  idim,
double precision, dimension(ixo^s), intent(out)  csound 
)

Calculate fast magnetosonic wave speed.

Definition at line 3126 of file mod_mhd_phys.t.

◆ mhd_get_csound_prim_split()

subroutine mod_mhd_phys::mhd_get_csound_prim_split ( 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,
integer, intent(in)  idim,
double precision, dimension(ixo^s), intent(out)  csound 
)

Calculate fast magnetosonic wave speed.

Definition at line 3179 of file mod_mhd_phys.t.

◆ mhd_get_csound_semirelati()

subroutine mod_mhd_phys::mhd_get_csound_semirelati ( 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,
integer, intent(in)  idim,
double precision, dimension(ixo^s), intent(out)  csound,
double precision, dimension(ixo^s), intent(out)  gamma2 
)

Calculate cmax_idim for semirelativistic MHD.

Definition at line 3230 of file mod_mhd_phys.t.

◆ mhd_get_csound_semirelati_noe()

subroutine mod_mhd_phys::mhd_get_csound_semirelati_noe ( 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,
integer, intent(in)  idim,
double precision, dimension(ixo^s), intent(out)  csound,
double precision, dimension(ixo^s), intent(out)  gamma2 
)

Calculate cmax_idim for semirelativistic MHD.

Definition at line 3261 of file mod_mhd_phys.t.

◆ mhd_get_ct_velocity()

subroutine mod_mhd_phys::mhd_get_ct_velocity ( type(ct_velocity), intent(inout)  vcts,
double precision, dimension(ixi^s, nw), intent(in)  wLp,
double precision, dimension(ixi^s, nw), intent(in)  wRp,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(in)  idim,
double precision, dimension(ixi^s), intent(in)  cmax,
double precision, dimension(ixi^s), intent(in), optional  cmin 
)

prepare velocities for ct methods

Definition at line 3073 of file mod_mhd_phys.t.

◆ mhd_get_dt()

subroutine mod_mhd_phys::mhd_get_dt ( double precision, dimension(ixi^s,1:nw), intent(in)  w,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, intent(inout)  dtnew,
double precision, intent(in)  dx,
double precision, intent(in)  D,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

If resistivity is not zero, check diffusion time limit for dt.

Definition at line 5512 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_flux()

subroutine mod_mhd_phys::mhd_get_flux ( double precision, dimension(ixi^s,nw), intent(in)  wC,
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,
integer, intent(in)  idim,
double precision, dimension(ixi^s,nwflux), intent(out)  f 
)

Calculate fluxes within ixO^L without any splitting.

Definition at line 3622 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_flux_hde()

subroutine mod_mhd_phys::mhd_get_flux_hde ( double precision, dimension(ixi^s,nw), intent(in)  wC,
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,
integer, intent(in)  idim,
double precision, dimension(ixi^s,nwflux), intent(out)  f 
)

Calculate fluxes with hydrodynamic energy equation.

Definition at line 3753 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_flux_noe()

subroutine mod_mhd_phys::mhd_get_flux_noe ( double precision, dimension(ixi^s,nw), intent(in)  wC,
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,
integer, intent(in)  idim,
double precision, dimension(ixi^s,nwflux), intent(out)  f 
)

Calculate fluxes within ixO^L without any splitting.

Definition at line 3704 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_flux_semirelati()

subroutine mod_mhd_phys::mhd_get_flux_semirelati ( double precision, dimension(ixi^s,nw), intent(in)  wC,
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,
integer, intent(in)  idim,
double precision, dimension(ixi^s,nwflux), intent(out)  f 
)

Calculate semirelativistic fluxes within ixO^L without any splitting.

Definition at line 3910 of file mod_mhd_phys.t.

◆ mhd_get_flux_semirelati_noe()

subroutine mod_mhd_phys::mhd_get_flux_semirelati_noe ( double precision, dimension(ixi^s,nw), intent(in)  wC,
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,
integer, intent(in)  idim,
double precision, dimension(ixi^s,nwflux), intent(out)  f 
)

Definition at line 3992 of file mod_mhd_phys.t.

◆ mhd_get_flux_split()

subroutine mod_mhd_phys::mhd_get_flux_split ( double precision, dimension(ixi^s,nw), intent(in)  wC,
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,
integer, intent(in)  idim,
double precision, dimension(ixi^s,nwflux), intent(out)  f 
)

Calculate fluxes within ixO^L with possible splitting.

Definition at line 3811 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_h_speed()

subroutine mod_mhd_phys::mhd_get_h_speed ( double precision, dimension(ixi^s, nw), intent(in)  wprim,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(in)  idim,
double precision, dimension(ixi^s,1:number_species), intent(out)  Hspeed 
)

get H speed for H-correction to fix the carbuncle problem at grid-aligned shock front

Definition at line 2800 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_jambi()

subroutine mod_mhd_phys::mhd_get_jambi ( 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(:^d&,:), intent(inout), allocatable  res 
)

Definition at line 6064 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_jxbxb()

subroutine mod_mhd_phys::mhd_get_jxbxb ( 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(:^d&,:), intent(out)  res 
)

Definition at line 4073 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_p_total()

subroutine mod_mhd_phys::mhd_get_p_total ( 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)  p 
)

Calculate total pressure within ixO^L including magnetic pressure.

Definition at line 3607 of file mod_mhd_phys.t.

◆ mhd_get_pe_equi()

subroutine mod_mhd_phys::mhd_get_pe_equi ( 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 
)

Definition at line 3597 of file mod_mhd_phys.t.

◆ mhd_get_pthermal_hde()

subroutine mod_mhd_phys::mhd_get_pthermal_hde ( 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)  pth 
)

Calculate thermal pressure=(gamma-1)*(e-0.5*m**2/rho) within ixO^L.

Definition at line 3468 of file mod_mhd_phys.t.

◆ mhd_get_pthermal_inte()

subroutine mod_mhd_phys::mhd_get_pthermal_inte ( 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)  pth 
)

Calculate thermal pressure from internal energy.

Definition at line 3309 of file mod_mhd_phys.t.

◆ mhd_get_pthermal_noe()

subroutine mod_mhd_phys::mhd_get_pthermal_noe ( 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)  pth 
)

Calculate isothermal thermal pressure.

Definition at line 3292 of file mod_mhd_phys.t.

◆ mhd_get_pthermal_origin()

subroutine mod_mhd_phys::mhd_get_pthermal_origin ( 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)  pth 
)

Calculate thermal pressure=(gamma-1)*(e-0.5*m**2/rho-b**2/2) within ixO^L.

Definition at line 3351 of file mod_mhd_phys.t.

◆ mhd_get_pthermal_semirelati()

subroutine mod_mhd_phys::mhd_get_pthermal_semirelati ( 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)  pth 
)

Calculate thermal pressure.

Definition at line 3395 of file mod_mhd_phys.t.

◆ mhd_get_rho()

subroutine, public mod_mhd_phys::mhd_get_rho ( 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)  rho 
)

Definition at line 4677 of file mod_mhd_phys.t.

◆ mhd_get_rho_equi()

subroutine mod_mhd_phys::mhd_get_rho_equi ( 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 
)

Definition at line 3588 of file mod_mhd_phys.t.

◆ mhd_get_tc_dt_mhd()

double precision function mod_mhd_phys::mhd_get_tc_dt_mhd ( double precision, dimension(ixi^s,1:nw), intent(in)  w,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, intent(in)  dx,
double precision, intent(in)  D,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Definition at line 972 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_tcutoff()

subroutine mod_mhd_phys::mhd_get_tcutoff ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, intent(out)  Tco_local,
double precision, intent(out)  Tmax_local 
)

get adaptive cutoff temperature for TRAC (Johnston 2019 ApJL, 873, L22)

test case, fixed cutoff temperature

iijima et al. 2021, LTRAC method

test case, fixed cutoff temperature

iijima et al. 2021, LTRAC method

do nothing here

Definition at line 2618 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_get_temperature_equi()

subroutine mod_mhd_phys::mhd_get_temperature_equi ( 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 
)

Definition at line 3574 of file mod_mhd_phys.t.

◆ mhd_get_temperature_from_eint()

subroutine mod_mhd_phys::mhd_get_temperature_from_eint ( 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 internal energy is stored.

Definition at line 3515 of file mod_mhd_phys.t.

◆ mhd_get_temperature_from_eint_with_equi()

subroutine mod_mhd_phys::mhd_get_temperature_from_eint_with_equi ( 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 
)

Definition at line 3559 of file mod_mhd_phys.t.

◆ mhd_get_temperature_from_etot()

subroutine mod_mhd_phys::mhd_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 3529 of file mod_mhd_phys.t.

◆ mhd_get_temperature_from_etot_with_equi()

subroutine mod_mhd_phys::mhd_get_temperature_from_etot_with_equi ( 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 
)

Definition at line 3544 of file mod_mhd_phys.t.

◆ mhd_get_temperature_from_te()

subroutine mod_mhd_phys::mhd_get_temperature_from_te ( 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 
)

copy temperature from stored Te variable

Definition at line 3505 of file mod_mhd_phys.t.

◆ mhd_get_v()

subroutine, public mod_mhd_phys::mhd_get_v ( 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,ndir), intent(out)  v 
)

Calculate v vector.

Definition at line 2386 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_getv_hall()

subroutine mod_mhd_phys::mhd_getv_hall ( 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,1:3), intent(inout)  vHall 
)

Definition at line 6041 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_handle_small_ei()

subroutine mod_mhd_phys::mhd_handle_small_ei ( 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,
integer, intent(in)  ie,
character(len=*), intent(in)  subname 
)

handle small or negative internal energy

Definition at line 4692 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_handle_small_values_hde()

subroutine mod_mhd_phys::mhd_handle_small_values_hde ( 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 
)

Definition at line 2334 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_handle_small_values_inte()

subroutine mod_mhd_phys::mhd_handle_small_values_inte ( 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 
)

Definition at line 2214 of file mod_mhd_phys.t.

◆ mhd_handle_small_values_noe()

subroutine mod_mhd_phys::mhd_handle_small_values_noe ( 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 
)

Definition at line 2283 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_handle_small_values_origin()

subroutine mod_mhd_phys::mhd_handle_small_values_origin ( 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 
)

Definition at line 2117 of file mod_mhd_phys.t.

◆ mhd_handle_small_values_semirelati()

subroutine mod_mhd_phys::mhd_handle_small_values_semirelati ( 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 
)

Definition at line 2014 of file mod_mhd_phys.t.

◆ mhd_mag_en_all()

double precision function, dimension(ixo^s), public mod_mhd_phys::mhd_mag_en_all ( double precision, dimension(ixi^s, nw), intent(in)  w,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L 
)

Compute 2 times total magnetic energy.

Definition at line 6028 of file mod_mhd_phys.t.

◆ mhd_modify_wlr()

subroutine mod_mhd_phys::mhd_modify_wlr ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, intent(in)  qt,
double precision, dimension(ixi^s,1:nw), intent(inout)  wLC,
double precision, dimension(ixi^s,1:nw), intent(inout)  wRC,
double precision, dimension(ixi^s,1:nw), intent(inout)  wLp,
double precision, dimension(ixi^s,1:nw), intent(inout)  wRp,
type(state s,
integer, intent(in)  idir 
)

Definition at line 6088 of file mod_mhd_phys.t.

◆ mhd_phys_init()

subroutine, public mod_mhd_phys::mhd_phys_init

Definition at line 294 of file mod_mhd_phys.t.

◆ mhd_physical_units()

subroutine mod_mhd_phys::mhd_physical_units

Definition at line 1216 of file mod_mhd_phys.t.

◆ mhd_sts_set_source_tc_mhd()

subroutine mod_mhd_phys::mhd_sts_set_source_tc_mhd ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, dimension(ixi^s,1:nw), intent(inout)  wres,
logical, intent(in)  fix_conserve_at_step,
double precision, intent(in)  my_dt,
integer, intent(in)  igrid,
integer, intent(in)  nflux 
)

Definition at line 960 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_tc_handle_small_e()

subroutine mod_mhd_phys::mhd_tc_handle_small_e ( 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,
integer, intent(in)  step 
)

Definition at line 987 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_te_images()

subroutine mod_mhd_phys::mhd_te_images

Definition at line 938 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_to_conserved_hde()

subroutine mod_mhd_phys::mhd_to_conserved_hde ( 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 primitive variables into conservative ones.

Definition at line 1509 of file mod_mhd_phys.t.

◆ mhd_to_conserved_inte()

subroutine mod_mhd_phys::mhd_to_conserved_inte ( 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 primitive variables into conservative ones.

Definition at line 1528 of file mod_mhd_phys.t.

◆ mhd_to_conserved_origin()

subroutine mod_mhd_phys::mhd_to_conserved_origin ( 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 primitive variables into conservative ones.

Definition at line 1473 of file mod_mhd_phys.t.

◆ mhd_to_conserved_origin_noe()

subroutine mod_mhd_phys::mhd_to_conserved_origin_noe ( 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 primitive variables into conservative ones.

Definition at line 1493 of file mod_mhd_phys.t.

◆ mhd_to_conserved_semirelati()

subroutine mod_mhd_phys::mhd_to_conserved_semirelati ( 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 primitive variables into conservative ones.

Definition at line 1568 of file mod_mhd_phys.t.

◆ mhd_to_conserved_semirelati_noe()

subroutine mod_mhd_phys::mhd_to_conserved_semirelati_noe ( 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 
)

Definition at line 1616 of file mod_mhd_phys.t.

◆ mhd_to_conserved_split_rho()

subroutine mod_mhd_phys::mhd_to_conserved_split_rho ( 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 primitive variables into conservative ones.

Definition at line 1546 of file mod_mhd_phys.t.

◆ mhd_to_primitive_hde()

subroutine mod_mhd_phys::mhd_to_primitive_hde ( 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 conservative variables into primitive ones.

Definition at line 1702 of file mod_mhd_phys.t.

◆ mhd_to_primitive_inte()

subroutine mod_mhd_phys::mhd_to_primitive_inte ( 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 conservative variables into primitive ones.

Definition at line 1727 of file mod_mhd_phys.t.

◆ mhd_to_primitive_origin()

subroutine mod_mhd_phys::mhd_to_primitive_origin ( 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 conservative variables into primitive ones.

Definition at line 1652 of file mod_mhd_phys.t.

◆ mhd_to_primitive_origin_noe()

subroutine mod_mhd_phys::mhd_to_primitive_origin_noe ( 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 conservative variables into primitive ones.

Definition at line 1679 of file mod_mhd_phys.t.

◆ mhd_to_primitive_semirelati()

subroutine mod_mhd_phys::mhd_to_primitive_semirelati ( 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 conservative variables into primitive ones.

Definition at line 1779 of file mod_mhd_phys.t.

◆ mhd_to_primitive_semirelati_noe()

subroutine mod_mhd_phys::mhd_to_primitive_semirelati_noe ( 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 conservative variables into primitive ones.

Definition at line 1839 of file mod_mhd_phys.t.

◆ mhd_to_primitive_split_rho()

subroutine mod_mhd_phys::mhd_to_primitive_split_rho ( 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 conservative variables into primitive ones.

Definition at line 1752 of file mod_mhd_phys.t.

◆ mhd_update_faces()

subroutine mod_mhd_phys::mhd_update_faces ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, intent(in)  qt,
double precision, intent(in)  qdt,
double precision, dimension(ixi^s,1:nw), intent(in)  wprim,
double precision, dimension(ixi^s,1:nwflux,1:ndim), intent(in)  fC,
double precision, dimension(ixi^s,sdim:3), intent(inout)  fE,
type(state sCT,
type(state s,
type(ct_velocity vcts 
)

Definition at line 6712 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_update_temperature()

subroutine mod_mhd_phys::mhd_update_temperature ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  wCT,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Definition at line 4735 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ mhd_write_info()

subroutine mod_mhd_phys::mhd_write_info ( integer, intent(in)  fh)

Write this module's parameters to a snapsoht.

Definition at line 276 of file mod_mhd_phys.t.

◆ multiplyambicoef()

subroutine, public mod_mhd_phys::multiplyambicoef ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s), intent(inout)  res,
double precision, dimension(ixi^s,1:nw), intent(in)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

multiply res by the ambipolar coefficient The ambipolar coefficient is calculated as -mhd_eta_ambi/rho^2 The user may mask its value in the user file by implemneting usr_mask_ambipolar subroutine

Definition at line 4361 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ rc_params_read()

subroutine mod_mhd_phys::rc_params_read ( type(rc_fluid), intent(inout)  fl)

Lower limit of temperature

Fixed temperature not lower than tlow

Add cooling source in a split way (.true.) or un-split way (.false.)

Name of cooling curve

Name of cooling method

Definition at line 1047 of file mod_mhd_phys.t.

◆ rfactor_from_constant_ionization()

subroutine mod_mhd_phys::rfactor_from_constant_ionization ( 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)  Rfactor 
)

Definition at line 7463 of file mod_mhd_phys.t.

◆ rfactor_from_temperature_ionization()

subroutine mod_mhd_phys::rfactor_from_temperature_ionization ( 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)  Rfactor 
)

Definition at line 7447 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ set_equi_vars_grid()

subroutine mod_mhd_phys::set_equi_vars_grid ( integer, intent(in)  igrid)

sets the equilibrium variables

Definition at line 1136 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ set_equi_vars_grid_faces()

subroutine mod_mhd_phys::set_equi_vars_grid_faces ( integer, intent(in)  igrid,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L 
)

sets the equilibrium variables

Definition at line 1092 of file mod_mhd_phys.t.

◆ sts_set_source_ambipolar()

subroutine mod_mhd_phys::sts_set_source_ambipolar ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, dimension(ixi^s,1:nw), intent(inout)  wres,
logical, intent(in)  fix_conserve_at_step,
double precision, intent(in)  my_dt,
integer, intent(in)  igrid,
integer, intent(in)  nflux 
)

Sets the sources for the ambipolar this is used for the STS method.

at the corresponding indices store_flux_var is explicitly called for each of the fluxes one by one

Definition at line 4114 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ tc_params_read_mhd()

subroutine mod_mhd_phys::tc_params_read_mhd ( type(tc_fluid), intent(inout)  fl)

Definition at line 1001 of file mod_mhd_phys.t.

◆ update_faces_ambipolar()

subroutine mod_mhd_phys::update_faces_ambipolar ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s,1:nw), intent(in)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, dimension(ixi^s,1:3), intent(in)  ECC,
double precision, dimension(ixi^s,sdim:3), intent(out)  fE,
double precision, dimension(ixi^s,1:ndim), intent(out)  circ 
)

get ambipolar electric field and the integrals around cell faces

Definition at line 4219 of file mod_mhd_phys.t.

◆ update_faces_average()

subroutine mod_mhd_phys::update_faces_average ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, intent(in)  qt,
double precision, intent(in)  qdt,
double precision, dimension(ixi^s,1:nwflux,1:ndim), intent(in)  fC,
double precision, dimension(ixi^s,sdim:3), intent(inout)  fE,
type(state sCT,
type(state s 
)

get electric field though averaging neighors to update faces in CT

Definition at line 6738 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ update_faces_contact()

subroutine mod_mhd_phys::update_faces_contact ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, intent(in)  qt,
double precision, intent(in)  qdt,
double precision, dimension(ixi^s,1:nw), intent(in)  wp,
double precision, dimension(ixi^s,1:nwflux,1:ndim), intent(in)  fC,
double precision, dimension(ixi^s,sdim:3), intent(inout)  fE,
type(state sCT,
type(state s,
type(ct_velocity vcts 
)

update faces using UCT contact mode by Gardiner and Stone 2005 JCP 205, 509

Definition at line 6837 of file mod_mhd_phys.t.

Here is the call graph for this function:

◆ update_faces_hll()

subroutine mod_mhd_phys::update_faces_hll ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, intent(in)  qt,
double precision, intent(in)  qdt,
double precision, dimension(ixi^s,sdim:3), intent(inout)  fE,
type(state sCT,
type(state s,
type(ct_velocity vcts 
)

update faces

Definition at line 7109 of file mod_mhd_phys.t.

Here is the call graph for this function:

Variable Documentation

◆ b

integer, public, protected mod_mhd_phys::b

Definition at line 75 of file mod_mhd_phys.t.

◆ b0field_forcefree

logical, public, protected mod_mhd_phys::b0field_forcefree =.true.

B0 field is force-free.

Definition at line 180 of file mod_mhd_phys.t.

◆ boundary_divbfix

logical, dimension(2*^nd), public, protected mod_mhd_phys::boundary_divbfix =.true.

To control divB=0 fix for boundary.

Definition at line 178 of file mod_mhd_phys.t.

◆ boundary_divbfix_skip

integer, dimension(2*^nd), public, protected mod_mhd_phys::boundary_divbfix_skip =0

To skip * layer of ghost cells during divB=0 fix for boundary.

Definition at line 94 of file mod_mhd_phys.t.

◆ c

integer public protected mod_mhd_phys::c

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

Definition at line 71 of file mod_mhd_phys.t.

◆ c_

integer public protected mod_mhd_phys::c_

Definition at line 71 of file mod_mhd_phys.t.

◆ clean_initial_divb

logical, public mod_mhd_phys::clean_initial_divb = .false.

clean initial divB

Definition at line 172 of file mod_mhd_phys.t.

◆ divbwave

logical, public mod_mhd_phys::divbwave = .true.

Add divB wave in Roe solver.

Definition at line 170 of file mod_mhd_phys.t.

◆ e_

integer, public, protected mod_mhd_phys::e_

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

Definition at line 73 of file mod_mhd_phys.t.

◆ eq_state_units

logical, public, protected mod_mhd_phys::eq_state_units = .true.

Definition at line 176 of file mod_mhd_phys.t.

◆ equi_pe0_

integer, public mod_mhd_phys::equi_pe0_ = -1

Definition at line 63 of file mod_mhd_phys.t.

◆ equi_rho0_

integer, public mod_mhd_phys::equi_rho0_ = -1

equi vars indices in the stateequi_vars array

Definition at line 62 of file mod_mhd_phys.t.

◆ h_ion_fr

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

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

Definition at line 46 of file mod_mhd_phys.t.

◆ has_equi_pe0

logical, public mod_mhd_phys::has_equi_pe0 = .false.

whether split off equilibrium thermal pressure

Definition at line 161 of file mod_mhd_phys.t.

◆ has_equi_rho0

logical, public mod_mhd_phys::has_equi_rho0 = .false.

whether split off equilibrium density

Definition at line 159 of file mod_mhd_phys.t.

◆ he_abundance

double precision, public, protected mod_mhd_phys::he_abundance =0.1d0

Helium abundance over Hydrogen.

Definition at line 43 of file mod_mhd_phys.t.

◆ he_ion_fr

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

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

Definition at line 49 of file mod_mhd_phys.t.

◆ he_ion_fr2

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

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

Definition at line 52 of file mod_mhd_phys.t.

◆ hypertc_kappa

double precision, public mod_mhd_phys::hypertc_kappa

The thermal conductivity kappa in hyperbolic thermal conduction.

Definition at line 39 of file mod_mhd_phys.t.

◆ m

integer, public, protected mod_mhd_phys::m

Definition at line 71 of file mod_mhd_phys.t.

◆ mhd_4th_order

logical, public, protected mod_mhd_phys::mhd_4th_order = .false.

MHD fourth order.

Definition at line 157 of file mod_mhd_phys.t.

◆ mhd_adiab

double precision, public mod_mhd_phys::mhd_adiab = 1.0d0

The adiabatic constant.

Definition at line 20 of file mod_mhd_phys.t.

◆ mhd_ambipolar

logical, public, protected mod_mhd_phys::mhd_ambipolar = .false.

Whether Ambipolar term is used.

Definition at line 123 of file mod_mhd_phys.t.

◆ mhd_ambipolar_exp

logical, public, protected mod_mhd_phys::mhd_ambipolar_exp = .false.

Whether Ambipolar term is implemented explicitly.

Definition at line 127 of file mod_mhd_phys.t.

◆ mhd_ambipolar_sts

logical, public, protected mod_mhd_phys::mhd_ambipolar_sts = .false.

Whether Ambipolar term is implemented using supertimestepping.

Definition at line 125 of file mod_mhd_phys.t.

◆ mhd_cak_force

logical, public, protected mod_mhd_phys::mhd_cak_force = .false.

Whether CAK radiation line force is activated.

Definition at line 155 of file mod_mhd_phys.t.

◆ mhd_divb_4thorder

logical, public, protected mod_mhd_phys::mhd_divb_4thorder = .false.

Whether divB is computed with a fourth order approximation.

Definition at line 166 of file mod_mhd_phys.t.

◆ mhd_dump_full_vars

logical, public, protected mod_mhd_phys::mhd_dump_full_vars = .false.

whether dump full variables (when splitting is used) in a separate dat file

Definition at line 164 of file mod_mhd_phys.t.

◆ mhd_energy

logical, public, protected mod_mhd_phys::mhd_energy = .true.

Whether an energy equation is used.

Definition at line 107 of file mod_mhd_phys.t.

◆ mhd_equi_thermal

logical, public mod_mhd_phys::mhd_equi_thermal = .false.

Definition at line 162 of file mod_mhd_phys.t.

◆ mhd_eta

double precision, public mod_mhd_phys::mhd_eta = 0.0d0

The MHD resistivity.

Definition at line 22 of file mod_mhd_phys.t.

◆ mhd_eta_ambi

double precision, public mod_mhd_phys::mhd_eta_ambi = 0.0d0

The MHD ambipolar coefficient.

Definition at line 28 of file mod_mhd_phys.t.

◆ mhd_eta_hyper

double precision, public mod_mhd_phys::mhd_eta_hyper = 0.0d0

The MHD hyper-resistivity.

Definition at line 24 of file mod_mhd_phys.t.

◆ mhd_etah

double precision, public mod_mhd_phys::mhd_etah = 0.0d0

Hall resistivity.

Definition at line 26 of file mod_mhd_phys.t.

◆ mhd_gamma

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

The adiabatic index.

Definition at line 18 of file mod_mhd_phys.t.

◆ mhd_get_pthermal

procedure(sub_get_pthermal), pointer, public mod_mhd_phys::mhd_get_pthermal => null()

Definition at line 219 of file mod_mhd_phys.t.

◆ mhd_get_temperature

procedure(sub_get_pthermal), pointer, public mod_mhd_phys::mhd_get_temperature => null()

Definition at line 221 of file mod_mhd_phys.t.

◆ mhd_glm

logical, public, protected mod_mhd_phys::mhd_glm = .false.

Whether GLM-MHD is used to control div B.

Definition at line 133 of file mod_mhd_phys.t.

◆ mhd_glm_alpha

double precision, public mod_mhd_phys::mhd_glm_alpha = 0.5d0

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

Definition at line 35 of file mod_mhd_phys.t.

◆ mhd_glm_extended

logical, public, protected mod_mhd_phys::mhd_glm_extended = .true.

Whether extended GLM-MHD is used with additional sources.

Definition at line 135 of file mod_mhd_phys.t.

◆ mhd_gravity

logical, public, protected mod_mhd_phys::mhd_gravity = .false.

Whether gravity is added.

Definition at line 117 of file mod_mhd_phys.t.

◆ mhd_hall

logical, public, protected mod_mhd_phys::mhd_hall = .false.

Whether Hall-MHD is used.

Definition at line 121 of file mod_mhd_phys.t.

◆ mhd_hydrodynamic_e

logical, public, protected mod_mhd_phys::mhd_hydrodynamic_e = .false.

Whether hydrodynamic energy is solved instead of total energy.

Definition at line 146 of file mod_mhd_phys.t.

◆ mhd_hyperbolic_thermal_conduction

logical, public, protected mod_mhd_phys::mhd_hyperbolic_thermal_conduction = .false.

Whether thermal conduction is used.

Definition at line 113 of file mod_mhd_phys.t.

◆ mhd_internal_e

logical, public, protected mod_mhd_phys::mhd_internal_e = .false.

Whether internal energy is solved instead of total energy.

Definition at line 143 of file mod_mhd_phys.t.

◆ mhd_magnetofriction

logical, public, protected mod_mhd_phys::mhd_magnetofriction = .false.

Whether magnetofriction is added.

Definition at line 131 of file mod_mhd_phys.t.

◆ mhd_n_tracer

integer, public, protected mod_mhd_phys::mhd_n_tracer = 0

Number of tracer species.

Definition at line 65 of file mod_mhd_phys.t.

◆ mhd_partial_ionization

logical, public, protected mod_mhd_phys::mhd_partial_ionization = .false.

Whether plasma is partially ionized.

Definition at line 153 of file mod_mhd_phys.t.

◆ mhd_particles

logical, public, protected mod_mhd_phys::mhd_particles = .false.

Whether particles module is added.

Definition at line 129 of file mod_mhd_phys.t.

◆ mhd_radiative_cooling

logical, public, protected mod_mhd_phys::mhd_radiative_cooling = .false.

Whether radiative cooling is added.

Definition at line 111 of file mod_mhd_phys.t.

◆ mhd_reduced_c

double precision, public, protected mod_mhd_phys::mhd_reduced_c = 0.02d0*const_c

Reduced speed of light for semirelativistic MHD: 2% of light speed.

Definition at line 37 of file mod_mhd_phys.t.

◆ mhd_rotating_frame

logical, public, protected mod_mhd_phys::mhd_rotating_frame = .false.

Whether rotating frame is activated.

Definition at line 119 of file mod_mhd_phys.t.

◆ mhd_semirelativistic

logical, public, protected mod_mhd_phys::mhd_semirelativistic = .false.

Whether semirelativistic MHD equations (Gombosi 2002 JCP) are solved.

Definition at line 151 of file mod_mhd_phys.t.

◆ mhd_thermal_conduction

logical, public, protected mod_mhd_phys::mhd_thermal_conduction = .false.

Whether thermal conduction is used.

Definition at line 109 of file mod_mhd_phys.t.

◆ mhd_to_conserved

procedure(sub_convert), pointer, public mod_mhd_phys::mhd_to_conserved => null()

Definition at line 217 of file mod_mhd_phys.t.

◆ mhd_to_primitive

procedure(sub_convert), pointer, public mod_mhd_phys::mhd_to_primitive => null()

Definition at line 216 of file mod_mhd_phys.t.

◆ mhd_trac

logical, public, protected mod_mhd_phys::mhd_trac = .false.

Whether TRAC method is used.

Definition at line 137 of file mod_mhd_phys.t.

◆ mhd_trac_finegrid

integer, public, protected mod_mhd_phys::mhd_trac_finegrid =4

Distance between two adjacent traced magnetic field lines (in finest cell size)

Definition at line 141 of file mod_mhd_phys.t.

◆ mhd_trac_mask

double precision, public, protected mod_mhd_phys::mhd_trac_mask = 0.d0

Height of the mask used in the TRAC method.

Definition at line 32 of file mod_mhd_phys.t.

◆ mhd_trac_type

integer, public, protected mod_mhd_phys::mhd_trac_type =1

Which TRAC method is used.

Definition at line 139 of file mod_mhd_phys.t.

◆ mhd_viscosity

logical, public, protected mod_mhd_phys::mhd_viscosity = .false.

Whether viscosity is added.

Definition at line 115 of file mod_mhd_phys.t.

◆ mom

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

Indices of the momentum density.

Definition at line 69 of file mod_mhd_phys.t.

◆ p_

integer, public, protected mod_mhd_phys::p_

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

Definition at line 77 of file mod_mhd_phys.t.

◆ partial_energy

logical, public mod_mhd_phys::partial_energy = .false.

Whether an internal or hydrodynamic energy equation is used.

Definition at line 184 of file mod_mhd_phys.t.

◆ psi_

integer, public, protected mod_mhd_phys::psi_

Indices of the GLM psi.

Definition at line 81 of file mod_mhd_phys.t.

◆ q_

integer, public, protected mod_mhd_phys::q_

Index of the heat flux q.

Definition at line 79 of file mod_mhd_phys.t.

◆ rc_fl

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

type of fluid for radiative cooling

Definition at line 200 of file mod_mhd_phys.t.

◆ rho_

integer, public, protected mod_mhd_phys::rho_

Index of the density (in the w array)

Definition at line 67 of file mod_mhd_phys.t.

◆ rr

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

Definition at line 56 of file mod_mhd_phys.t.

◆ source_split_divb

logical, public, protected mod_mhd_phys::source_split_divb = .false.

Whether divB cleaning sources are added splitting from fluid solver.

Definition at line 148 of file mod_mhd_phys.t.

◆ tc_fl

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

type of fluid for thermal conduction

Definition at line 196 of file mod_mhd_phys.t.

◆ tcoff_

integer, public, protected mod_mhd_phys::tcoff_

Index of the cutoff temperature for the TRAC method.

Definition at line 85 of file mod_mhd_phys.t.

◆ te_

integer, public, protected mod_mhd_phys::te_

Indices of temperature.

Definition at line 83 of file mod_mhd_phys.t.

◆ te_fl_mhd

type(te_fluid), allocatable, public mod_mhd_phys::te_fl_mhd

type of fluid for thermal emission synthesis

Definition at line 198 of file mod_mhd_phys.t.

◆ tracer

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

Indices of the tracers.

Definition at line 88 of file mod_mhd_phys.t.

◆ tweight_

integer, public, protected mod_mhd_phys::tweight_

Definition at line 86 of file mod_mhd_phys.t.

◆ type_ct

character(len=std_len), public, protected mod_mhd_phys::type_ct = 'uct_contact'

Method type of constrained transport.

Definition at line 192 of file mod_mhd_phys.t.

◆ typedivbfix

character(len=std_len), public, protected mod_mhd_phys::typedivbfix = 'linde'

Method type to clean divergence of B.

Definition at line 190 of file mod_mhd_phys.t.

◆ usr_mask_ambipolar

procedure(mask_subroutine), pointer, public mod_mhd_phys::usr_mask_ambipolar => null()

Definition at line 215 of file mod_mhd_phys.t.