MPI-AMRVAC  2.2
The MPI - Adaptive Mesh Refinement - Versatile Advection Code
Functions/Subroutines | Variables
mod_hd_phys Module Reference

Hydrodynamics physics module. More...

Functions/Subroutines

subroutine hd_write_info (fh)
 Write this module's parameters to a snapsoht. More...
 
subroutine hd_angmomfix (fC, x, wnew, ixIL, ixOL, idim)
 Add fluxes in an angular momentum conserving way. More...
 
subroutine, public hd_phys_init ()
 Initialize the module. More...
 
subroutine, public hd_check_params
 
subroutine hd_physical_units
 
subroutine, public hd_check_w (primitive, ixIL, ixOL, w, flag)
 Returns logical argument flag where values are ok. More...
 
subroutine, public hd_to_conserved (ixIL, ixOL, w, x)
 Transform primitive variables into conservative ones. More...
 
subroutine, public hd_to_primitive (ixIL, ixOL, w, x)
 Transform conservative variables into primitive ones. More...
 
subroutine hd_ei_to_e (ixIL, ixOL, w, x)
 Transform internal energy to total energy. More...
 
subroutine hd_e_to_ei (ixIL, ixOL, w, x)
 Transform total energy to internal energy. More...
 
subroutine e_to_rhos (ixIL, ixOL, w, x)
 
subroutine rhos_to_e (ixIL, ixOL, w, x)
 
subroutine hd_get_v (w, x, ixIL, ixOL, idim, v)
 Calculate v_i = m_i / rho within ixO^L. More...
 
subroutine hd_get_cmax (w, x, ixIL, ixOL, idim, cmax)
 Calculate cmax_idim = csound + abs(v_idim) within ixO^L. More...
 
subroutine hd_get_a2max (w, x, ixIL, ixOL, a2max)
 
subroutine hd_get_tcutoff (ixIL, ixOL, w, x, tco_local, Tmax_local)
 get adaptive cutoff temperature for TRAC (Johnston 2019 ApJL, 873, L22) More...
 
subroutine hd_get_cbounds (wLC, wRC, wLp, wRp, x, ixIL, ixOL, idim, cmax, cmin)
 Calculate cmax_idim = csound + abs(v_idim) within ixO^L. More...
 
subroutine, public hd_get_csound2 (w, x, ixIL, ixOL, csound2)
 Calculate the square of the thermal sound speed csound2 within ixO^L. csound2=gamma*p/rho. More...
 
subroutine, public hd_get_pthermal (w, x, ixIL, ixOL, pth)
 Calculate thermal pressure=(gamma-1)*(e-0.5*m**2/rho) within ixO^L. More...
 
subroutine hd_get_temperature_from_etot (w, x, ixIL, ixOL, res)
 Calculate temperature=p/rho when in e_ the total energy is stored. More...
 
subroutine hd_get_temperature_from_eint (w, x, ixIL, ixOL, res)
 Calculate temperature=p/rho when in e_ the internal energy is stored. More...
 
subroutine hd_ei_to_e1 (ixIL, ixOL, w, x)
 
subroutine hd_e_to_ei1 (ixIL, ixOL, w, x)
 Transform total energy to internal energy. More...
 
subroutine hd_get_flux_cons (w, x, ixIL, ixOL, idim, f)
 
subroutine hd_get_flux (wC, w, x, ixIL, ixOL, idim, f)
 
subroutine hd_add_source_geom (qdt, ixIL, ixOL, wCT, w, x)
 Add geometrical source terms to w. More...
 
subroutine hd_add_source (qdt, ixIL, ixOL, wCT, w, x, qsourcesplit, active)
 
subroutine hd_get_dt (w, ixIL, ixOL, dtnew, dxD, x)
 
double precision function, dimension(ixo^s), public hd_kin_en (w, ixIL, ixOL, inv_rho)
 
double precision function, dimension(ixo^s) hd_inv_rho (w, ixIL, ixOL)
 
subroutine hd_handle_small_values (primitive, w, x, ixIL, ixOL, subname)
 

Variables

logical, public, protected hd_energy = .true.
 Whether an energy equation is used. More...
 
logical, public, protected hd_thermal_conduction = .false.
 Whether thermal conduction is added. More...
 
logical, public, protected hd_radiative_cooling = .false.
 Whether radiative cooling is added. More...
 
logical, public, protected hd_dust = .false.
 Whether dust is added. More...
 
logical, public, protected hd_viscosity = .false.
 Whether viscosity is added. More...
 
logical, public, protected hd_gravity = .false.
 Whether gravity is added. More...
 
logical, public, protected hd_particles = .false.
 Whether particles module is added. More...
 
logical, public, protected hd_rotating_frame = .false.
 Whether rotating frame is activated. More...
 
integer, public, protected hd_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, dimension(:), allocatable, public, protected tracer
 Indices of the tracers. More...
 
integer, public, protected e_
 Index of the energy density (-1 if not present) More...
 
integer, public, protected p_
 Index of the gas pressure (-1 if not present) should equal e_. More...
 
integer, public, protected tcoff_
 Index of the cutoff temperature for the TRAC method. More...
 
double precision, public hd_gamma = 5.d0/3.0d0
 The adiabatic index. More...
 
double precision, public hd_adiab = 1.0d0
 The adiabatic constant. More...
 
logical, public, protected hd_trac = .false.
 Whether TRAC method is used. More...
 
integer, public, protected hd_trac_type = 1
 
logical, public, protected hd_force_diagonal = .false.
 Allows overruling default corner filling (for debug mode, since otherwise corner primitives fail) More...
 
double precision, public, protected he_abundance =0.1d0
 Helium abundance over Hydrogen. More...
 

Detailed Description

Hydrodynamics physics module.

Function/Subroutine Documentation

◆ e_to_rhos()

subroutine mod_hd_phys::e_to_rhos ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, nw)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x 
)

Definition at line 502 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_add_source()

subroutine mod_hd_phys::hd_add_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,
logical, intent(in)  qsourcesplit,
logical, intent(inout)  active 
)

Definition at line 1064 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_add_source_geom()

subroutine mod_hd_phys::hd_add_source_geom ( 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(inout)  wCT,
double precision, dimension(ixi^s, 1:nw), intent(inout)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x 
)

Add geometrical source terms to w.

Notice that the expressions of the geometrical terms depend only on ndir, not ndim. Eg, they are the same in 2.5D and in 3D, for any geometry.

Ileyk : to do :

  • address the source term for the dust in case (coordinate == spherical)

Definition at line 939 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_angmomfix()

subroutine mod_hd_phys::hd_angmomfix ( double precision, dimension(ixi^s,1:nwflux,1:ndim), intent(inout)  fC,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
double precision, dimension(ixi^s,1:nw), intent(inout)  wnew,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
integer, intent(in)  idim 
)

Add fluxes in an angular momentum conserving way.

Definition at line 121 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_check_params()

subroutine, public mod_hd_phys::hd_check_params ( )

Definition at line 338 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_check_w()

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

Returns logical argument flag where values are ok.

Definition at line 382 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_e_to_ei()

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

Transform total energy to internal energy.

Definition at line 490 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_e_to_ei1()

subroutine mod_hd_phys::hd_e_to_ei1 ( 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 817 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_ei_to_e()

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

Transform internal energy to total energy.

Definition at line 477 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_ei_to_e1()

subroutine mod_hd_phys::hd_ei_to_e1 ( 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 803 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_a2max()

subroutine mod_hd_phys::hd_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 564 of file mod_hd_phys.t.

◆ hd_get_cbounds()

subroutine mod_hd_phys::hd_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), intent(inout)  cmax,
double precision, dimension(ixi^s), intent(inout), optional  cmin 
)

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

Definition at line 641 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_cmax()

subroutine mod_hd_phys::hd_get_cmax ( 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 543 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_csound2()

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

Calculate the square of the thermal sound speed csound2 within ixO^L. csound2=gamma*p/rho.

Definition at line 714 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_dt()

subroutine mod_hd_phys::hd_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:^nd), intent(in)  x 
)

Definition at line 1115 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_flux()

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

Definition at line 874 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_flux_cons()

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

Definition at line 830 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_pthermal()

subroutine, public mod_hd_phys::hd_get_pthermal ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s), intent(out)  pth 
)

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

Definition at line 727 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_tcutoff()

subroutine mod_hd_phys::hd_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)

iijima et al. 2021, LTRAC method

Definition at line 587 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_temperature_from_eint()

subroutine mod_hd_phys::hd_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 792 of file mod_hd_phys.t.

◆ hd_get_temperature_from_etot()

subroutine mod_hd_phys::hd_get_temperature_from_etot ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s), intent(out)  res 
)

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

Definition at line 779 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_get_v()

subroutine mod_hd_phys::hd_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,
integer, intent(in)  idim,
double precision, dimension(ixi^s), intent(out)  v 
)

Calculate v_i = m_i / rho within ixO^L.

Definition at line 533 of file mod_hd_phys.t.

◆ hd_handle_small_values()

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

Definition at line 1171 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_inv_rho()

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

Definition at line 1161 of file mod_hd_phys.t.

◆ hd_kin_en()

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

Definition at line 1147 of file mod_hd_phys.t.

◆ hd_phys_init()

subroutine, public mod_hd_phys::hd_phys_init ( )

Initialize the module.

Definition at line 181 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_physical_units()

subroutine mod_hd_phys::hd_physical_units ( )

Definition at line 356 of file mod_hd_phys.t.

◆ hd_to_conserved()

subroutine, public mod_hd_phys::hd_to_conserved ( 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 411 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_to_primitive()

subroutine, public mod_hd_phys::hd_to_primitive ( 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 443 of file mod_hd_phys.t.

Here is the call graph for this function:

◆ hd_write_info()

subroutine mod_hd_phys::hd_write_info ( integer, intent(in)  fh)

Write this module's parameters to a snapsoht.

Definition at line 103 of file mod_hd_phys.t.

◆ rhos_to_e()

subroutine mod_hd_phys::rhos_to_e ( integer, intent(in)  ixI,
integer, intent(in)  L,
integer, intent(in)  ixO,
  L,
double precision, dimension(ixi^s, nw)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x 
)

Definition at line 517 of file mod_hd_phys.t.

Here is the call graph for this function:

Variable Documentation

◆ e_

integer, public, protected mod_hd_phys::e_

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

Definition at line 43 of file mod_hd_phys.t.

◆ hd_adiab

double precision, public mod_hd_phys::hd_adiab = 1.0d0

The adiabatic constant.

Definition at line 55 of file mod_hd_phys.t.

◆ hd_dust

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

Whether dust is added.

Definition at line 16 of file mod_hd_phys.t.

◆ hd_energy

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

Whether an energy equation is used.

Definition at line 7 of file mod_hd_phys.t.

◆ hd_force_diagonal

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

Allows overruling default corner filling (for debug mode, since otherwise corner primitives fail)

Definition at line 65 of file mod_hd_phys.t.

◆ hd_gamma

double precision, public mod_hd_phys::hd_gamma = 5.d0/3.0d0

The adiabatic index.

Definition at line 52 of file mod_hd_phys.t.

◆ hd_gravity

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

Whether gravity is added.

Definition at line 22 of file mod_hd_phys.t.

◆ hd_n_tracer

integer, public, protected mod_hd_phys::hd_n_tracer = 0

Number of tracer species.

Definition at line 31 of file mod_hd_phys.t.

◆ hd_particles

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

Whether particles module is added.

Definition at line 25 of file mod_hd_phys.t.

◆ hd_radiative_cooling

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

Whether radiative cooling is added.

Definition at line 13 of file mod_hd_phys.t.

◆ hd_rotating_frame

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

Whether rotating frame is activated.

Definition at line 28 of file mod_hd_phys.t.

◆ hd_thermal_conduction

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

Whether thermal conduction is added.

Definition at line 10 of file mod_hd_phys.t.

◆ hd_trac

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

Whether TRAC method is used.

Definition at line 61 of file mod_hd_phys.t.

◆ hd_trac_type

integer, public, protected mod_hd_phys::hd_trac_type = 1

Definition at line 62 of file mod_hd_phys.t.

◆ hd_viscosity

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

Whether viscosity is added.

Definition at line 19 of file mod_hd_phys.t.

◆ he_abundance

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

Helium abundance over Hydrogen.

Definition at line 68 of file mod_hd_phys.t.

◆ mom

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

Indices of the momentum density.

Definition at line 37 of file mod_hd_phys.t.

◆ p_

integer, public, protected mod_hd_phys::p_

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

Definition at line 46 of file mod_hd_phys.t.

◆ rho_

integer, public, protected mod_hd_phys::rho_

Index of the density (in the w array)

Definition at line 34 of file mod_hd_phys.t.

◆ tcoff_

integer, public, protected mod_hd_phys::tcoff_

Index of the cutoff temperature for the TRAC method.

Definition at line 49 of file mod_hd_phys.t.

◆ tracer

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

Indices of the tracers.

Definition at line 40 of file mod_hd_phys.t.