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
90 AMREX_GPU_DEVICE AMREX_FORCE_INLINE
92 const amrex::Array4<const amrex::Real>& cons_arr,
93 const amrex::Array4<const amrex::Real>& z_phys_cc_arr,
94 const amrex::Array4<const amrex::Real>& z_phys_nd_arr,
100 const bool has_moisture = (moisture_indices.qv >= 0);
104 ? cons_arr(i, j, k, moisture_indices.qv) /
rho
117 if (have_z_phys_cc) {
118 return z_phys_cc_arr(i, j, k);
124 return has_moisture ? cons_arr(i, j, k, moisture_indices.qv) /
rho :
amrex::Real(0.0);
126 return (moisture_indices.qc >= 0) ? cons_arr(i, j, k, moisture_indices.qc) /
rho :
amrex::Real(0.0);
128 return (moisture_indices.qi >= 0) ? cons_arr(i, j, k, moisture_indices.qi) /
rho :
amrex::Real(0.0);
130 return (moisture_indices.qr >= 0) ? cons_arr(i, j, k, moisture_indices.qr) /
rho :
amrex::Real(0.0);
132 return (moisture_indices.qs >= 0) ? cons_arr(i, j, k, moisture_indices.qs) /
rho :
amrex::Real(0.0);
134 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:36
#define RhoTheta_comp
Definition: ERF_IndexDefines.H:37
rho
Definition: ERF_InitCustomPert_Bubble.H:107
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:389
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:361
Definition: ERF_Plotfile2DCatalog.cpp:10
const char * sampled_field_name(SampledFieldID field_id) noexcept
Definition: ERF_Plotfile2DSampledField.H:147
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_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, bool have_z_phys_cc, int i, int j, int k, const MoistureComponentIndices &moisture_indices) noexcept
Definition: ERF_Plotfile2DSampledField.H:91
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
Component indices for moisture species in the conserved state.
Definition: ERF_DataStruct.H:166
Definition: ERF_DataStruct.H:241
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