1 //! @file vcs_SpeciesProperties.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_PROPERTIES_H
7 #define VCS_SPECIES_PROPERTIES_H
8 
9 #include "cantera/base/ct_defs.h"
10 
11 namespace Cantera
12 {
13 
14 class VCS_SPECIES_THERMO;
15 class vcs_VolPhase;
16 
17 //! Properties of a single species.
18 class vcs_SpeciesProperties
19 {
20 public:
21     size_t IndexPhase;
22     size_t IndexSpeciesPhase;
23     vcs_VolPhase* OwningPhase;
24     size_t NumElements;
25 
26     //! Name of the species
27     std::string SpName;
28 
29     //! Pointer to the thermo structure for this species
30     VCS_SPECIES_THERMO* SpeciesThermo;
31 
32     //! Molecular Weight of the species (gm/mol)
33     double WtSpecies;
34 
35     //! Column of the formula matrix, comprising the
36     //! element composition of the species
37     vector_fp FormulaMatrixCol;
38 
39     //! Charge state of the species -> This may be duplication of what's in the
40     //! FormulaMatrixCol entries. However, it's prudent to separate it out.
41     double Charge;
42 
43     //! True if this species belongs to a surface phase
44     int SurfaceSpecies;
45 
46     /*
47      * Various Calculated Quantities that are appropriate to keep copies of at
48      * this level.
49      */
50 
51     //! Partial molar volume of the species
52     double VolPM;
53 
54     //! Representative value of the mole fraction of this species in a phase.
55     //! This value is used for convergence issues and for calculation of
56     //! numerical derivatives
57     double ReferenceMoleFraction;
58 
vcs_SpeciesProperties(size_t indexPhase,size_t indexSpeciesPhase,vcs_VolPhase * owning)59     vcs_SpeciesProperties(size_t indexPhase, size_t indexSpeciesPhase,
60                           vcs_VolPhase* owning)
61         : IndexPhase(indexPhase)
62         , IndexSpeciesPhase(indexSpeciesPhase)
63         , OwningPhase(owning)
64         , SpeciesThermo(0)
65         , WtSpecies(0.0)
66         , Charge(0.0)
67         , SurfaceSpecies(0)
68         , VolPM(0.0)
69         , ReferenceMoleFraction(1.0E-6)
70     {
71     }
72 
~vcs_SpeciesProperties()73     virtual ~vcs_SpeciesProperties() {}
74 };
75 
76 }
77 
78 #endif
79