ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_AuxiliaryStateLayout.H
Go to the documentation of this file.
1 #ifndef ERF_AUXILIARY_STATE_LAYOUT_H_
2 #define ERF_AUXILIARY_STATE_LAYOUT_H_
3 
4 #include <string>
5 #include <utility>
6 #include <vector>
7 
8 namespace erf_auxiliary {
9 
10 /** A fixed component in an ERF-owned auxiliary prognostic state. */
12  std::string name;
13  std::string semantic_id;
14  std::string units;
15 };
16 
17 /**
18  * Generic metadata for an auxiliary state. The generic layer deliberately
19  * knows nothing about microphysics, bins, or water species.
20  */
22 public:
23  AuxiliaryStateLayout () = default;
25  std::vector<ComponentDescriptor> components)
26  : m_schema_id(std::move(schema_id)), m_components(std::move(components)) {}
27 
28  [[nodiscard]] const std::string& schema_id () const noexcept { return m_schema_id; }
29  [[nodiscard]] int ncomp () const noexcept { return static_cast<int>(m_components.size()); }
30  [[nodiscard]] const std::vector<ComponentDescriptor>& components () const noexcept {
31  return m_components;
32  }
33 
34 private:
35  std::string m_schema_id;
36  std::vector<ComponentDescriptor> m_components;
37 };
38 
39 } // namespace erf_auxiliary
40 
41 #endif
Definition: ERF_AuxiliaryStateLayout.H:21
std::vector< ComponentDescriptor > m_components
Definition: ERF_AuxiliaryStateLayout.H:36
AuxiliaryStateLayout(std::string schema_id, std::vector< ComponentDescriptor > components)
Definition: ERF_AuxiliaryStateLayout.H:24
std::string m_schema_id
Definition: ERF_AuxiliaryStateLayout.H:35
const std::vector< ComponentDescriptor > & components() const noexcept
Definition: ERF_AuxiliaryStateLayout.H:30
int ncomp() const noexcept
Definition: ERF_AuxiliaryStateLayout.H:29
const std::string & schema_id() const noexcept
Definition: ERF_AuxiliaryStateLayout.H:28
Definition: ERF_AuxiliaryInertTracer.cpp:15
Definition: ERF_AuxiliaryStateLayout.H:11
std::string semantic_id
Definition: ERF_AuxiliaryStateLayout.H:13
std::string name
Definition: ERF_AuxiliaryStateLayout.H:12
std::string units
Definition: ERF_AuxiliaryStateLayout.H:14