ChemicalSystem.hpp
48 constexpr auto isPhaseConvertible = isBaseOf<GeneralPhase, T> || isBaseOf<GeneralPhasesGenerator, T>;
49 constexpr auto isReactionConvertible = isConvertible<T, Reaction> || isConvertible<T, GeneralReaction> || isConvertible<T, ReactionGenerator>;
50 constexpr auto isSurfaceConvertible = isConvertible<T, Surface> || isConvertible<T, GeneralSurface> || isConvertible<T, SurfaceGenerator>;
60 constexpr auto arePhaseReactionOrSurfaceConvertible = _arePhaseReactionOrSurfaceConvertible<T, Ts...>();
79 explicit ChemicalSystem(Database const& database, PhaseList const& phases, SurfaceList const& surfaces);
82 explicit ChemicalSystem(Database const& database, PhaseList const& phases, ReactionList const& reactions);
85 explicit ChemicalSystem(Database const& database, PhaseList const& phases, ReactionList const& reactions, SurfaceList const& surfaces);
97 explicit ChemicalSystem(Phases const& phases, Reactions const& reactions, Surfaces const& surfaces);
176 constexpr auto isPhaseConvertible = isBaseOf<GeneralPhase, T> || isBaseOf<GeneralPhasesGenerator, T>;
177 constexpr auto isReactionConvertible = isConvertible<T, Reaction> || isConvertible<T, GeneralReaction> || isConvertible<T, ReactionGenerator>;
178 constexpr auto isSurfaceConvertible = isConvertible<T, Surface> || isConvertible<T, GeneralSurface> || isConvertible<T, SurfaceGenerator>;
180 static_assert(isPhaseConvertible || isReactionConvertible || isSurfaceConvertible, "One of the arguments in your list of arguments for the construction of a ChemicalSystem object has a non-convertible type to either phase, reaction, or surface.");
The class used to represent a chemical system and its attributes and properties.
Definition: ChemicalSystem.hpp:70
ChemicalSystem(Database const &database, PhaseList const &phases)
Construct a ChemicalSystem object with given database and phases.
ChemicalSystem(Phases const &phases, Reactions const &reactions, Surfaces const &surfaces)
Construct a ChemicalSystem object with given phases, reactions, and surfaces.
ChemicalSystem(Phases const &phases, Surfaces const &surfaces)
Construct a ChemicalSystem object with given phases and surfaces.
ChemicalSystem(Database const &database, PhaseList const &phases, ReactionList const &reactions, SurfaceList const &surfaces)
Construct a ChemicalSystem object with given database, phases, reactions, and surfaces.
auto id() const -> Index
Return the unique identification number of this ChemicalSystem object.
ChemicalSystem(Phases const &phases)
Construct a ChemicalSystem object with given phases.
ChemicalSystem(Database const &database, PhaseList const &phases, ReactionList const &reactions)
Construct a ChemicalSystem object with given database, phases, and reactions.
ChemicalSystem()
Construct a default uninitialized ChemicalSystem object.
ChemicalSystem(Database const &db, Args const &... args)
Construct a ChemicalSystem object with given database and a list of phase and reaction convertible ob...
Definition: ChemicalSystem.hpp:101
ChemicalSystem(Database const &database, PhaseList const &phases, SurfaceList const &surfaces)
Construct a ChemicalSystem object with given database, phases, and surfaces.
ChemicalSystem(Phases const &phases, Reactions const &reactions)
Construct a ChemicalSystem object with given phases and reactions.
The class used to store and retrieve data of chemical species.
Definition: Database.hpp:32
The class used to define the phases that will constitute the chemical system of interest.
Definition: Phases.hpp:282
auto add(GeneralPhase const &phase) -> void
Add a GeneralPhase object into the Phases container.
Used to represent a collection of reactions controlled kinetically.
Definition: Reactions.hpp:128
auto add(T const &item) -> void
Add a reaction generator into the Reactions container.
Definition: Reactions.hpp:144
A type used to represent a chemical species and its attributes.
Definition: Species.hpp:35
Used to represent a surface across which chemical reactions take place.
Definition: Surface.hpp:31
Used to represent a collection of surfaces across which chemical reactions take place.
Definition: Surfaces.hpp:77
auto add(T const &item) -> void
Add a surface generator into the Surfaces container.
Definition: Surfaces.hpp:93
The namespace containing all components of the Reaktoro library.
Definition: Algorithms.hpp:29
auto createChemicalSystem(Database const &db, Args const &... args) -> ChemicalSystem
Create a ChemicalSystem object with given database and a list of phase and reaction convertible objec...
Definition: ChemicalSystem.hpp:168
constexpr auto arePhaseReactionOrSurfaceConvertible
Used to determine if T and all types in Ts are either GeneralPhase or GeneralPhaseGenerator.
Definition: ChemicalSystem.hpp:60
auto index(const Container &c, const T &x) -> std::size_t
Return the index of item x in container c or the number of items if not found.
Definition: Algorithms.hpp:37
constexpr auto ForEach(Function const &f) -> void
Generate evaluation statements f(arg0); f(arg1); ...; f(argn); at compile time.
Definition: Meta.hpp:62
Eigen::Ref< const MatrixXd > MatrixXdConstRef
Convenient alias to Eigen type.
Definition: Matrix.hpp:139
std::shared_ptr< T > SharedPtr
Convenient alias for std::shared_ptr<T>.
Definition: Types.hpp:106