Reaktoro  v2.11.0
A unified framework for modeling chemically reactive systems
EquilibriumReactions.hpp
1 // // Reaktoro is a unified framework for modeling chemically reactive systems.
2 // //
3 // // Copyright © 2014-2024 Allan Leal
4 // //
5 // // This library is free software; you can redistribute it and/or
6 // // modify it under the terms of the GNU Lesser General Public
7 // // License as published by the Free Software Foundation; either
8 // // version 2.1 of the License, or (at your option) any later version.
9 // //
10 // // This library is distributed in the hope that it will be useful,
11 // // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // // Lesser General Public License for more details.
14 // //
15 // // You should have received a copy of the GNU Lesser General Public License
16 // // along with this library. If not, see <http://www.gnu.org/licenses/>.
17 
18 // #pragma once
19 
20 // // C++ includes
21 // #include <memory>
22 // #include <string>
23 // #include <vector>
24 
25 // // Reaktoro includes
26 // #include <Reaktoro/Common/Index.hpp>
27 // #include <Reaktoro/Common/Matrix.hpp>
28 // #include <Reaktoro/Math/LU.hpp>
29 
30 // namespace Reaktoro {
31 
32 // // Forward declarations
33 // class ChemicalSystem;
34 // class Partition;
35 // class ReactionEquation;
36 
37 // /// A class that generates a system of equilibrium reactions written in terms of master and secondary species.
38 // class EquilibriumReactions
39 // {
40 // public:
41 // /// Construct an EquilibriumReactions instance.
42 // EquilibriumReactions(const ChemicalSystem& system);
43 
44 // /// Construct an EquilibriumReactions instance
45 // EquilibriumReactions(const ChemicalSystem& system, const Partition& partition);
46 
47 // /// Construct a copy of an EquilibriumReactions instance
48 // EquilibriumReactions(const EquilibriumReactions& other);
49 
50 // /// Destroy this EquilibriumReactions instance.
51 // virtual ~EquilibriumReactions();
52 
53 // /// Assign other EquilibriumReactions instance to this.
54 // auto operator=(EquilibriumReactions other) -> EquilibriumReactions&;
55 
56 // /// Return the chemical system for which the equilibrium reactions were defined.
57 // auto system() const -> const ChemicalSystem&;
58 
59 // /// Return the partition of the chemical system for which the equilibrium reactions were defined.
60 // auto partition() const -> const Partition&;
61 
62 // /// Set the master species manually.
63 // /// @param ispecies The global indices of the master species.
64 // auto setMasterSpecies(Indices ispecies) -> void;
65 
66 // /// Set the master species manually.
67 // /// @param species The names of the master species.
68 // auto setMasterSpecies(std::vector<std::string> species) -> void;
69 
70 // /// Return the indices of the master species.
71 // /// The master species are those that serve as building blocks for the secondary species.
72 // auto indicesMasterSpecies() const -> Indices;
73 
74 // /// Return the indices of the secondary species.
75 // /// The secondary species are those that are constructed from master species.
76 // auto indicesSecondarySpecies() const -> Indices;
77 
78 // /// Return the equations of the equilibrium reactions.
79 // auto equations() const -> std::vector<ReactionEquation>;
80 
81 // /// Return the stoichiometric matrix of the reactions.
82 // auto stoichiometricMatrix() const -> MatrixXd;
83 
84 // /// Return the LU decomposition of the formula matrix `A`.
85 // auto lu() const -> const LU&;
86 
87 // private:
88 // struct Impl;
89 
90 // std::unique_ptr<Impl> pimpl;
91 // };
92 
93 // } // namespace Reaktoro