1 //! @file vcs_species_thermo.h
2 
3 // This file is part of Cantera. See License.txt in the top-level directory or
4 // at https://cantera.org/license.txt for license and copyright information.
5 
6 #ifndef VCS_SPECIES_THERMO_H
7 #define VCS_SPECIES_THERMO_H
8 
9 #include "cantera/equil/vcs_defs.h"
10 
11 namespace Cantera
12 {
13 
14 class vcs_VolPhase;
15 
16 // Models for the species standard state Naught temperature dependence
17 #define VCS_SS0_NOTHANDLED -1
18 #define VCS_SS0_CONSTANT 0
19 //#define VCS_SS0_NASA_POLY 1
20 #define VCS_SS0_CONSTANT_CP 2
21 
22 // Models for the species standard state extra pressure dependence
23 #define VCS_SSSTAR_NOTHANDLED -1
24 #define VCS_SSSTAR_CONSTANT 0
25 #define VCS_SSSTAR_IDEAL_GAS 1
26 
27 /*!
28  * Identifies the thermo model for the species. This structure is shared by
29  * volumetric and surface species. However, each will have its own types of
30  * thermodynamic models. These quantities all have appropriate units.
31  */
32 class VCS_SPECIES_THERMO
33 {
34     /*
35      * All objects are public for ease of development
36      */
37 public:
38     //! Index of the phase that this species belongs to.
39     size_t IndexPhase;
40 
41     //! Index of this species in the current phase.
42     size_t IndexSpeciesPhase;
43 
44     //! Pointer to the owning phase object.
45     vcs_VolPhase* OwningPhase;
46 
47     //! Integer representing the models for the species standard state Naught
48     //! temperature dependence. They are listed above and start with VCS_SS0_...
49     int SS0_Model;
50 
51     //! Internal storage of the last calculation of the reference naught Gibbs
52     //! free energy at SS0_TSave. (always in units of Kelvin)
53     double SS0_feSave;
54 
55     //! Internal storage of the last temperature used in the calculation of the
56     //! reference naught Gibbs free energy. units = kelvin
57     double SS0_TSave;
58 
59     //! Base temperature used in the VCS_SS0_CONSTANT_CP model
60     double SS0_T0;
61 
62     //! Base enthalpy used in the VCS_SS0_CONSTANT_CP model
63     double SS0_H0;
64 
65     //! Base entropy used in the VCS_SS0_CONSTANT_CP model
66     double SS0_S0;
67 
68     //! Base heat capacity used in the VCS_SS0_CONSTANT_CP model
69     double SS0_Cp0;
70 
71     //! Value of the pressure for the reference state.
72     //! defaults to 1.01325E5 = 1 atm
73     double SS0_Pref;
74 
75     //! Integer value representing the star state model.
76     int SSStar_Model;
77 
78     //! Models for the standard state volume of each species
79     int SSStar_Vol_Model;
80 
81     //! parameter that is used in the VCS_SSVOL_CONSTANT model.
82     double SSStar_Vol0;
83 
VCS_SPECIES_THERMO()84     VCS_SPECIES_THERMO()
85          : IndexPhase(0)
86          , IndexSpeciesPhase(0)
87          , OwningPhase(0)
88          , SS0_Model(VCS_SS0_CONSTANT)
89          , SS0_feSave(0.0)
90          , SS0_TSave(-90.0)
91          , SS0_T0(273.15)
92          , SS0_H0(0.0)
93          , SS0_S0(0.0)
94          , SS0_Cp0(0.0)
95          , SS0_Pref(1.01325E5)
96          , SSStar_Model(VCS_SSSTAR_CONSTANT)
97          , SSStar_Vol_Model(VCS_SSVOL_IDEALGAS)
98          , SSStar_Vol0(-1.0)
99     {
100     }
101 };
102 
103 }
104 
105 #endif
106