Reaktoro 
A unified framework for modeling chemically reactive systems
GaseousPhase.hpp
1 // Reaktoro is a unified framework for modeling chemically reactive systems.
2 //
3 // Copyright (C) 2014-2015 Allan Leal
4 //
5 // This program is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // This program 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
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program. If not, see <http://www.gnu.org/licenses/>.
17 
18 #pragma once
19 
20 // C++ includes
21 #include <memory>
22 
23 // Reaktoro includes
24 #include <Reaktoro/Core/Phase.hpp>
25 
26 namespace Reaktoro {
27 
28 // Forward declarations
29 class GaseousMixture;
30 
32 class GaseousPhase : public Phase
33 {
34 public:
36  GaseousPhase();
37 
41  explicit GaseousPhase(const GaseousMixture& mixture);
42 
45 
49 
53 
57 
61 
69 
78 
80  auto mixture() const -> const GaseousMixture&;
81 
82 private:
83  struct Impl;
84 
85  std::shared_ptr<Impl> pimpl;
86 };
87 
88 } // namespace Reaktoro
A type used to define a phase and its attributes.
Definition: Phase.hpp:45
GaseousPhase()
Construct a default GaseousPhase instance.
Definition: GaseousPhase.cpp:45
auto setChemicalModelVanDerWaals() -> GaseousPhase &
Set the chemical model of the phase with the van der Waals equation of state.
Definition: GaseousPhase.cpp:71
auto mixture() const -> const GaseousMixture &
Return the GaseousMixture instance.
Definition: GaseousPhase.cpp:113
auto setChemicalModelIdeal() -> GaseousPhase &
Set the chemical model of the phase with the ideal gas equation of state.
Definition: GaseousPhase.cpp:64
auto setChemicalModelSpycherPruessEnnis() -> GaseousPhase &
Set the chemical model of the phase with the Spycher et al.
Definition: GaseousPhase.cpp:99
auto setChemicalModelSpycherReed() -> GaseousPhase &
Set the chemical model of the phase with the Spycher and Reed (1988) equation of state.
Definition: GaseousPhase.cpp:106
auto setChemicalModelPengRobinson() -> GaseousPhase &
Set the chemical model of the phase with the Peng-Robinson equation of state.
Definition: GaseousPhase.cpp:92
auto setChemicalModelSoaveRedlichKwong() -> GaseousPhase &
Set the chemical model of the phase with the Soave-Redlich-Kwong equation of state.
Definition: GaseousPhase.cpp:85
Class that defines a gaseous phase.
Definition: GaseousPhase.hpp:32
Provides a computational representation of a gaseous mixture.
Definition: GaseousMixture.hpp:37
The namespace containing all components of the Reaktoro library.
Definition: ChemicalScalar.hpp:24
auto setChemicalModelRedlichKwong() -> GaseousPhase &
Set the chemical model of the phase with the Redlich-Kwong equation of state.
Definition: GaseousPhase.cpp:78