43 eos%get_Te => get_te_fi
44 eos%n_per_nH_FI = 2.0d0 + 3.0d0 *
eos%He_abundance
45 eos%neOnH_FI = 1.0d0 + 2.0d0 *
eos%He_abundance
50 integer,
intent(in) :: ixi^
l,ixo^
l
51 double precision,
intent(in) :: x(ixi^s,1:
ndim)
52 double precision,
intent(inout) :: w(ixi^s,1:nw)
57 integer,
intent(in) :: ixi^
l, ixo^
l
58 double precision,
intent(in) :: w(ixi^s, nw)
59 double precision,
intent(in) :: x(ixi^s, 1:
ndim)
60 double precision,
intent(out) :: gamma1(ixi^s)
62 gamma1(ixo^s) =
eos%gamma
67 subroutine get_te_fi(w,x,ixI^L,ixO^L,T)
68 integer,
intent(in) :: ixi^
l, ixo^
l
69 double precision,
intent(in) :: w(ixi^s,1:nw)
70 double precision,
intent(in) :: x(ixi^s,1:
ndim)
71 double precision,
intent(out) :: t(ixi^s)
72 double precision :: rfactor(ixi^s), pth(ixi^s)
76 call eos%get_thermal_pressure(w, x, ixi^
l, ixo^
l, pth)
77 call eos%get_Rfactor(w,x,ixi^
l,ixo^
l,rfactor)
78 t(ixo^s) = pth(ixo^s) / (w(ixo^s,iw_rho) * rfactor(ixo^s))
80 end subroutine get_te_fi
86 integer,
intent(in) :: ixi^
l,ixo^
l
87 double precision,
intent(in) :: x(ixi^s,1:
ndim)
88 double precision,
intent(in) :: w(ixi^s,1:nw)
89 double precision,
intent(out) :: res(ixi^s)
91 double precision :: rfactor(ixi^s)
95 call eos%get_Rfactor(w,x,ixi^
l,ixo^
l,rfactor)
96 res(ixo^s) = (
eos%gamma_minus_1 * w(ixo^s,iw_e) / (rfactor(ixo^s) * w(ixo^s,iw_rho)))
106 integer,
intent(in) :: ixi^
l, ixo^
l
107 double precision,
intent(in) :: x(ixi^s,1:
ndim)
108 double precision,
intent(in) :: w(ixi^s,1:nw)
109 double precision,
intent(out) :: res(ixi^s)
111 double precision :: rfactor(ixi^s)
113 call eos%get_Rfactor(w, x, ixi^
l, ixo^
l, rfactor)
114 res(ixo^s) = w(ixo^s,iw_e) / (rfactor(ixo^s) * w(ixo^s,iw_rho))
EoS state container – the single thermodynamic authority for AMRVAC.
type(eos_container), allocatable, public eos
The single EoS state object, allocated in eos_init and shared (read-mostly) across all EoS sub-module...
FI (fully-ionised, constant-gamma) EoS kernels for the eos% family.
subroutine, public update_eos_fi(ixil, ixol, w, x)
FI update_eos: nothing to cache for an ideal gas. Called each RK substep.
subroutine, public get_gamma1_fi(w, x, ixil, ixol, gamma1)
Gamma_1 for the fully-ionised ideal gas: constant eosgamma.
subroutine, public eos_init_fi()
get_Te_FI is PRIVATE: bound to eosget_Te inside eos_finalise_FI only. The rest stay public: update_eo...
subroutine, public get_temperature_from_pressure_fi(w, x, ixil, ixol, res)
FI temperature from primitive pressure: T = p / (R * rho). w is PRIMITIVE here, so iw_e holds the the...
subroutine, public eos_finalise_fi()
FI arm of eos_finalise: wire the ideal-gas getter set and the fully-ionised particle counts (2 + 3*A_...
subroutine, public get_temperature_from_eint_fi(w, x, ixil, ixol, res)
Temperature from internal energy, fully-ionised ideal gas: T = pth/(rho*R).
This module contains definitions of global parameters and variables and some generic functions/subrou...
integer, parameter ndim
Number of spatial dimensions for grid variables.
This module defines the procedures of a physics module. It contains function pointers for the various...
double precision timeeos0
double precision timeeos_tfromei