Cantera  2.0
PDSS.h
Go to the documentation of this file.
1 /**
2  * @file PDSS.h
3  * Declarations for the virtual base class PDSS (pressure dependent standard state)
4  * which handles calculations for a single species in a phase
5  * (see \ref pdssthermo and class \link Cantera::PDSS PDSS\endlink).
6  */
7 /*
8  * Copyright (2006) Sandia Corporation. Under the terms of
9  * Contract DE-AC04-94AL85000 with Sandia Corporation, the
10  * U.S. Government retains certain rights in this software.
11  */
12 #ifndef CT_PDSS_H
13 #define CT_PDSS_H
14 #include "cantera/base/ct_defs.h"
15 #include "mix_defs.h"
16 
17 class WaterPropsIAPWS;
18 
19 
20 namespace Cantera
21 {
22 
23 /**
24  * @defgroup pdssthermo Species Standard-State Thermodynamic Properties
25  *
26  * In this module we describe %Cantera's treatment of
27  * pressure dependent standard states
28  * (PDSS) objects. These are objects that calculate the standard
29  * state of a single species that depends on both temperature
30  * and pressure.
31  *
32  * To compute the thermodynamic properties of multicomponent
33  * solutions, it is necessary to know something about the
34  * thermodynamic properties of the individual species present in
35  * the solution. Exactly what sort of species properties are
36  * required depends on the thermodynamic model for the
37  * solution. For a gaseous solution (i.e., a gas mixture), the
38  * species properties required are usually ideal gas properties at
39  * the mixture temperature and at a reference pressure (almost always at
40  * 1 bar). For other types of solutions, however, it may
41  * not be possible to isolate the species in a "pure" state. For
42  * example, the thermodynamic properties of, say, Na+ and Cl- in
43  * saltwater are not easily determined from data on the properties
44  * of solid NaCl, or solid Na metal, or chlorine gas. In this
45  * case, the solvation in water is fundamental to the identity of
46  * the species, and some other reference state must be used. One
47  * common convention for liquid solutions is to use thermodynamic
48  * data for the solutes in the limit of infinite dilution within the
49  * pure solvent; another convention is to reference all properties
50  * to unit molality.
51  *
52  * In defining these standard states for species in a phase, we make
53  * the following definition. A reference state is a standard state
54  * of a species in a phase limited to one particular pressure, the reference
55  * pressure. The reference state specifies the dependence of all
56  * thermodynamic functions as a function of the temperature, in
57  * between a minimum temperature and a maximum temperature. The
58  * reference state also specifies the molar volume of the species
59  * as a function of temperature. The molar volume is a thermodynamic
60  * function.
61  * A full standard state does the same thing as a reference state,
62  * but specifies the thermodynamics functions at all pressures.
63  *
64  * Class PDSS is the base class
65  * for a family of classes that compute properties of a single
66  * species in a phase at its standard states, for a range of temperatures
67  * and pressures.
68  *
69  * Phases which use the %VPSSMGr class must have their respective
70  * %ThermoPhase objects actually be derivatives of the VPStandardState
71  * class. These classes assume that there exists a standard state
72  * for each species in the phase, where the Thermodynamic functions are specified
73  * as a function of temperature and pressure. Standard state objects for each
74  * species in the phase are all derived from the PDSS virtual base class.
75  *
76  *
77  *
78  * The following classes inherit from PDSS. Each of these classes
79  * handles just one species.
80  *
81  *
82  * - PDSS_IdealGas
83  * - standardState model = "IdealGas"
84  * - This model assumes that the species in the phase obeys the
85  * ideal gas law for their pressure dependence. The manager
86  * uses a SimpleThermo object to handle the calculation of the
87  * reference state. This object adds the pressure dependencies
88  * to the thermo functions.
89  * .
90  *
91  * - PDSS_ConstVol
92  * - standardState model = "ConstVol"
93  * - This model assumes that the species in the phase obeys the
94  * constant partial molar volume pressure dependence.
95  * The manager uses a SimpleThermo object to handle the
96  * calculation of the reference state. This object adds the
97  * pressure dependencies to these thermo functions.
98  * .
99  *
100  * - PDSS_SSVol
101  * - standardState model = "constant_incompressible" || model == "constant"
102  * - standardState model = "temperature_polynomial"
103  * - standardState model = "density_temperature_polynomial"
104  * - This model assumes that the species in the phase obey a
105  * fairly general equation of state, but one that separates out
106  * the calculation of the standard state density and/or volume.
107  * Models include a cubic polynomial in temperature for either
108  * the standard state volume or the standard state density.
109  * The manager uses a SimpleThermo object to handle the
110  * calculation of the reference state. This object then adds the
111  * pressure dependencies and the volume terms to these thermo functions
112  * to complete the representation.
113  * .
114  *
115  * - PDSS_Water
116  * - standardState model = "Water"
117  * - This model assumes that
118  * Species 0 is assumed to be water, and a real equation
119  * of state is used to model the T, P behavior.
120  * Note, the model asssumes that the species is liquid water,
121  * and not steam.
122  * .
123  *
124  * - PDSS_HKFT
125  * - standardState model = "HKFT"
126  * - This model assumes that the species follows the
127  * HKFT pressure dependent equation of state
128  * .
129  * .
130  *
131  * The choice of which VPSSMGr object to be used is either implicitly made by
132  * Cantera by querying the XML data file for compatibility or it may
133  * be explicitly requested in the XML file.
134  *
135  * Normally the PDSS object is not called directly. Instead the VPSSMgr
136  * object manages the calls to the PDSS object for the entire set of
137  * species that comprise a phase. Additionally, sometimes the VPSSMgr
138  * object will not call the PDSS object at all to calculate
139  * thermodynamic properties, instead relying on its own
140  * determination/knowledge for how to calculate thermo quantities
141  * quickly given what it knows about the PDSS objects under
142  * its control.
143  *
144  * The PDSS objects may or may not utilize the SpeciesThermo
145  * reference state manager class to calculate the reference
146  * state thermodynamics functions in its own calculation. There
147  * are some classes, such as PDSS_IdealGas and PDSS+_ConstVol,
148  * which utilize the SpeciesThermo object because the
149  * calculation is very similar to the reference state
150  * calculation, while there are other classes, PDSS_Water and
151  * PDSS_HKFT, which don't utilize the reference state calculation
152  * at all, because it wouldn't make sense to. For example,
153  * using the PDSS_Water module, there isn't anything special
154  * about the reference pressure of 1 bar, so the reference state
155  * calculation would represent a duplication of work.
156  * Additionally, when evaluating thermodynamic properties
157  * at higher pressures and temperatures, near the critical point,
158  * evaluation of the thermodynamics at a pressure of 1 bar may
159  * lead to situations where the liquid is unstable, i.e., beyond
160  * the spinodal curve leading to potentially wrong evaluation
161  * results.
162  *
163  * For cases where the PDSS object doesn't use the SpeciesThermo
164  * object, a dummy SpeciesThermoInterpType object is actually
165  * installed into the SpeciesThermo object for that species.
166  * This dummy SpeciesThermoInterpType object is called a
167  * STITbyPDSS object. This object satisfies calls to
168  * SpeciesThermo member functions by actually calling the
169  * PDSS object at the reference pressure.
170  *
171  * @ingroup thermoprops
172  */
173 
174 class XML_Node;
175 class SpeciesThermo;
176 class VPStandardStateTP;
177 class VPSSMgr;
178 
179 //! Virtual base class for a species with a pressure dependent
180 //! standard state
181 /*!
182  * Virtual base class for calculation of the
183  * pressure dependent standard state for a single species
184  *
185  * Class %PDSS is the base class
186  * for a family of classes that compute properties of a set of
187  * species in their standard states at a range of temperatures
188  * and pressures. The independent variables for this object
189  * are temperature and pressure.
190  * The class may have a reference to a SpeciesThermo object
191  * which handles the calculation of the reference state temperature
192  * behavior of a subset of species.
193  *
194  * This class is analogous to the SpeciesThermoInterpType
195  * class, except that the standard state inherently incorporates
196  * the pressure dependence.
197  *
198  * The class operates on a setState temperature and pressure basis.
199  * It only recalculates the standard state when the setState functions
200  * for temperature and pressure are called.
201  *
202  * <H3> Thread Safety </H3>
203  *
204  * These classes are designed such that they are not thread safe when
205  * called by themselves. The reason for this is that they sometimes use
206  * shared SpeciesThermo resources where they set the states. This condition
207  * may be remedied in the future if we get serious about employing
208  * multithreaded capabilities by adding mutex locks to the
209  * SpeciesThermo resources.
210  *
211  * However, in many other respects they can be thread safe. They use
212  * separate memory and hold intermediate data.
213  *
214  * @ingroup pdssthermo
215  */
216 class PDSS
217 {
218 
219 public:
220 
221  /**
222  * @name Constructors
223  * @{
224  */
225 
226 
227  //! Empty Constructor
228  PDSS();
229 
230  //! Constructor that initializes the object by examining the XML entries
231  //! from the ThermoPhase object
232  /*!
233  * This function calls the constructPDSS member function.
234  *
235  * @param tp Pointer to the ThermoPhase object pertaining to the phase
236  * @param spindex Species index of the species in the phase
237  */
238  PDSS(VPStandardStateTP* tp, size_t spindex);
239 
240  //! Copy Constructor
241  /*!
242  * @param b object to be copied
243  */
244  PDSS(const PDSS& b);
245 
246  //! Assignment operator
247  /*!
248  * @param b Object to be copied
249  */
250  PDSS& operator=(const PDSS& b);
251 
252 
253  //! Destructor for the phase
254  virtual ~PDSS();
255 
256  //! Duplication routine for objects which inherit from %PDSS
257  /*!
258  * This virtual routine can be used to duplicate %PDSS objects
259  * inherited from %PDSS even if the application only has
260  * a pointer to %PDSS to work with.
261  *
262  * @return returns a pointer to the base %PDSS object type
263  */
264  virtual PDSS* duplMyselfAsPDSS() const;
265 
266  /**
267  * @}
268  * @name Utilities
269  * @{
270  */
271 
272  //! Returns the type of the standard state parameterization
273  /*!
274  * @return Returns the integer # of the parameterization
275  */
277 
278 private:
279 
280  //! Set an error within this object for an unhandled capability
281  /*!
282  * @param msg Message string for this error
283  */
284  void err(std::string msg) const;
285 
286 public:
287 
288  /**
289  * @}
290  * @name Molar Thermodynamic Properties of the Species Standard State
291  * in the Solution
292  * @{
293  */
294 
295  //! Return the molar enthalpy in units of J kmol-1
296  /*!
297  * Returns the species standard state enthalpy in J kmol-1 at the
298  * current temperature and pressure.
299  *
300  * @return returns the species standard state enthalpy in J kmol-1
301  */
302  virtual doublereal enthalpy_mole() const;
303 
304  //! Return the standard state molar enthalpy divided by RT
305  /*!
306  * Returns the species standard state enthalpy divided by RT at the
307  * current temperature and pressure.
308  *
309  * @return returns the species standard state enthalpy in unitless form
310  */
311  virtual doublereal enthalpy_RT() const;
312 
313  //! Return the molar internal Energy in units of J kmol-1
314  /*!
315  * Returns the species standard state internal Energy in J kmol-1 at the
316  * current temperature and pressure.
317  *
318  * @return returns the species standard state internal Energy in J kmol-1
319  */
320  virtual doublereal intEnergy_mole() const;
321 
322  //! Return the molar entropy in units of J kmol-1 K-1
323  /*!
324  * Returns the species standard state entropy in J kmol-1 K-1 at the
325  * current temperature and pressure.
326  *
327  * @return returns the species standard state entropy in J kmol-1 K-1
328  */
329  virtual doublereal entropy_mole() const;
330 
331  //! Return the standard state entropy divided by RT
332  /*!
333  * Returns the species standard state entropy divided by RT at the
334  * current temperature and pressure.
335  *
336  * @return returns the species standard state entropy divided by RT
337  */
338  virtual doublereal entropy_R() const;
339 
340  //! Return the molar gibbs free energy in units of J kmol-1
341  /*!
342  * Returns the species standard state gibbs free energy in J kmol-1 at the
343  * current temperature and pressure.
344  *
345  * @return returns the species standard state gibbs free energy in J kmol-1
346  */
347  virtual doublereal gibbs_mole() const;
348 
349  //! Return the molar gibbs free energy divided by RT
350  /*!
351  * Returns the species standard state gibbs free energy divided by RT at the
352  * current temperature and pressure.
353  *
354  * @return returns the species standard state gibbs free energy divided by RT
355  */
356  virtual doublereal gibbs_RT() const;
357 
358  //! Return the molar const pressure heat capacity in units of J kmol-1 K-1
359  /*!
360  * Returns the species standard state Cp in J kmol-1 K-1 at the
361  * current temperature and pressure.
362  *
363  * @return returns the species standard state Cp in J kmol-1 K-1
364  */
365  virtual doublereal cp_mole() const;
366 
367  //! Return the molar const pressure heat capacity divided by RT
368  /*!
369  * Returns the species standard state Cp divided by RT at the
370  * current temperature and pressure.
371  *
372  * @return returns the species standard state Cp divided by RT
373  */
374  virtual doublereal cp_R() const;
375 
376  //! Return the molar const volume heat capacity in units of J kmol-1 K-1
377  /*!
378  * Returns the species standard state Cv in J kmol-1 K-1 at the
379  * current temperature and pressure.
380  *
381  * @return returns the species standard state Cv in J kmol-1 K-1
382  */
383  virtual doublereal cv_mole() const;
384 
385  //! Return the molar volume at standard state
386  /*!
387  * Returns the species standard state molar volume at the
388  * current temperature and pressure
389  *
390  * @return returns the standard state molar volume divided by R
391  * units are m**3 kmol-1.
392  */
393  virtual doublereal molarVolume() const;
394 
395  //! Return the standard state density at standard state
396  /*!
397  * Returns the species standard state density at the
398  * current temperature and pressure
399  *
400  * @return returns the standard state density
401  * units are kg m-3
402  */
403  virtual doublereal density() const;
404 
405  //! Get the difference in the standard state enthalpy
406  //! between the current pressure and the reference pressure, p0.
407  virtual doublereal enthalpyDelp_mole() const;
408 
409  //! Get the difference in the standard state entropy between
410  //! the current pressure and the reference pressure, p0
411  virtual doublereal entropyDelp_mole() const;
412 
413  //! Get the difference in the standard state gibbs free energy
414  //! between the current pressure and the reference pressure, p0.
415  virtual doublereal gibbsDelp_mole() const;
416 
417  //! Get the difference in standard state heat capacity
418  //! between the current pressure and the reference pressure, p0.
419  virtual doublereal cpDelp_mole() const;
420 
421  /**
422  * @}
423  * @name Properties of the Reference State of the Species
424  * in the Solution
425  * @{
426  */
427 
428  //! Return the reference pressure for this phase.
429  doublereal refPressure() const {
430  return m_p0;
431  }
432 
433  //! return the minimum temperature
434  doublereal minTemp() const {
435  return m_minTemp;
436  }
437 
438 
439  //! return the minimum temperature
440  doublereal maxTemp() const {
441  return m_maxTemp;
442  }
443 
444  //! Return the molar gibbs free energy divided by RT at reference pressure
445  /*!
446  * Returns the species reference state gibbs free energy divided by RT at the
447  * current temperature.
448  *
449  * @return returns the reference state gibbs free energy divided by RT
450  */
451  virtual doublereal gibbs_RT_ref() const;
452 
453  //! Return the molar enthalpy divided by RT at reference pressure
454  /*!
455  * Returns the species reference state enthalpy divided by RT at the
456  * current temperature.
457  *
458  * @return returns the reference state enthalpy divided by RT
459  */
460  virtual doublereal enthalpy_RT_ref() const;
461 
462  //! Return the molar entropy divided by R at reference pressure
463  /*!
464  * Returns the species reference state entropy divided by R at the
465  * current temperature.
466  *
467  * @return returns the reference state entropy divided by R
468  */
469  virtual doublereal entropy_R_ref() const;
470 
471  //! Return the molar heat capacity divided by R at reference pressure
472  /*!
473  * Returns the species reference state heat capacity divided by R at the
474  * current temperature.
475  *
476  * @return returns the reference state heat capacity divided by R
477  */
478  virtual doublereal cp_R_ref() const;
479 
480  //! Return the molar volume at reference pressure
481  /*!
482  * Returns the species reference state molar volume at the
483  * current temperature.
484  *
485  * @return returns the reference state molar volume divided by R
486  * units are m**3 kmol-1.
487  */
488  virtual doublereal molarVolume_ref() const;
489 
490  /**
491  * @}
492  * @name Mechanical Equation of State Properties
493  * @{
494  */
495 
496  //! Returns the pressure (Pa)
497  virtual doublereal pressure() const;
498 
499  //! Sets the pressure in the object
500  /*!
501  * Currently, this sets the pressure in the PDSS object.
502  * It is indeterminant what happens to the owning VPStandardStateTP
503  * object and to the VPSSMgr object.
504  *
505  * @param pres Pressure to be set (Pascal)
506  */
507  virtual void setPressure(doublereal pres);
508 
509  //! Return the volumetric thermal expansion coefficient. Units: 1/K.
510  /*!
511  * The thermal expansion coefficient is defined as
512  * \f[
513  * \beta = \frac{1}{v}\left(\frac{\partial v}{\partial T}\right)_P
514  * \f]
515  */
516  virtual doublereal thermalExpansionCoeff() const;
517 
518  //@}
519  /// @name Partial Molar Properties of the Solution -----------------
520  //@{
521 
522  //! Set the internal temperature
523  /*!
524  * @param temp Temperature (Kelvin)
525  */
526  virtual void setTemperature(doublereal temp);
527 
528  //! Return the current stored temperature
529  doublereal temperature() const;
530 
531  //! Set the internal temperature and pressure
532  /*!
533  * @param temp Temperature (Kelvin)
534  * @param pres pressure (Pascals)
535  */
536  virtual void setState_TP(doublereal temp, doublereal pres);
537 
538  //! Set the internal temperature and density
539  /*!
540  * @param temp Temperature (Kelvin)
541  * @param rho Density (kg m-3)
542  */
543  virtual void setState_TR(doublereal temp, doublereal rho);
544 
545  /**
546  * @}
547  * @name Miscellaneous properties of the standard state
548  * @{
549  */
550 
551  //! critical temperature
552  virtual doublereal critTemperature() const;
553 
554  //! critical pressure
555  virtual doublereal critPressure() const;
556 
557  //! critical density
558  virtual doublereal critDensity() const;
559 
560  //! saturation pressure
561  /*!
562  * @param T Temperature (Kelvin)
563  */
564  virtual doublereal satPressure(doublereal T);
565 
566  //! Return the molecular weight of the species
567  //! in units of kg kmol-1
568  doublereal molecularWeight() const;
569 
570  //! Set the molecular weight of the species
571  /*!
572  * @param mw Molecular Weight in kg kmol-1
573  */
574  void setMolecularWeight(doublereal mw);
575 
576  /**
577  * @}
578  * @name Initialization of the Object
579  * @{
580  */
581 
582 
583  //! Initialization routine for all of the shallow pointers
584  /*!
585  * This is a cascading call, where each level should call the
586  * the parent level.
587  *
588  * The initThermo() routines get called before the initThermoXML() routines
589  * from the constructPDSSXML() routine.
590  *
591  *
592  * Calls initPtrs();
593  */
594  virtual void initThermo();
595 
596  //! Initialization routine for the PDSS object based on the phaseNode
597  /*!
598  * This is a cascading call, where each level should call the
599  * the parent level.
600  *
601  * @param phaseNode Reference to the phase Information for the phase
602  * that owns this species.
603  *
604  * @param id Optional parameter identifying the name of the
605  * phase. If none is given, the first XML
606  * phase element will be used.
607  */
608  virtual void initThermoXML(const XML_Node& phaseNode, std::string& id);
609 
610 
611  //! This utility function reports back the type of
612  //! parameterization and all of the parameters for the
613  //! species, index.
614  /*!
615  *
616  * @param kindex Species index
617  * @param type Integer type of the standard type
618  * @param c Vector of coefficients used to set the
619  * parameters for the standard state.
620  * @param minTemp output - Minimum temperature
621  * @param maxTemp output - Maximum temperature
622  * @param refPressure output - reference pressure (Pa).
623  *
624  */
625  virtual void reportParams(size_t& kindex, int& type, doublereal* const c,
626  doublereal& minTemp, doublereal& maxTemp,
627  doublereal& refPressure) const;
628 
629 
630 private:
631  //! Initialize all of the internal shallow pointers that can be initialized
632  /*!
633  * This routine isn't virtual. It's only applicable for the current class
634  */
635  void initPtrs();
636 
637 public:
638  //! Initialize or Reinitialize all shallow pointers in the object
639  /*!
640  * This command is called to reinitialize all shallow pointers in the
641  * object. It's needed for the duplicator capability
642  *
643  * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object
644  * This object must have already been malloced.
645  *
646  * @param vpssmgr_ptr Pointer to the variable pressure standard state
647  * calculator for this phase
648  *
649  * @param spthermo_ptr Pointer to the optional SpeciesThermo object
650  * that will handle the calculation of the reference
651  * state thermodynamic coefficients.
652  */
653  virtual void initAllPtrs(VPStandardStateTP* vptp_ptr, VPSSMgr* vpssmgr_ptr,
654  SpeciesThermo* spthermo_ptr);
655 
656  //@}
657 
658 protected:
659 
660  //! Enumerated type describing the type of the PDSS object
662 
663  //! Current temperature used by the PDSS object
664  mutable doublereal m_temp;
665 
666  //! State of the system - pressure
667  mutable doublereal m_pres;
668 
669  //! Reference state pressure of the species.
670  doublereal m_p0;
671 
672  //! Minimum temperature
673  doublereal m_minTemp;
674 
675  //! Maximum temperature
676  doublereal m_maxTemp;
677 
678  //! Thermophase which this species belongs to.
679  /*!
680  * Note, in some
681  * applications (i.e., mostly testing applications, this may be a null
682  * value. Applications should test whether this is null before usage.
683  */
685 
686  //! Pointer to the VPSS manager for this object
688 
689  /**
690  * Molecular Weight of the species
691  */
692  doublereal m_mw;
693 
694  /**
695  * Species index in the thermophase corresponding to this species.
696  */
697  size_t m_spindex;
698 
699  //! Pointer to the species thermodynamic property manager.
700  /*!
701  * This is a copy of the pointer in the ThermoPhase object.
702  * Note, this object doesn't own the pointer.
703  * If the SpeciesThermo ThermoPhase object doesn't know
704  * or doesn't control the calculation, this will be
705  * set to zero.
706  */
708 
709  //! Reference state enthalpy divided by RT.
710  /*!
711  * Storage for the thermo properties is provided by
712  * VPSSMgr. This object owns a shallow pointer.
713  * Calculated at the current value of T and m_p0
714  */
715  doublereal* m_h0_RT_ptr;
716 
717  //! Reference state heat capacity divided by R.
718  /*!
719  * Storage for the thermo properties is provided by
720  * VPSSMgr.
721  * Calculated at the current value of T and m_p0
722  */
723  doublereal* m_cp0_R_ptr;
724 
725  //! Reference state entropy divided by R.
726  /*!
727  * Storage for the thermo properties is provided by
728  * VPSSMgr.
729  * Calculated at the current value of T and m_p0
730  */
731  doublereal* m_s0_R_ptr;
732 
733  //! Reference state gibbs free energy divided by RT.
734  /*!
735  * Calculated at the current value of T and m_p0
736  */
737  doublereal* m_g0_RT_ptr;
738 
739  //! Reference state molar volume (m3 kg-1)
740  /*!
741  * Storage for the thermo properties is provided by
742  * VPSSMgr.
743  * Calculated at the current value of T and m_p0
744  */
745  doublereal* m_V0_ptr;
746 
747  //! Standard state enthalpy divided by RT.
748  /*!
749  * Storage for the thermo properties is provided by
750  * VPSSMgr.
751  * Calculated at the current value of T and P
752  */
753  doublereal* m_hss_RT_ptr;
754 
755  //! Standard state heat capacity divided by R.
756  /*!
757  * Storage for the thermo properties is provided by
758  * VPSSMgr.
759  * Calculated at the current value of T and P
760  */
761  doublereal* m_cpss_R_ptr;
762 
763  //! Standard state entropy divided by R.
764  /*!
765  * Storage for the thermo properties is provided by
766  * VPSSMgr.
767  * Calculated at the current value of T and P
768  */
769  doublereal* m_sss_R_ptr;
770 
771  //! Standard state gibbs free energy divided by RT.
772  /*!
773  * Storage for the thermo properties is provided by
774  * VPSSMgr.
775  * Calculated at the current value of T and P
776  */
777  doublereal* m_gss_RT_ptr;
778 
779  //! Standard State molar volume (m3 kg-1)
780  /*!
781  * Storage for the thermo properties is provided by
782  * VPSSMgr.
783  * Calculated at the current value of T and P
784  */
785  doublereal* m_Vss_ptr;
786 
787 };
788 
789 }
790 
791 #endif