Cantera  2.0
vcs_SpeciesProperties.h
1 
2 #ifndef VCS_SPECIES_PROPERTIES_H
3 #define VCS_SPECIES_PROPERTIES_H
4 
5 #include <vector>
6 #include <string>
7 
8 namespace VCSnonideal
9 {
10 
11 class VCS_SPECIES_THERMO;
12 class vcs_VolPhase;
13 
14 class vcs_SpeciesProperties
15 {
16 
17 public:
18  size_t IndexPhase;
19  size_t IndexSpeciesPhase;
20  vcs_VolPhase* OwningPhase;
21  size_t NumElements;
22 
23  //! Name of the species
24  std::string SpName;
25 
26  VCS_SPECIES_THERMO* SpeciesThermo; /* Pointer to the thermo
27  structure for this species */
28  double WtSpecies; /* Molecular Weight of the species (gm/mol) */
29 
30  //! Column of the formula matrix, comprising the
31  //! element composition of the species */
32  std::vector<double> FormulaMatrixCol;
33 
34  double Charge; /* Charge state of the species -> This may
35  be duplication of what's in the
36  FormulaMatrixCol entries. However, it's prudent
37  to separate it out. */
38  int SurfaceSpecies; /* True if this species belongs to a surface phase */
39  /*
40  * Various Calculated Quantities that are appropriate to
41  * keep copies of at this level.
42  */
43  double VolPM; /* Partial molar volume of the species */
44  double ReferenceMoleFraction; /* Representative value of the mole
45  fraction of this species in a phase.
46  This value is used for convergence issues
47  and for calculation of numerical derivs */
48 
49  /*
50  * constructor and destructor
51  */
52  vcs_SpeciesProperties(size_t indexPhase, size_t indexSpeciesPhase,
53  vcs_VolPhase* owning);
54  virtual ~vcs_SpeciesProperties();
55 
56  /*
57  * Copy constructor and assignment operator
58  */
59  vcs_SpeciesProperties(const vcs_SpeciesProperties& b);
60  vcs_SpeciesProperties& operator=(const vcs_SpeciesProperties& b);
61 };
62 
63 }
64 
65 #endif