Reaktoro  v2.11.0
A unified framework for modeling chemically reactive systems
AggregateState.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 <iostream>
22 #include <string>
23 
24 namespace Reaktoro {
25 
31 enum class AggregateState
32 {
33  Gas,
34  Liquid,
35  Solid,
36  Plasma,
38  Fluid,
42  Vitreous,
43  Adsorbed,
44  Monomeric,
45  Polymeric,
47  IonExchange,
48  Aqueous,
49  Undefined
50 };
51 
53 auto operator<<(std::ostream& out, AggregateState option) -> std::ostream&;
54 
81 auto parseAggregateState(const std::string& symbol) -> AggregateState;
82 
102 auto identifyAggregateState(const std::string& name) -> AggregateState;
103 
105 auto supportedAggregateStateValues() -> std::string;
106 
107 } // namespace Reaktoro
The namespace containing all components of the Reaktoro library.
Definition: Algorithms.hpp:29
AggregateState
The aggregate states of substances according to IUPAC.
Definition: AggregateState.hpp:32
@ Adsorbed
for a species adsorbed on a substrate (an adsorbate) (symbol ads)
@ LiquidCrystal
for a liquid crystal (crystalline liquid) (symbol lc)
@ Liquid
for a liquid (symbol l)
@ Gas
for a gas or a vapour (symbol g)
@ Monomeric
for a monomeric form (symbol mon)
@ Vitreous
for a vitreous substance (a glass) (symbol vit)
@ CondensedPhase
for either the solid or the liquid state (symbol cd)
@ CrystallineSolid
for a crystalline solid (symbol cr)
@ IonExchange
for an ion exchange species (symbol ex)
@ Polymeric
for a polymeric form (symbol pol)
@ Aqueous
for a species in a solution in which water is the solvent (symbol aq)
@ Plasma
for a plasma (symbol pl)
@ Fluid
for either the gaseous or the liquid state) (symbol fl)
@ SolidSolution
for a solid solution (symbol ss)
@ Solid
for a solid (symbol s)
@ AmorphousSolid
for an amorphous solid (symbol am)
@ Undefined
when aggregate state is not explicitly provided (default)
auto supportedAggregateStateValues() -> std::string
Return a string containing the supported string values for AggregateState.
auto identifyAggregateState(const std::string &name) -> AggregateState
Identify the aggregate state in the name of a substance or chemical species.
auto parseAggregateState(const std::string &symbol) -> AggregateState
Return the AggregateState value from given aggregate state symbol.
auto operator<<(std::ostream &out, AggregateState option) -> std::ostream &
Output an AggregateState value.