5 #ifndef ERF_Microphysics_Utils_H
6 #define ERF_Microphysics_Utils_H
12 #include <AMReX_REAL.H>
13 #include <AMReX_Array.H>
18 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
21 return std::exp(std::lgamma(
x));
30 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
50 esati = a0 + dtt*(a1+dtt*(
a2+dtt*(
a3+dtt*(
a4+dtt*(a5+dtt*(a6+dtt*(a7+a8*dtt)))))));
61 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
71 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
84 return a0 + dtt*(a1+dtt*(
a2+dtt*(
a3+dtt*(
a4+dtt*(a5+dtt*(a6+dtt*(a7+a8*dtt)))))));
87 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
100 return a0 + dtt*(a1+dtt*(
a2+dtt*(
a3+dtt*(
a4+dtt*(a5+dtt*(a6+dtt*(a7+a8*dtt)))))));
103 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
108 return dtt > poly_min_dtt && dtt <
amrex::Real(70.0) &&
122 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
142 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
161 dtesati = a0 + dtt*(a1+dtt*(
a2+dtt*(
a3+dtt*(
a4+dtt*(a5+dtt*(a6+dtt*(a7+a8*dtt)))))));
169 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
185 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
196 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
199 return Rd_on_Rv * esat / std::max(esat,
p - esat);
204 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
207 if ((
p - esat) >= esat) {
209 return Rd_on_Rv * dtesat *
p / (denom * denom);
217 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
227 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
234 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
243 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
constexpr amrex::Real Rd_on_Rv
Definition: ERF_Constants.H:98
AMREX_ALWAYS_ASSERT(bx.length()[2]==khi+1)
bool use_empirical
Definition: ERF_InitCustomPert_MultiSpeciesBubble.H:25
Real * t
Definition: ERF_InitCustomPert_SquallLine.H:60
Real * p
Definition: ERF_InitCustomPert_SquallLine.H:61
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool erf_use_positive_esatw_poly(amrex::Real t)
Definition: ERF_MicrophysicsUtils.H:104
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real erf_dtesatw(amrex::Real t)
Definition: ERF_MicrophysicsUtils.H:186
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void erf_dtqsatw(amrex::Real t, amrex::Real p, amrex::Real &dtqsatw)
Definition: ERF_MicrophysicsUtils.H:244
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real erf_dtesati(amrex::Real t)
Definition: ERF_MicrophysicsUtils.H:143
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real erf_esatw_flatau_poly(amrex::Real dtt)
Definition: ERF_MicrophysicsUtils.H:72
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real erf_dtesatw_flatau_poly(amrex::Real dtt)
Definition: ERF_MicrophysicsUtils.H:88
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real erf_esati(amrex::Real t)
Definition: ERF_MicrophysicsUtils.H:31
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real erf_dtesatw_cc(amrex::Real t)
Definition: ERF_MicrophysicsUtils.H:170
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real erf_qsat_from_esat(amrex::Real esat, amrex::Real p)
Definition: ERF_MicrophysicsUtils.H:197
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void erf_dtqsati(amrex::Real t, amrex::Real p, amrex::Real &dtqsati)
Definition: ERF_MicrophysicsUtils.H:235
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void erf_qsatw(amrex::Real t, amrex::Real p, amrex::Real &qsatw)
Definition: ERF_MicrophysicsUtils.H:228
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real erf_gammafff(amrex::Real x)
Definition: ERF_MicrophysicsUtils.H:19
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real erf_dtqsat_from_esat(amrex::Real esat, amrex::Real dtesat, amrex::Real p)
Definition: ERF_MicrophysicsUtils.H:205
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void erf_qsati(amrex::Real t, amrex::Real p, amrex::Real &qsati)
Definition: ERF_MicrophysicsUtils.H:218
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real erf_esatw(amrex::Real t, bool use_empirical=false)
Definition: ERF_MicrophysicsUtils.H:123
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real erf_esatw_cc(amrex::Real t)
Definition: ERF_MicrophysicsUtils.H:62
amrex::Real Real
Definition: ERF_ShocInterface.H:19
real(c_double), parameter svp1
Definition: ERF_module_model_constants.F90:78
real(c_double), parameter epsilon
Definition: ERF_module_model_constants.F90:12
real(c_double), parameter a2
Definition: ERF_module_model_constants.F90:95
real(c_double), parameter a3
Definition: ERF_module_model_constants.F90:96
real(c_double), parameter svp3
Definition: ERF_module_model_constants.F90:80
real(c_double), parameter svp2
Definition: ERF_module_model_constants.F90:79
real(c_double), parameter a4
Definition: ERF_module_model_constants.F90:97
real(c_double), parameter svpt0
Definition: ERF_module_model_constants.F90:81