Collect Data For Dataset

Header file: <libs/observers/collect_data_for_dataset.hpp> [source]

template<typename CDD, typename Dataset>
concept CollectDataForDataset
#include <collect_data_for_dataset.hpp>

Concept for CollectDataForDataset is all types that have functions for creating a functor to collect data from a gridbox and/or superdroplets (to use in a Kokkos parallel loop) and then write the data to arrays in a dataset.

tparam CDD:

The type that satisfies the CollectDataForDataset concept.

template<typename CollectData1, typename CollectData2>
struct CombinedCollectDataForDataset

struct is a new type satirfying CollectDataForDataset formed from the combination of two structs that also satisfy the CollectDataForDataset concept (given the same Dataset type). This new type does the actions of the original structs in sequence.

Note the contrains of the CollectDataForDataset<Dataset> are not applied directly on the incoming two types (CollectData1 and CollectData2) that are combined. They should each nevertheless obey the contraints of the CollectDataForDataset<Dataset> concept given the same Dataset type.

Template Parameters:

Public Functions

inline CombinedCollectDataForDataset(const CollectData1 a, const CollectData2 b)

Constructs a CombinedCollectDataForDataset object.

Parameters:
inline Functor get_functor(const viewd_constgbx d_gbxs, const subviewd_constsupers d_supers) const
template<typename Dataset>
inline void write_to_arrays(const Dataset &dataset) const
template<typename Dataset>
inline void write_to_ragged_arrays(const Dataset &dataset) const
template<typename Dataset>
inline void write_arrayshapes(const Dataset &dataset) const
template<typename Dataset>
inline void write_ragged_arrayshapes(const Dataset &dataset) const
inline void reallocate_views(const size_t sz) const

Private Members

CollectData1 a

The first instance of type of CollectDataForDataset.

CollectData2 b

The second instance of type of CollectDataForDataset.

struct Functor

Public Functions

inline explicit Functor(const CollectData1 a, const CollectData2 b, const viewd_constgbx d_gbxs, const subviewd_constsupers d_supers)
inline void operator()(const size_t nn) const
inline void operator()(const TeamMember &team_member) const

Public Members

CollectData1::Functor a_functor
CollectData2::Functor b_functor

Warning

doxygenfunction: Unable to resolve function “operator>>” with arguments (const CollectData1, const CollectData2) in doxygen xml output for project “libs” from directory: ../build/doxygen/xml/. Potential matches:

- auto operator>>(const MicrophysicalProcess auto a, const MicrophysicalProcess auto b)
- auto operator>>(const Observer auto obs1, const Observer auto obs2)
- template<CollectDataForDataset<CollectiveDataset<FSStore, CartesianDecomposition>> CollectData1, CollectDataForDataset<CollectiveDataset<FSStore, CartesianDecomposition>> CollectData2> auto operator>>(const CollectData1 a, const CollectData2 b)
- template<CollectDataForDataset<SimpleDataset<FSStore>> CollectData1, CollectDataForDataset<SimpleDataset<FSStore>> CollectData2> auto operator>>(const CollectData1 a, const CollectData2 b)
struct NullCollectDataForDataset

Public Functions

inline Functor get_functor(const viewd_constgbx d_gbxs, const subviewd_constsupers d_supers) const
template<typename Dataset>
inline void write_to_arrays(const Dataset &dataset) const
template<typename Dataset>
inline void write_to_ragged_arrays(const Dataset &dataset) const
template<typename Dataset>
inline void write_arrayshapes(const Dataset &dataset) const
template<typename Dataset>
inline void write_ragged_arrayshapes(const Dataset &dataset) const
inline void reallocate_views(const size_t sz) const
struct Functor

Public Functions

inline void operator()(const size_t nn) const
inline void operator()(const TeamMember &team_member) const