Reaktoro  v2.11.0
A unified framework for modeling chemically reactive systems
ChemicalOutput.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 <vector>
23 // #include <sstream>
24 // #include <string>
25 
26 // namespace Reaktoro {
27 
28 // // Forward declarations
29 // class ChemicalState;
30 // class ChemicalSystem;
31 // class ReactionSystem;
32 // class StringList;
33 
34 // /// A type used to output sequence of chemical states to a file or terminal.
35 // class ChemicalOutput
36 // {
37 // public:
38 // /// Construct a default ChemicalOutput instance.
39 // ChemicalOutput();
40 
41 // /// Construct a ChemicalOutput instance with given ChemicalSystem instance.
42 // explicit ChemicalOutput(const ChemicalSystem& system);
43 
44 // /// Construct a ChemicalOutput instance with given ReactionSystem instance.
45 // explicit ChemicalOutput(const ReactionSystem& reactions);
46 
47 // /// Destroy this ChemicalOutput instance.
48 // virtual ~ChemicalOutput();
49 
50 // /// Set the name of the output file.
51 // auto filename(std::string filename) -> void;
52 
53 // /// Return the name of the output file.
54 // auto filename() const -> std::string;
55 
56 // /// Set a sufix word to the output file name.
57 // auto suffix(std::string name) -> void;
58 
59 // /// Return the suffix word of the output file name.
60 // auto suffix() const -> std::string;
61 
62 // /// Return the base name of output file name.
63 // auto basename() const -> std::string;
64 
65 // /// Return the extension name of output file name.
66 // auto extension() const -> std::string;
67 
68 // /// Add a quantity to be output.
69 // /// @param quantity The quantity name.
70 // auto add(std::string quantity) -> void;
71 
72 // /// Add a quantity to be output.
73 // /// @param quantity The quantity name.
74 // /// @param label The label to be used in the headings.
75 // auto add(std::string quantity, std::string label) -> void;
76 
77 // /// Set the titles of extra columns in the output file.
78 // auto attachments(std::vector<std::string> titles) -> void;
79 
80 // /// Attach value to extra column data in the output file.
81 // auto attach(int value) -> void;
82 
83 // /// Attach extra column data in the output file.
84 // auto attach(double value) -> void;
85 
86 // /// Attach extra column data in the output file.
87 // auto attach(std::string value) -> void;
88 
89 // /// Set the floating-point precision in the output.
90 // auto precision(int val) -> void;
91 
92 // /// Enable or disable output in scientific format.
93 // auto scientific(bool enable) -> void;
94 
95 // /// Enable or disable the output to the terminal.
96 // auto terminal(bool enabled) -> void;
97 
98 // /// Return the name of the quantities in the output file.
99 // auto quantities() const -> std::vector<std::string>;
100 
101 // /// Return the headings of the output file.
102 // auto headings() const -> std::vector<std::string>;
103 
104 // /// Open the output file.
105 // auto open() -> void;
106 
107 // /// Update the output with a new chemical state and its tag.
108 // auto update(const ChemicalState& state, double t) -> void;
109 
110 // /// Close the output file.
111 // auto close() -> void;
112 
113 // /// Convert this ChemicalOutput instance to bool.
114 // operator bool() const;
115 
116 // private:
117 // struct Impl;
118 
119 // std::shared_ptr<Impl> pimpl;
120 // };
121 
122 // } // namespace Reaktoro