MPI-AMRVAC
3.1
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
|
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() |
Magneto-hydrodynamics module.
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 | ||
) |
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 | ||
) |
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.
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.
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 | ||
) |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 | ||
) |
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 | ||
) |
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 | ||
) |
subroutine mod_mhd_phys::mhd_boundary_adjust | ( | integer, intent(in) | igrid, |
type(state), dimension(max_blocks), target | psb | ||
) |
subroutine mod_mhd_phys::mhd_check_params |
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.
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.
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.
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.
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.
subroutine, public mod_mhd_phys::mhd_clean_divb_multigrid | ( | double precision, intent(in) | qdt, |
double precision, intent(in) | qt, | ||
logical, intent(inout) | active | ||
) |
[in] | qdt | Current time step |
[in] | qt | Current time |
[in,out] | active | Output if the source is active |
Definition at line 6559 of file mod_mhd_phys.t.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 | ||
) |
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 | ||
) |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 | ||
) |
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.
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.
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.
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.
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.
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.
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.
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.
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 | ||
) |
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.
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 | ||
) |
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.
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 | ||
) |
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.
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.
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.
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.
subroutine, public mod_mhd_phys::mhd_phys_init |
Definition at line 294 of file mod_mhd_phys.t.
subroutine mod_mhd_phys::mhd_physical_units |
Definition at line 1216 of file mod_mhd_phys.t.
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 | ||
) |
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 | ||
) |
subroutine mod_mhd_phys::mhd_te_images |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 | ||
) |
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 | ||
) |
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.
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.
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.
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.
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 | ||
) |
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.
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.
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.
subroutine mod_mhd_phys::tc_params_read_mhd | ( | type(tc_fluid), intent(inout) | fl | ) |
Definition at line 1001 of file mod_mhd_phys.t.
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.
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.
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.
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.
integer, public, protected mod_mhd_phys::b |
Definition at line 75 of file mod_mhd_phys.t.
logical, public, protected mod_mhd_phys::b0field_forcefree =.true. |
B0 field is force-free.
Definition at line 180 of file mod_mhd_phys.t.
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.
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.
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.
integer public protected mod_mhd_phys::c_ |
Definition at line 71 of file mod_mhd_phys.t.
logical, public mod_mhd_phys::clean_initial_divb = .false. |
clean initial divB
Definition at line 172 of file mod_mhd_phys.t.
logical, public mod_mhd_phys::divbwave = .true. |
Add divB wave in Roe solver.
Definition at line 170 of file mod_mhd_phys.t.
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.
logical, public, protected mod_mhd_phys::eq_state_units = .true. |
Definition at line 176 of file mod_mhd_phys.t.
integer, public mod_mhd_phys::equi_pe0_ = -1 |
Definition at line 63 of file mod_mhd_phys.t.
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.
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.
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.
logical, public mod_mhd_phys::has_equi_rho0 = .false. |
whether split off equilibrium density
Definition at line 159 of file mod_mhd_phys.t.
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.
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.
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.
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.
integer, public, protected mod_mhd_phys::m |
Definition at line 71 of file mod_mhd_phys.t.
logical, public, protected mod_mhd_phys::mhd_4th_order = .false. |
MHD fourth order.
Definition at line 157 of file mod_mhd_phys.t.
double precision, public mod_mhd_phys::mhd_adiab = 1.0d0 |
The adiabatic constant.
Definition at line 20 of file mod_mhd_phys.t.
logical, public, protected mod_mhd_phys::mhd_ambipolar = .false. |
Whether Ambipolar term is used.
Definition at line 123 of file mod_mhd_phys.t.
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.
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.
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.
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.
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.
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.
logical, public mod_mhd_phys::mhd_equi_thermal = .false. |
Definition at line 162 of file mod_mhd_phys.t.
double precision, public mod_mhd_phys::mhd_eta = 0.0d0 |
The MHD resistivity.
Definition at line 22 of file mod_mhd_phys.t.
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.
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.
double precision, public mod_mhd_phys::mhd_etah = 0.0d0 |
Hall resistivity.
Definition at line 26 of file mod_mhd_phys.t.
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.
procedure(sub_get_pthermal), pointer, public mod_mhd_phys::mhd_get_pthermal => null() |
Definition at line 219 of file mod_mhd_phys.t.
procedure(sub_get_pthermal), pointer, public mod_mhd_phys::mhd_get_temperature => null() |
Definition at line 221 of file mod_mhd_phys.t.
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.
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.
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.
logical, public, protected mod_mhd_phys::mhd_gravity = .false. |
Whether gravity is added.
Definition at line 117 of file mod_mhd_phys.t.
logical, public, protected mod_mhd_phys::mhd_hall = .false. |
Whether Hall-MHD is used.
Definition at line 121 of file mod_mhd_phys.t.
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.
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.
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.
logical, public, protected mod_mhd_phys::mhd_magnetofriction = .false. |
Whether magnetofriction is added.
Definition at line 131 of file mod_mhd_phys.t.
integer, public, protected mod_mhd_phys::mhd_n_tracer = 0 |
Number of tracer species.
Definition at line 65 of file mod_mhd_phys.t.
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.
logical, public, protected mod_mhd_phys::mhd_particles = .false. |
Whether particles module is added.
Definition at line 129 of file mod_mhd_phys.t.
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.
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.
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.
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.
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.
procedure(sub_convert), pointer, public mod_mhd_phys::mhd_to_conserved => null() |
Definition at line 217 of file mod_mhd_phys.t.
procedure(sub_convert), pointer, public mod_mhd_phys::mhd_to_primitive => null() |
Definition at line 216 of file mod_mhd_phys.t.
logical, public, protected mod_mhd_phys::mhd_trac = .false. |
Whether TRAC method is used.
Definition at line 137 of file mod_mhd_phys.t.
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.
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.
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.
logical, public, protected mod_mhd_phys::mhd_viscosity = .false. |
Whether viscosity is added.
Definition at line 115 of file mod_mhd_phys.t.
integer, dimension(:), allocatable, public, protected mod_mhd_phys::mom |
Indices of the momentum density.
Definition at line 69 of file mod_mhd_phys.t.
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.
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.
integer, public, protected mod_mhd_phys::psi_ |
Indices of the GLM psi.
Definition at line 81 of file mod_mhd_phys.t.
integer, public, protected mod_mhd_phys::q_ |
Index of the heat flux q.
Definition at line 79 of file mod_mhd_phys.t.
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.
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.
double precision, public, protected mod_mhd_phys::rr =1d0 |
Definition at line 56 of file mod_mhd_phys.t.
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.
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.
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.
integer, public, protected mod_mhd_phys::te_ |
Indices of temperature.
Definition at line 83 of file mod_mhd_phys.t.
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.
integer, dimension(:), allocatable, public, protected mod_mhd_phys::tracer |
Indices of the tracers.
Definition at line 88 of file mod_mhd_phys.t.
integer, public, protected mod_mhd_phys::tweight_ |
Definition at line 86 of file mod_mhd_phys.t.
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.
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.
procedure(mask_subroutine), pointer, public mod_mhd_phys::usr_mask_ambipolar => null() |
Definition at line 215 of file mod_mhd_phys.t.