module mod_physics_vars_hd use mod_global_parameters, only: name_len, ndim implicit none public double precision :: phys_gamma=5.d0/3.d0 !> String describing the physics type of the simulation character(len=name_len) :: physics_type = "hd" !> To use wider stencils in flux calculations. A value of 1 will extend it by !> one cell in both directions, in any dimension integer :: phys_wider_stencil = 0 !> Array per direction per variable, which can be used to specify that certain !> fluxes have to be treated differently integer, allocatable :: flux_type(:, :) !> Indicates a normal flux integer, parameter :: flux_default = 0 !> Indicates the flux should be treated with tvdlf integer, parameter :: flux_tvdlf = 1 !> Whether the physics routines require diagonal ghost cells, for example for !> computing a curl. logical :: phys_req_diagonal = .true. !> Solve energy equation or not logical :: phys_energy=.false. !> Solve total energy equation or not logical :: phys_total_energy=.false. !> Solve internal energy instead of total energy logical :: phys_internal_e=.false. !> Solve partially ionized one-fluid plasma logical :: phys_partial_ionization=.false. !> if equilibrium pressure is splitted logical :: phys_equi_pe=.false. integer, parameter :: dp = kind(0.0d0) integer, parameter, public :: nw_phys=2+ndim+1 integer, parameter, public :: nw_flux=2+ndim+1 !> Whether an energy equation is used logical, public :: hd_energy = .true. !> Index of the density (in the w array) integer, public :: rho_ !> Indices of the momentum density integer, allocatable, public :: mom(:) !> Indices of the tracers integer, public :: tracer(1) !> Index of the energy density (-1 if not present) integer, public :: e_ !> Index of the gas pressure (-1 if not present) should equal e_ integer, public :: p_ !> The adiabatic index double precision, public :: hd_gamma = 5.d0/3.0d0 double precision, public :: gamma_1, inv_gamma_1 !> The adiabatic constant double precision, public :: hd_adiab = 1.0d0 !> The helium abundance double precision, public :: He_abundance=0.1d0 !> Number of tracer species integer, public :: hd_n_tracer = 0 !> Whether plasma is partially ionized logical, public :: hd_partial_ionization = .false. !> Whether to use gravity logical, public :: hd_gravity = .false. !> switch for radiative cooling logical, public :: hd_radiative_cooling = .false. !> Allows overruling default corner filling (for debug mode, since otherwise corner primitives fail) logical, public :: hd_force_diagonal = .true. !> Whether particles module is added logical, public :: hd_particles = .false. end module mod_physics_vars_hd