38 static SpeciesFactory & instance();
43 void collectCustomSpecies(
const YAML::Node & network);
44 void collectLumpedSpecies(
const YAML::Node & network);
45 void collectLatexOverrides(
const YAML::Node & network);
46 void collectConstantSpecies(
const YAML::Node & network);
53 double getMass(
const std::string & name)
const;
59 friend class SubSpecies;
60 friend class Reaction;
67 const std::string getLatexOverride(
const std::string & name)
const;
78 std::weak_ptr<Species> getSpecies(
const std::string & name);
82 const std::vector<std::shared_ptr<Species>> & species()
const {
return _species; }
83 const std::vector<std::shared_ptr<const Species>> & transientSpecies()
const
85 return _transient_species;
88 const std::vector<std::string> & speciesNames()
const {
return _species_names; }
95 std::weak_ptr<Species> getLumpedSpecies(std::weak_ptr<Species> s);
108 void addRateBasedReaction(std::shared_ptr<const Reaction> r);
114 void addXSecBasedReaction(std::shared_ptr<const Reaction> r);
120 SpeciesFactory(
const SpeciesFactory &) =
delete;
121 SpeciesFactory & operator=(
const SpeciesFactory &) =
delete;
123 static SpeciesFactory * _instance;
129 void writeSpeciesSummary(
const std::string & file, SpeciesSummaryWriterBase & writer)
const;
131 std::vector<std::shared_ptr<Species>> _species;
133 std::unordered_map<std::string, SpeciesId> _species_indicies;
136 std::vector<std::string> _species_names;
139 std::vector<std::shared_ptr<const Species>> _transient_species;
141 std::map<std::string, std::string> _lumped_map;
143 std::set<std::string> _constant_species;
145 std::unordered_map<std::string, std::string> _latex_overrides;
148 std::unordered_map<std::string, double> _default_masses = {{
"hnu", 0.0},
150 {
"e", 5.4857990943E-4},
151 {
"E", 5.4857990943E-4},
269 std::unordered_map<std::string, double> _base_masses = _default_masses;