4 #ifndef ERF_PLOTFILE2DSAMPLED_FIELD_H_
5 #define ERF_PLOTFILE2DSAMPLED_FIELD_H_
9 #include <AMReX_GpuQualifiers.H>
10 #include <AMReX_Vector.H>
54 amrex::Vector<SampledFieldDescriptor>
accepted;
69 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
84 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
94 AMREX_GPU_DEVICE AMREX_FORCE_INLINE
96 const amrex::Array4<const amrex::Real>& cons_arr,
97 const amrex::Array4<const amrex::Real>& z_phys_cc_arr,
98 const amrex::Array4<const amrex::Real>& z_phys_nd_arr,
99 const amrex::Array4<const amrex::Real>& p_hse_arr,
101 bool use_hse_pressure,
106 const bool has_moisture = (moisture_indices.qv >= 0);
110 ? cons_arr(i, j, k, moisture_indices.qv) /
rho
125 return use_hse_pressure ? p_hse_arr(i, j, k)
128 if (have_z_phys_cc) {
129 return z_phys_cc_arr(i, j, k);
135 return has_moisture ? cons_arr(i, j, k, moisture_indices.qv) /
rho :
amrex::Real(0.0);
137 return (moisture_indices.qc >= 0) ? cons_arr(i, j, k, moisture_indices.qc) /
rho :
amrex::Real(0.0);
139 return (moisture_indices.qi >= 0) ? cons_arr(i, j, k, moisture_indices.qi) /
rho :
amrex::Real(0.0);
141 return (moisture_indices.qr >= 0) ? cons_arr(i, j, k, moisture_indices.qr) /
rho :
amrex::Real(0.0);
143 return (moisture_indices.qs >= 0) ? cons_arr(i, j, k, moisture_indices.qs) /
rho :
amrex::Real(0.0);
145 return (moisture_indices.qg >= 0) ? cons_arr(i, j, k, moisture_indices.qg) /
rho :
amrex::Real(0.0);
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
#define Rho_comp
Definition: ERF_IndexDefines.H:39
#define RhoTheta_comp
Definition: ERF_IndexDefines.H:40
std::string name
Definition: ERF_Plotfile2DCatalog.cpp:101
amrex::Real Real
Definition: ERF_ShocInterface.H:19
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Compute_Zrel_AtCellCenter(const int &i, const int &j, const int &k, const amrex::Array4< const amrex::Real > &z_nd)
Definition: ERF_TerrainMetrics.H:740
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Compute_Z_AtCellCenter(const int &i, const int &j, const int &k, const amrex::Array4< const amrex::Real > &z_nd)
Definition: ERF_TerrainMetrics.H:694
@ rho
Definition: ERF_Kessler.H:24
Definition: ERF_Plotfile2DCatalog.cpp:10
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real sampled_field_value(SampledFieldID field_id, const amrex::Array4< const amrex::Real > &cons_arr, const amrex::Array4< const amrex::Real > &z_phys_cc_arr, const amrex::Array4< const amrex::Real > &z_phys_nd_arr, const amrex::Array4< const amrex::Real > &p_hse_arr, bool have_z_phys_cc, bool use_hse_pressure, int i, int j, int k, const MoistureComponentIndices &moisture_indices) noexcept
Definition: ERF_Plotfile2DSampledField.H:95
const char * sampled_field_name(SampledFieldID field_id) noexcept
Definition: ERF_Plotfile2DSampledField.H:158
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool sampled_field_is_wind(SampledFieldID field_id) noexcept
Definition: ERF_Plotfile2DSampledField.H:70
SampledFieldSelection select_requested_sampled_fields(const amrex::Vector< std::string > &requested, const SolverChoice &solver_choice)
Definition: ERF_Plotfile2DSampledField.cpp:109
const SampledFieldDescriptor * find_sampled_field(const std::string &name)
Definition: ERF_Plotfile2DSampledField.cpp:82
std::string sampled_field_id_to_string(SampledFieldID field_id)
Definition: ERF_Plotfile2DSampledField.cpp:137
const amrex::Vector< SampledFieldDescriptor > & sampled_field_catalog()
Definition: ERF_Plotfile2DSampledField.cpp:76
amrex::Vector< std::string > available_sampled_field_names(const SolverChoice &solver_choice)
Definition: ERF_Plotfile2DSampledField.cpp:94
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool sampled_field_is_scalar_state(SampledFieldID field_id) noexcept
Definition: ERF_Plotfile2DSampledField.H:85
SampledFieldID
Definition: ERF_Plotfile2DSampledField.H:24
The moisture data carried by the active microphysics scheme.
Definition: ERF_DataStruct.H:195
Definition: ERF_DataStruct.H:634
Definition: ERF_Plotfile2DSampledField.H:45
SampledFieldID id
Definition: ERF_Plotfile2DSampledField.H:46
const char * name
Definition: ERF_Plotfile2DSampledField.H:47
const char * units
Definition: ERF_Plotfile2DSampledField.H:49
const char * long_name
Definition: ERF_Plotfile2DSampledField.H:48
Definition: ERF_Plotfile2DSampledField.H:53
amrex::Vector< std::string > unavailable
Definition: ERF_Plotfile2DSampledField.H:55
amrex::Vector< SampledFieldDescriptor > accepted
Definition: ERF_Plotfile2DSampledField.H:54