mod_physics_vars_srhd.f90 Source File


This file depends on

sourcefile~~mod_physics_vars_srhd.f90~~EfferentGraph sourcefile~mod_physics_vars_srhd.f90 mod_physics_vars_srhd.f90 sourcefile~mod_global_parameters.f90 mod_global_parameters.f90 sourcefile~mod_physics_vars_srhd.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_srhd
  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 = "srhd"
  

  !> 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+2+1
  integer, parameter, public              :: nw_flux=2+ndim+1
  
  !> Whether synge eos is used
  logical, public                         :: srhd_eos = .false.
  

  !> Index of the density (in the w array) as primitive or conserved
  integer, public                         :: rho_
  integer, public                         :: d_
  

  !> Indices of the momentum density
  integer, allocatable, public            :: mom(:)
  

  !> Indices of the tracers
  integer, public                         :: tracer(1)
  

  !> Index of the energy density
  integer, public                         :: e_
  

  !> Index of the gas pressure should equal e_
  integer, public                         :: p_
  

  !> Index of the Lorentz factor
  integer, public     :: lfac_
  

  !> Index of the inertia
  integer, public     :: xi_
  

  !> Number of tracer species
  integer, public                         :: srhd_n_tracer = 0
  

  !> The adiabatic index
  double precision, public                :: srhd_gamma = 5.d0/3.0d0
  

  !> derived values from adiabatic index 
  double precision, public                :: gamma_1,inv_gamma_1,gamma_to_gamma_1
  

  !> Helium abundance over Hydrogen
  double precision, public  :: He_abundance=0.1d0
  

  !> Smallest gas pressure allowed. Both the lower bracket of the pressure
  !> root-find in con2prim and the floor fix_prim_state applies to a
  !> reconstructed face state. Zero, the default, leaves both unfloored.
  double precision, public                :: srhd_small_pressure = 0.0d0
  !> Smallest rest-mass density allowed
  double precision, public                :: srhd_small_density  = 0.0d0
  

  !> Whether particles module is added
  logical, public                         :: srhd_particles = .false.
  

  !> switch for source user
  logical, public                         :: srhd_source_usr = .false.
  


end module mod_physics_vars_srhd