1 #ifndef ERF_SEA_LEVEL_PRESSURE_H_
2 #define ERF_SEA_LEVEL_PRESSURE_H_
4 #include <AMReX_GpuQualifiers.H>
5 #include <AMReX_MultiFab.H>
40 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
53 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
71 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
85 return virtual_temperature_sea_level;
97 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
106 (virtual_temperature_lowest_level + virtual_temperature_surface) /
108 return pressure_lowest_level * std::exp(
109 (height_lowest_level - height_surface) / mean_tau);
121 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
133 (height_lowest_level - height_surface);
137 const amrex::Real corrected_virtual_temperature_sea_level =
139 virtual_temperature_sea_level);
142 (virtual_temperature_surface + corrected_virtual_temperature_sea_level) /
147 return surface_pressure;
149 return surface_pressure * std::exp(
168 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
171 amrex::Real dry_density_times_potential_temperature,
183 dry_density_times_potential_temperature,
189 (height_lowest_level - height_surface);
191 pressure_lowest, virtual_temperature_lowest, virtual_temperature_surface,
192 height_lowest_level, height_surface);
195 pressure_surface, temperature_lowest, specific_humidity,
196 height_lowest_level, height_surface);
209 int destination_component,
210 const amrex::MultiFab& conserved_state,
211 const amrex::MultiFab& physical_nodal_height,
constexpr amrex::Real epsv
Definition: ERF_Constants.H:53
constexpr amrex::Real CONST_GRAV
Definition: ERF_Constants.H:64
constexpr amrex::Real R_d
Definition: ERF_Constants.H:47
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real getTgivenRandRTh(const amrex::Real rho, const amrex::Real rhotheta, const amrex::Real qv=amrex::Real(0))
Definition: ERF_EOS.H:46
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real getPgivenRTh(const amrex::Real rhotheta, const amrex::Real qv=amrex::Real(0))
Definition: ERF_EOS.H:81
amrex::Real Real
Definition: ERF_ShocInterface.H:19
AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE Real vapor_mixing_ratio(const Real p_b, const Real T_b, const Real RH, const bool use_empirical, int which_zone)
Definition: ERF_HSEUtils.H:462
Definition: ERF_SeaLevelPressure.cpp:12
void fill_sea_level_pressure(MultiFab &destination, int destination_component, const MultiFab &conserved_state, const MultiFab &physical_nodal_height, int vapor_component, int klo)
Definition: ERF_SeaLevelPressure.cpp:14
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real apply_shuell_correction(amrex::Real virtual_temperature_surface, amrex::Real virtual_temperature_sea_level) noexcept
Definition: ERF_SeaLevelPressure.H:72
constexpr amrex::Real sea_level_height
Definition: ERF_SeaLevelPressure.H:31
constexpr amrex::Real shuell_quadratic_coefficient
Definition: ERF_SeaLevelPressure.H:30
constexpr amrex::Real shuell_critical_temperature
Definition: ERF_SeaLevelPressure.H:29
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real virtual_temperature(amrex::Real temperature, amrex::Real specific_humidity) noexcept
Definition: ERF_SeaLevelPressure.H:54
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real reduce_surface_pressure_to_sea_level(amrex::Real surface_pressure, amrex::Real temperature_lowest_level, amrex::Real specific_humidity, amrex::Real height_lowest_level, amrex::Real height_surface) noexcept
Definition: ERF_SeaLevelPressure.H:122
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real specific_humidity_from_dry_mixing_ratio(amrex::Real vapor_mixing_ratio) noexcept
Definition: ERF_SeaLevelPressure.H:41
constexpr amrex::Real surface_height_deadband
Definition: ERF_SeaLevelPressure.H:32
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real reconstruct_surface_pressure(amrex::Real pressure_lowest_level, amrex::Real virtual_temperature_lowest_level, amrex::Real virtual_temperature_surface, amrex::Real height_lowest_level, amrex::Real height_surface) noexcept
Definition: ERF_SeaLevelPressure.H:98
constexpr amrex::Real lapse_rate
Definition: ERF_SeaLevelPressure.H:28
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real compute_from_erf_lowest_level_state(amrex::Real dry_density, amrex::Real dry_density_times_potential_temperature, amrex::Real vapor_mixing_ratio, amrex::Real height_lowest_level, amrex::Real height_surface) noexcept
Definition: ERF_SeaLevelPressure.H:169