DISPATCH
hydro_parameters.f90
1 module hydro_parameters
2  use amr_parameters
3 
4  ! Number of independent variables
5 #ifndef NVAR
6  integer,parameter::nvar=8
7 #else
8  integer,parameter::nvar=nvar
9 #endif
10 
11  ! Max Number of Metals
12  integer, parameter :: nmetal = nvar-8
13 
14  ! Size of hydro kernel
15  integer,parameter::iu1=-1
16  integer,parameter::iu2=+4
17  integer,parameter::ju1=(1-ndim/2)-1*(ndim/2)
18  integer,parameter::ju2=(1-ndim/2)+4*(ndim/2)
19  integer,parameter::ku1=(1-ndim/3)-1*(ndim/3)
20  integer,parameter::ku2=(1-ndim/3)+4*(ndim/3)
21  integer,parameter::if1=1
22  integer,parameter::if2=3
23  integer,parameter::jf1=1
24  integer,parameter::jf2=(1-ndim/2)+3*(ndim/2)
25  integer,parameter::kf1=1
26  integer,parameter::kf2=(1-ndim/3)+3*(ndim/3)
27 
28  ! Imposed boundary condition variables
29  real(dp),dimension(1:MAXBOUND,1:nvar+3)::boundary_var
30  real(dp),dimension(1:MAXBOUND)::d_bound=0.0d0
31  real(dp),dimension(1:MAXBOUND)::p_bound=0.0d0
32  real(dp),dimension(1:MAXBOUND)::u_bound=0.0d0
33  real(dp),dimension(1:MAXBOUND)::v_bound=0.0d0
34  real(dp),dimension(1:MAXBOUND)::w_bound=0.0d0
35  real(dp),dimension(1:nmetal,1:MAXBOUND)::metal_bound=0.0d0
36  real(dp),dimension(1:MAXBOUND)::a_bound=0.0d0
37  real(dp),dimension(1:MAXBOUND)::b_bound=0.0d0
38  real(dp),dimension(1:MAXBOUND)::c_bound=0.0d0
39 
40  ! Refinement parameters for hydro
41  real(dp),dimension(MAXLEVEL)::err_grad_d=-1.0 ! Density gradient
42  real(dp),dimension(MAXLEVEL)::err_grad_s=-1.0 ! Passive scalar gradient
43  real(dp),dimension(MAXLEVEL)::err_grad_u= 0.0 ! Velocity gradient
44  real(dp),dimension(MAXLEVEL)::err_grad_p=-1.0 ! Pressure gradient
45  real(dp),dimension(MAXLEVEL)::err_grad_a=-1.0 ! Bx gradient
46  real(dp),dimension(MAXLEVEL)::err_grad_b=-1.0 ! By gradient
47  real(dp),dimension(MAXLEVEL)::err_grad_c=-1.0 ! Bz gradient
48  real(dp),dimension(MAXLEVEL)::err_grad_b2=-1.0 ! B L2 norm gradient
49  real(dp),dimension(MAXLEVEL)::gfloor_u=-1.0 ! global velocity floor
50  real(dp),dimension(MAXLEVEL)::gfloor_b=-1.0 ! global magnetic field floor
51  real(dp)::floor_d=1.d-10 ! Density floor
52  real(dp)::floor_s=1.d-10 ! Passsive scalar floor
53  real(dp)::floor_u=1.d-10 ! Velocity floor
54  real(dp)::floor_p=1.d-10 ! Pressure floor
55  real(dp), dimension(1:nmetal) ::floor_metal=1.d-10 ! Metal floor
56  real(dp)::floor_a=1.d-10 ! Bx floor
57  real(dp)::floor_b=1.d-10 ! By floor
58  real(dp)::floor_c=1.d-10 ! Bz floor
59  real(dp)::floor_b2=1.d-10 ! B L2 norm floor
60  real(dp)::mass_sph=0.0d0 ! mass_sph
61  real(dp)::rho_sph=0.0d0 ! rho_sph -- alternative to mass_sph
62  real(dp),dimension(1:MAXLEVEL)::jeans_refine=-1.0
63  integer::levelmax_u=99
64  integer::levelmax_d=99
65  integer::levelmax_p=99
66  integer::levelmax_b=99
67  integer::h_verbose=0
68 
69  ! Initial conditions hydro variables
70  real(dp),dimension(1:MAXREGION)::d_region=0.
71  real(dp),dimension(1:MAXREGION)::u_region=0.
72  real(dp),dimension(1:MAXREGION)::v_region=0.
73  real(dp),dimension(1:MAXREGION)::w_region=0.
74  real(dp),dimension(1:MAXREGION)::p_region=0.
75  real(dp),dimension(1:MAXREGION)::a_region=0.
76  real(dp),dimension(1:MAXREGION)::b_region=0.
77  real(dp),dimension(1:MAXREGION)::c_region=0.
78  real(dp),dimension(1:nmetal,1:MAXREGION)::metal_region=0.
79 
80  real(dp),dimension(1:nmetal) :: t_metaldecay=0. ! Half-life of metals in years
81  character(LEN=40),dimension(1:nmetal) :: metal_table ! Yield table filename
82 
83  ! Hydro solver parameters
84  integer ::niter_riemann=10
85  integer ::courant_type=0 ! see godunov_utils
86  logical:: isothermal=.false.
87  real(dp) ::slope_type=1
88  real(dp)::limit_slope=0
89  real(dp)::gamma=1.4d0
90  real(dp)::courant_factor=0.5d0
91  real(dp)::dlnr_max=-1.0_dp ! disabled by default
92  real(dp)::dlnp_max=-1.0_dp ! disabled by default
93  real(dp)::smallc=1.d-10
94  real(dp)::smallr=1.d-10
95  real(dp)::eta_mag=0.0d0
96  real(dp)::cmax=0.0,cmax2=0.0 ! current limiter
97  real(dp)::cbmax=-1.0 ! max value of cb where we should shift to safe solver
98  real(dp)::camax=-1.0 ! max value of cb where we should shift to safe solver
99  real(dp)::t_damp=0.0 ! damping time, artificial damping / friction
100  character(LEN=10)::scheme='muscl'
101  character(LEN=10)::riemann='llf'
102  character(LEN=10)::riemann2d='llf'
103  logical::read_conservative=.false.
104  logical::write_conservative=.false.
105  logical::add_passive_scalars=.false. ! if set to true, allow adding passive scalars on restart, if they do not exist
106  logical::symmetrize=.false.
107 
108  ! Interpolation parameters
109  integer ::interpol_var=0
110  integer ::interpol_type=1
111 
112  ! Passive variables index
113  integer::imetal=9
114  integer::idelay=9
115  integer::ixion=9
116  integer::ichem=9
117  integer, parameter ::ichem_param=9
118 
119  ! Global translated distance
120  real(kind=dp) :: r_translate(3,1:maxlevel)=0.0_dp, v_translate(3)=0.0_dp
121 
122 end module hydro_parameters