43#ifndef OPENSWMM_ENGINE_DATA_SPECIES_REGISTRY_HPP
44#define OPENSWMM_ENGINE_DATA_SPECIES_REGISTRY_HPP
90 name_.push_back(std::move(
name));
91 kind_.push_back(
kind);
92 units_.push_back(std::move(
units));
95 return static_cast<int>(name_.size()) - 1;
105 for (std::size_t i = 0; i < name_.size(); ++i)
106 if (name_[i] ==
name)
107 return static_cast<int>(i);
115 int count() const noexcept {
return static_cast<int>(name_.size()); }
133 for (
const auto k : kind_)
146 const std::string&
name(
int i)
const {
return name_[
static_cast<std::size_t
>(i)]; }
160 const std::string&
units(
int i)
const {
return units_[
static_cast<std::size_t
>(i)]; }
177 const auto un =
static_cast<std::size_t
>(n);
182 for (
const auto k : kind_)
188 std::vector<std::string> name_;
189 std::vector<SpeciesKind> kind_;
190 std::vector<std::string> units_;
191 int n_pollutants_ = 0;
Definition SpeciesRegistry.hpp:61
int transported_count() const noexcept
Count mesh-transported constituent kinds.
Definition SpeciesRegistry.hpp:131
int pollutant_count() const noexcept
Count registered entries marked POLLUTANT.
Definition SpeciesRegistry.hpp:121
int find(std::string_view name) const
Find the first byte-exact species name.
Definition SpeciesRegistry.hpp:104
void truncate_to(int n)
Drop registry entries from a specified index onward.
Definition SpeciesRegistry.hpp:172
const std::string & name(int i) const
Borrow a species identifier.
Definition SpeciesRegistry.hpp:146
void clear()
Erase all species and reset the pollutant count.
Definition SpeciesRegistry.hpp:69
int count() const noexcept
Count registered constituents of all kinds.
Definition SpeciesRegistry.hpp:115
int add(std::string name, SpeciesKind kind, std::string units)
Append a uniquely named species across all kinds.
Definition SpeciesRegistry.hpp:87
const std::string & units(int i) const
Borrow a species unit label.
Definition SpeciesRegistry.hpp:160
SpeciesKind kind(int i) const
Read a species category.
Definition SpeciesRegistry.hpp:153
Definition ExchangeLaw.hpp:60
SpeciesKind
Constituent kinds (master plan ยง4.1).
Definition SpeciesRegistry.hpp:53
@ POLLUTANT
legacy [POLLUTANTS] entry
Definition SpeciesRegistry.hpp:54
@ MSX_BULK
reactions component BULK species (R1)
Definition SpeciesRegistry.hpp:57
@ RESERVED_AGE
WATER_AGE (phase A1)
Definition SpeciesRegistry.hpp:55
@ MSX_WALL
reactions component WALL species (R1)
Definition SpeciesRegistry.hpp:58
@ RESERVED_TEMPERATURE
TEMPERATURE (phase H1)
Definition SpeciesRegistry.hpp:56