1 #ifndef ERF_PLOTFILE2DSAMPLED_FIELD_H_
2 #define ERF_PLOTFILE2DSAMPLED_FIELD_H_
6 #include <AMReX_GpuQualifiers.H>
7 #include <AMReX_Vector.H>
51 amrex::Vector<SampledFieldDescriptor>
accepted;
66 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
81 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
87 AMREX_GPU_DEVICE AMREX_FORCE_INLINE
89 const amrex::Array4<const amrex::Real>& cons_arr,
90 const amrex::Array4<const amrex::Real>& z_phys_cc_arr,
91 const amrex::Array4<const amrex::Real>& z_phys_nd_arr,
97 const bool has_moisture = (moisture_indices.qv >= 0);
101 ? cons_arr(i, j, k, moisture_indices.qv) /
rho
114 if (have_z_phys_cc) {
115 return z_phys_cc_arr(i, j, k);
121 return has_moisture ? cons_arr(i, j, k, moisture_indices.qv) /
rho :
amrex::Real(0.0);
123 return (moisture_indices.qc >= 0) ? cons_arr(i, j, k, moisture_indices.qc) /
rho :
amrex::Real(0.0);
125 return (moisture_indices.qi >= 0) ? cons_arr(i, j, k, moisture_indices.qi) /
rho :
amrex::Real(0.0);
127 return (moisture_indices.qr >= 0) ? cons_arr(i, j, k, moisture_indices.qr) /
rho :
amrex::Real(0.0);
129 return (moisture_indices.qs >= 0) ? cons_arr(i, j, k, moisture_indices.qs) /
rho :
amrex::Real(0.0);
131 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:97
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:7
const char * sampled_field_name(SampledFieldID field_id) noexcept
Definition: ERF_Plotfile2DSampledField.H:144
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool sampled_field_is_wind(SampledFieldID field_id) noexcept
Definition: ERF_Plotfile2DSampledField.H:67
SampledFieldSelection select_requested_sampled_fields(const amrex::Vector< std::string > &requested, const SolverChoice &solver_choice)
Definition: ERF_Plotfile2DSampledField.cpp:106
const SampledFieldDescriptor * find_sampled_field(const std::string &name)
Definition: ERF_Plotfile2DSampledField.cpp:79
std::string sampled_field_id_to_string(SampledFieldID field_id)
Definition: ERF_Plotfile2DSampledField.cpp:134
const amrex::Vector< SampledFieldDescriptor > & sampled_field_catalog()
Definition: ERF_Plotfile2DSampledField.cpp:73
amrex::Vector< std::string > available_sampled_field_names(const SolverChoice &solver_choice)
Definition: ERF_Plotfile2DSampledField.cpp:91
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:88
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool sampled_field_is_scalar_state(SampledFieldID field_id) noexcept
Definition: ERF_Plotfile2DSampledField.H:82
SampledFieldID
Definition: ERF_Plotfile2DSampledField.H:21
Definition: ERF_DataStruct.H:106
Definition: ERF_DataStruct.H:141
Definition: ERF_Plotfile2DSampledField.H:42
SampledFieldID id
Definition: ERF_Plotfile2DSampledField.H:43
const char * name
Definition: ERF_Plotfile2DSampledField.H:44
const char * units
Definition: ERF_Plotfile2DSampledField.H:46
const char * long_name
Definition: ERF_Plotfile2DSampledField.H:45
Definition: ERF_Plotfile2DSampledField.H:50
amrex::Vector< std::string > unavailable
Definition: ERF_Plotfile2DSampledField.H:52
amrex::Vector< SampledFieldDescriptor > accepted
Definition: ERF_Plotfile2DSampledField.H:51