|
ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
#include <ERF_InputSoundingData.H>

Public Member Functions | |
| InputSoundingData () | |
| Construct input sounding metadata from the ERF input namespace. More... | |
| void | resize_arrays () |
| Resize host and device sounding arrays for the configured sounding times. More... | |
| void | read_from_file (const amrex::Geometry &geom, const amrex::Vector< amrex::Real > &zlevels_stag, int itime, bool is_moist) |
| Read and interpolate one input sounding profile onto level-0 heights. More... | |
| void | calc_rho_p (int itime) |
| Hydrostatically integrate density and pressure for one sounding. More... | |
| void | calc_rho_p_isentropic (int itime) |
| Compute density and pressure for an isentropic sounding profile. More... | |
| void | host_to_device (int itime) |
| Copy host sounding arrays for one time index to device storage. More... | |
| int | size (int itime) const |
| Return the number of interpolated samples for one sounding time. More... | |
Public Attributes | |
| int | ntimes |
| Number of sounding times represented in the arrays. More... | |
| amrex::Real | tau_nudging = amrex::Real(5.0) |
| Nudging time scale for relaxing toward input sounding data. More... | |
| amrex::Vector< std::string > | input_sounding_file = {} |
| Sounding file path for each configured sounding time. More... | |
| amrex::Vector< amrex::Real > | input_sounding_time = {} |
| Physical time associated with each input sounding file. More... | |
| int | n_sounding_files = 0 |
| Number of input sounding files. More... | |
| int | n_sounding_times = 0 |
| Number of input sounding times. More... | |
| bool | assume_dry {false} |
| Whether to ignore moisture in isentropic pressure integration. More... | |
| amrex::Real | press_ref_inp_sound |
| Surface reference pressure read from the input sounding [Pa]. More... | |
| amrex::Real | theta_ref_inp_sound |
| Surface reference potential temperature read from the input sounding [K]. More... | |
| amrex::Real | qv_ref_inp_sound |
| Surface reference water vapor mixing ratio read from the input sounding [kg/kg]. More... | |
| amrex::Vector< amrex::Vector< amrex::Real > > | z_inp_sound |
| Interpolated host sounding heights for each sounding time [m]. More... | |
| amrex::Vector< amrex::Vector< amrex::Real > > | theta_inp_sound |
| Interpolated host potential temperature profiles [K]. More... | |
| amrex::Vector< amrex::Vector< amrex::Real > > | qv_inp_sound |
| Interpolated host water vapor mixing ratio profiles [kg/kg]. More... | |
| amrex::Vector< amrex::Vector< amrex::Real > > | U_inp_sound |
| Interpolated host x velocity profiles. More... | |
| amrex::Vector< amrex::Vector< amrex::Real > > | V_inp_sound |
| Interpolated host y velocity profiles. More... | |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | z_inp_sound_d |
| Device sounding heights for each sounding time [m]. More... | |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | theta_inp_sound_d |
| Device potential temperature profiles [K]. More... | |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | qv_inp_sound_d |
| Device water vapor mixing ratio profiles [kg/kg]. More... | |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | U_inp_sound_d |
| Device x velocity profiles. More... | |
| amrex::Vector< amrex::Gpu::DeviceVector< amrex::Real > > | V_inp_sound_d |
| Device y velocity profiles. More... | |
| amrex::Vector< amrex::Real > | pm_integ |
| Hydrostatically integrated moist pressure profile. More... | |
| amrex::Vector< amrex::Real > | rhod_integ |
| Hydrostatically integrated dry density profile. More... | |
| amrex::Gpu::DeviceVector< amrex::Real > | p_inp_sound_d |
| Device pressure profile used to initialize solution fields. More... | |
| amrex::Gpu::DeviceVector< amrex::Real > | rho_inp_sound_d |
| Device density profile used to initialize solution fields. More... | |
Data structure storing input sounding data. Also handles reading the input file for sounding data and hydrostatic column integration.
|
inline |
Construct input sounding metadata from the ERF input namespace.

|
inline |
Hydrostatically integrate density and pressure for one sounding.
| itime | Sounding time/file index to integrate. |

|
inline |
Compute density and pressure for an isentropic sounding profile.
| itime | Sounding time/file index to integrate. |

|
inline |
Copy host sounding arrays for one time index to device storage.
| itime | Sounding time/file index to copy. |
Referenced by calc_rho_p(), calc_rho_p_isentropic(), and read_from_file().


|
inline |
Read and interpolate one input sounding profile onto level-0 heights.
| geom | Geometry defining the level-0 vertical domain. |
| zlevels_stag | Staggered vertical coordinates used for interpolation. |
| itime | Sounding time/file index to read. |
| is_moist | Whether the selected physics permits nonzero water vapor. |

|
inline |
Resize host and device sounding arrays for the configured sounding times.
|
inline |
Return the number of interpolated samples for one sounding time.
| itime | Sounding time/file index to query. |
Referenced by calc_rho_p(), calc_rho_p_isentropic(), host_to_device(), init_state_from_input_sounding(), init_state_from_input_sounding_hse(), and init_velocities_from_input_sounding().


| InputSoundingData::assume_dry {false} |
Whether to ignore moisture in isentropic pressure integration.
Referenced by calc_rho_p_isentropic(), and init_state_from_input_sounding_hse().
| InputSoundingData::input_sounding_file = {} |
Sounding file path for each configured sounding time.
Referenced by InputSoundingData(), and read_from_file().
| InputSoundingData::input_sounding_time = {} |
Physical time associated with each input sounding file.
Referenced by InputSoundingData(), make_mom_sources(), and make_sources().
| InputSoundingData::n_sounding_files = 0 |
Number of input sounding files.
Referenced by InputSoundingData(), and resize_arrays().
| InputSoundingData::n_sounding_times = 0 |
Number of input sounding times.
Referenced by InputSoundingData().
| InputSoundingData::ntimes |
Number of sounding times represented in the arrays.
Referenced by resize_arrays().
| InputSoundingData::p_inp_sound_d |
Device pressure profile used to initialize solution fields.
Referenced by host_to_device().
| InputSoundingData::pm_integ |
Hydrostatically integrated moist pressure profile.
Referenced by calc_rho_p(), calc_rho_p_isentropic(), and host_to_device().
| InputSoundingData::press_ref_inp_sound |
Surface reference pressure read from the input sounding [Pa].
Referenced by calc_rho_p(), calc_rho_p_isentropic(), and read_from_file().
| InputSoundingData::qv_inp_sound |
Interpolated host water vapor mixing ratio profiles [kg/kg].
Referenced by calc_rho_p(), calc_rho_p_isentropic(), host_to_device(), read_from_file(), resize_arrays(), and size().
| InputSoundingData::qv_inp_sound_d |
Device water vapor mixing ratio profiles [kg/kg].
Referenced by host_to_device(), init_state_from_input_sounding(), init_state_from_input_sounding_hse(), and resize_arrays().
| InputSoundingData::qv_ref_inp_sound |
Surface reference water vapor mixing ratio read from the input sounding [kg/kg].
Referenced by calc_rho_p(), calc_rho_p_isentropic(), and read_from_file().
| InputSoundingData::rho_inp_sound_d |
Device density profile used to initialize solution fields.
Referenced by host_to_device(), and init_state_from_input_sounding_hse().
| InputSoundingData::rhod_integ |
Hydrostatically integrated dry density profile.
Referenced by calc_rho_p(), calc_rho_p_isentropic(), and host_to_device().
| InputSoundingData::tau_nudging = amrex::Real(5.0) |
Nudging time scale for relaxing toward input sounding data.
Referenced by InputSoundingData(), make_mom_sources(), and make_sources().
| InputSoundingData::theta_inp_sound |
Interpolated host potential temperature profiles [K].
Referenced by calc_rho_p(), calc_rho_p_isentropic(), host_to_device(), read_from_file(), resize_arrays(), and size().
| InputSoundingData::theta_inp_sound_d |
Device potential temperature profiles [K].
Referenced by host_to_device(), init_state_from_input_sounding(), init_state_from_input_sounding_hse(), make_sources(), and resize_arrays().
| InputSoundingData::theta_ref_inp_sound |
Surface reference potential temperature read from the input sounding [K].
Referenced by calc_rho_p(), calc_rho_p_isentropic(), and read_from_file().
| InputSoundingData::U_inp_sound |
Interpolated host x velocity profiles.
Referenced by calc_rho_p(), calc_rho_p_isentropic(), host_to_device(), read_from_file(), resize_arrays(), and size().
| InputSoundingData::U_inp_sound_d |
Device x velocity profiles.
Referenced by host_to_device(), init_velocities_from_input_sounding(), make_mom_sources(), and resize_arrays().
| InputSoundingData::V_inp_sound |
Interpolated host y velocity profiles.
Referenced by calc_rho_p(), calc_rho_p_isentropic(), host_to_device(), read_from_file(), resize_arrays(), and size().
| InputSoundingData::V_inp_sound_d |
Device y velocity profiles.
Referenced by host_to_device(), init_velocities_from_input_sounding(), make_mom_sources(), and resize_arrays().
| InputSoundingData::z_inp_sound |
Interpolated host sounding heights for each sounding time [m].
Referenced by calc_rho_p(), calc_rho_p_isentropic(), host_to_device(), read_from_file(), resize_arrays(), and size().
| InputSoundingData::z_inp_sound_d |
Device sounding heights for each sounding time [m].
Referenced by host_to_device(), init_state_from_input_sounding(), init_state_from_input_sounding_hse(), init_velocities_from_input_sounding(), and resize_arrays().