WindVel Observer¶
Header file: <libs/observers/windvel_observer.hpp>
[source]
-
template<typename Store, typename FunctorFunc>
CollectDataForDataset<Store> auto CollectWindVariable(const Dataset<Store> &dataset, const FunctorFunc ffunc, const std::string_view name, const size_t maxchunk, const size_t ngbxs)¶ Constructs type sastifying the CollectDataForDataset concept for a given Store (using an instance of the GenericCollectData class) which writes a wind velocity component to an Xarray in a dataset.
Function return type writes a wind velocity component to an Xarray as a 4-byte floating point type with units “m/s” by collecting data according to the given FunctorFunc from within a Kokkos::parallel_for loop over gridboxes with a range policy.
- Parameters:
dataset – The dataset to write the wind velocity component to.
ffunc – The functor function to collect the wind velocity component from within a parallel range policy over gridboxes.
name – Name of the array in the store where the chunk will be written.
maxchunk – The maximum chunk size (number of elements).
ngbxs – The number of gridboxes.
- Returns:
CollectDataForDataset<Store> An instance satisfying the CollectDataForDataset concept for collecting a wind velocity component from each gridbox.
-
struct WvelFunc¶
Functor operator to perform a copy of the wvel at the centre of each gridbox “wvel” to d_data within Kokkos::parallel_for loop over gridboxes with range policy.
Signature of operator such that type can be used by GenericCollectData struct for FunctorFunc.
Note: Conversion of wvel from double (8 bytes) to single precision float (4 bytes).
- Param ii:
The index of the gridbox.
- Param d_gbxs:
The view of gridboxes on device.
- Param totsupers:
The view of superdroplets on device.
- Param d_data:
The mirror view buffer for wvel form each gridbox.
Public Functions
-
inline void operator()(const size_t ii, viewd_constgbx d_gbxs, const viewd_constsupers totsupers, Buffer<float>::mirrorviewd_buffer d_data) const¶
-
struct UvelFunc¶
Functor operator to perform a copy of the uvel at the centre of each gridbox “uvel” to d_data within Kokkos::parallel_for loop over gridboxes with range policy.
Signature of operator such that type can be used by GenericCollectData struct for FunctorFunc.
Note: Conversion of uvel from double (8 bytes) to single precision float (4 bytes).
- Param ii:
The index of the gridbox.
- Param d_gbxs:
The view of gridboxes on device.
- Param totsupers:
The view of superdroplets on device.
- Param d_data:
The mirror view buffer for uvel form each gridbox.
Public Functions
-
inline void operator()(const size_t ii, viewd_constgbx d_gbxs, const viewd_constsupers totsupers, Buffer<float>::mirrorviewd_buffer d_data) const¶
-
struct VvelFunc¶
Functor operator to perform a copy of the vvel at the centre of each gridbox “vvel” to d_data within Kokkos::parallel_for loop over gridboxes with range policy.
Signature of operator such that type can be used by GenericCollectData struct for FunctorFunc.
Note: Conversion of vvel from double (8 bytes) to single precision float (4 bytes).
- Param ii:
The index of the gridbox.
- Param d_gbxs:
The view of gridboxes on device.
- Param totsupers:
The view of superdroplets on device.
- Param d_data:
The mirror view buffer for vvel form each gridbox.
Public Functions
-
inline void operator()(const size_t ii, viewd_constgbx d_gbxs, const viewd_constsupers totsupers, Buffer<float>::mirrorviewd_buffer d_data) const¶
-
template<typename Store>
inline CollectDataForDataset<Store> auto CollectWindVel(const Dataset<Store> &dataset, const size_t maxchunk, const size_t ngbxs)¶ Constructs a type satisyfing the CollectDataForDataset concept for collecting all three wind velocity components in each gridbox and writing them to a dataset.
This function combines CollectDataForDataset types for the three wind velocity components (wvel, vvel and uvel) in each gridbox using instances of the GenericCollectData class.
- Template Parameters:
Store – The type of the dataset store.
- Parameters:
dataset – The dataset to write the wind velocity components to.
maxchunk – The maximum chunk size (number of elements).
ngbxs – The number of gridboxes.
- Returns:
CollectDataForDataset<Store> An instance of CollectDataForDataset for collecting wind velocity data.
-
template<typename Store>
inline Observer auto WindVelObserver(const unsigned int interval, const Dataset<Store> &dataset, const size_t maxchunk, const size_t ngbxs)¶ Constructs an observer which writes the wind velocity components in each gridbox (wvel, vvel and uvel) at start of each observation timestep to a arrays with a constant observation timestep “interval”.
- Template Parameters:
Store – Type of store for dataset.
- Parameters:
interval – Observation timestep.
dataset – Dataset to write time data to.
maxchunk – Maximum number of elements in a chunk (1-D vector size).
ngbxs – The number of gridboxes.
- Returns:
Observer An observer instance for writing the wind velocity components.