mod_physics_vars_hd.f90 Source File


This file depends on

sourcefile~~mod_physics_vars_hd.f90~~EfferentGraph sourcefile~mod_physics_vars_hd.f90 mod_physics_vars_hd.f90 sourcefile~mod_global_parameters.f90 mod_global_parameters.f90 sourcefile~mod_physics_vars_hd.f90->sourcefile~mod_global_parameters.f90 sourcefile~mod_basic_types.f90 mod_basic_types.f90 sourcefile~mod_global_parameters.f90->sourcefile~mod_basic_types.f90 sourcefile~mod_connectivity.f90 mod_connectivity.f90 sourcefile~mod_global_parameters.f90->sourcefile~mod_connectivity.f90 sourcefile~mod_constants.f90 mod_constants.f90 sourcefile~mod_global_parameters.f90->sourcefile~mod_constants.f90 sourcefile~mod_physicaldata.f90 mod_physicaldata.f90 sourcefile~mod_global_parameters.f90->sourcefile~mod_physicaldata.f90 sourcefile~mod_variables.f90 mod_variables.f90 sourcefile~mod_global_parameters.f90->sourcefile~mod_variables.f90 sourcefile~mod_variables.f90->sourcefile~mod_basic_types.f90

Source Code

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