PDSS.h

Go to the documentation of this file.
00001 /**
00002  *  @file PDSS.h
00003  *    Declarations for the virtual base class PDSS (pressure dependent standard state)
00004  *    which handles calculations for a single species in a phase
00005  *    (see \ref pdssthermo and class \link Cantera::PDSS PDSS\endlink).
00006  */
00007 /*
00008  * Copywrite (2006) Sandia Corporation. Under the terms of
00009  * Contract DE-AC04-94AL85000 with Sandia Corporation, the
00010  * U.S. Government retains certain rights in this software.
00011  */
00012 /*
00013  *  $Id: PDSS.h 279 2009-12-05 19:08:43Z hkmoffa $
00014  */
00015 
00016 #ifndef CT_PDSS_H
00017 #define CT_PDSS_H
00018 #include "ct_defs.h"
00019 #include "mix_defs.h"
00020 
00021 class WaterPropsIAPWS;
00022 
00023 
00024 namespace Cantera {
00025 
00026   /**
00027    * @defgroup pdssthermo Species Standard-State Thermodynamic Properties 
00028    *
00029    *   In this module we describe %Cantera's treatment of 
00030    *   pressure dependent standard states
00031    *   (PDSS) objects. These are objects that calculate the standard
00032    *   state of a single species that depends on both temperature
00033    *   and pressure.
00034    *
00035    *   To compute the thermodynamic properties of multicomponent
00036    *   solutions, it is necessary to know something about the
00037    *   thermodynamic properties of the individual species present in
00038    *   the solution. Exactly what sort of species properties are
00039    *   required depends on the thermodynamic model for the
00040    *   solution. For a gaseous solution (i.e., a gas mixture), the
00041    *   species properties required are usually ideal gas properties at
00042    *   the mixture temperature and at a reference pressure (almost always at
00043    *   1 bar). For other types of solutions, however, it may
00044    *   not be possible to isolate the species in a "pure" state. For
00045    *   example, the thermodynamic properties of, say, Na+ and Cl- in
00046    *   saltwater are not easily determined from data on the properties
00047    *   of solid NaCl, or solid Na metal, or chlorine gas. In this
00048    *   case, the solvation in water is fundamental to the identity of
00049    *   the species, and some other reference state must be used. One
00050    *   common convention for liquid solutions is to use thermodynamic
00051    *   data for the solutes in the limit of infinite dilution within the
00052    *   pure solvent; another convention is to reference all properties
00053    *   to unit molality.
00054    *
00055    *   In defining these standard states for species in a phase, we make
00056    *   the following definition. A reference state is a standard state
00057    *   of a species in a phase limited to one particular pressure, the reference
00058    *   pressure. The reference state specifies the dependence of all
00059    *   thermodynamic functions as a function of the temperature, in
00060    *   between a minimum temperature and a maximum temperature. The
00061    *   reference state also specifies the molar volume of the species
00062    *   as a function of temperature. The molar volume is a thermodynamic
00063    *   function.
00064    *   A full standard state does the same thing as a reference state,
00065    *   but specifies the thermodynamics functions at all pressures.
00066    *
00067    *   Class PDSS is the base class
00068    *   for a family of classes that compute properties of a single
00069    *   species in a phase at its standard states, for a range of temperatures
00070    *   and pressures.
00071    *   
00072    *   Phases which use the %VPSSMGr class must have their respective
00073    *   %ThermoPhase objects actually be derivatives of the VPStandardState
00074    *   class. These classes assume that there exists a standard state
00075    *   for each species in the phase, where the Thermodynamic functions are specified
00076    *   as a function of temperature and pressure.  Standard state objects for each
00077    *   species in the phase are all derived from the PDSS virtual base class. 
00078    *
00079    *
00080    *
00081    *  The following classes inherit from PDSS. Each of these classes
00082    *  handles just one species.
00083    *
00084    *
00085    *   - PDSS_IdealGas
00086    *      - standardState model = "IdealGas"
00087    *      - This model assumes that the species in the phase obeys the
00088    *        ideal gas law for their pressure dependence. The manager
00089    *        uses a SimpleThermo object to handle the calculation of the
00090    *        reference state. This object adds the pressure dependencies
00091    *        to the thermo functions.
00092    *      .
00093    *
00094    *   - PDSS_ConstVol
00095    *      - standardState model = "ConstVol"
00096    *      - This model assumes that the species in the phase obeys the
00097    *        constant partial molar volume pressure dependence.
00098    *        The manager uses a SimpleThermo object to handle the 
00099    *        calculation of the reference state. This object adds the
00100    *        pressure dependencies to these thermo functions.
00101    *      .
00102    *
00103    *   - PDSS_SSVol
00104    *      - standardState model = "constant_incompressible" || model == "constant"
00105    *      - standardState model = "temperature_polynomial"
00106    *      - standardState model = "density_temperature_polynomial"
00107    *      - This model assumes that the species in the phase obey a
00108    *        fairly general equation of state, but one that separates out
00109    *        the calculation of the standard state density and/or volume.
00110    *        Models include a cubic polynomial in temperature for either
00111    *        the standard state volume or the standard state density.
00112    *        The manager uses a SimpleThermo object to handle the
00113    *        calculation of the reference state. This object then adds the
00114    *        pressure dependencies and the volume terms to these thermo functions
00115    *        to complete the representation.
00116    *      .
00117    *
00118    *   - PDSS_Water
00119    *      - standardState model = "Water"
00120    *      - This model assumes that
00121    *        Species 0 is assumed to be water, and a real equation
00122    *        of state is used to model the T, P behavior.
00123    *        Note, the model asssumes that the species is liquid water,
00124    *        and not steam. 
00125    *      .
00126    *
00127    *   - PDSS_HKFT
00128    *      - standardState model = "HKFT"
00129    *      - This model assumes that the species follows the
00130    *        HKFT pressure dependent equation of state
00131    *      .
00132    *   .
00133    *
00134    *  The choice of which VPSSMGr object to be used is either implicitly made by
00135    *  Cantera by querying the XML data file for compatibility or it may
00136    *  be explicitly requested in the XML file. 
00137    *
00138    *  Normally the PDSS object is not called directly. Instead the VPSSMgr 
00139    *  object manages the calls to the PDSS object for the entire set of
00140    *  species that comprise a phase. Additionally, sometimes the VPSSMgr
00141    *  object will not call the PDSS object at all to calculate 
00142    *  thermodynamic properties, instead relying on its own
00143    *  determination/knowledge for how to calculate thermo quantities
00144    *  quickly given what it knows about the PDSS objects under
00145    *  its control.
00146    *
00147    *  The PDSS objects may or may not utilize the SpeciesThermo 
00148    *  reference state manager class to calculate the reference
00149    *  state thermodynamics functions in its own calculation. There
00150    *  are some classes, such as PDSS_IdealGas and PDSS+_ConstVol,
00151    *  which utilize the SpeciesThermo object because the
00152    *  calculation is very similar to the reference state 
00153    *  calculation, while there are other classes, PDSS_Water and
00154    *  PDSS_HKFT, which don't utilize the reference state calculation
00155    *  at all, because it wouldn't make sense to. For example,
00156    *  using the PDSS_Water module, there isn't anything special
00157    *  about the reference pressure of 1 bar, so the reference state
00158    *  calculation would represent a duplication of work.
00159    *  Additionally, when evaluating thermodynamic properties 
00160    *  at higher pressures and temperatures, near the critical point,
00161    *  evaluation of the thermodynamics at a pressure of 1 bar may
00162    *  lead to situations where the liquid is unstable, i.e., beyond
00163    *  the spinodal curve leading to potentially wrong evalulation 
00164    *  results. 
00165    *
00166    *  For cases where the PDSS object doesn't use the SpeciesThermo
00167    *  object, a dummy SpeciesThermoInterpType object is actually
00168    *  installed into the SpeciesThermo object for that species.
00169    *  This dummy SpeciesThermoInterpType object is called a
00170    *  STITbyPDSS object. This object satisfies calls to 
00171    *  SpeciesThermo member functions by actually calling the
00172    *  PDSS object at the reference pressure.
00173    *  
00174    * @ingroup thermoprops
00175    */
00176 
00177   class XML_Node;
00178   class SpeciesThermo;
00179   class VPStandardStateTP;
00180   class VPSSMgr;
00181  
00182   //! Virtual base class for a species with a pressure dependent 
00183   //! standard state 
00184   /*!
00185    * Virtual base class for calculation of the
00186    * pressure dependent standard state for a single species
00187    * 
00188    * Class %PDSS is the base class
00189    * for a family of classes that compute properties of a set of
00190    * species in their standard states at a range of temperatures
00191    * and pressures. The independent variables for this object
00192    * are temperature and pressure.
00193    * The class may mave a reference to a SpeciesThermo object
00194    * which handles the calculation of the reference state temperature
00195    * behavior of a subset of species.
00196    *
00197    * This class is analagous to the SpeciesThermoInterpType
00198    * class, except that the standard state inherently incorporates
00199    * the pressure dependence.
00200    *
00201    * The class operates on a setState temperature and pressure basis.
00202    * It only recalculates the standard state when the setState functions
00203    * for temperature and pressure are called. 
00204    *
00205    * <H3> Thread Safety </H3>
00206    *
00207    *   These classes are designed such that they are not thread safe when
00208    *   called by themselves. The reason for this is that they sometimes use
00209    *   shared SpeciesThermo resources where they set the states. This condition
00210    *   may be remedied in the future if we get serious about employing 
00211    *   multithreaded capabilities by adding mutex locks to the 
00212    *   SpeciesThermo resources. 
00213    *
00214    *   However, in many other respects they can be thread safe. They use
00215    *   separate memory and hold intermediate data. 
00216    *
00217    * @ingroup pdssthermo
00218    */
00219   class PDSS {
00220 
00221   public:
00222 
00223     /**
00224      * @name  Constructors
00225      * @{
00226      */
00227 
00228    
00229     //! Empty Constructor
00230     PDSS();
00231 
00232     //! Constructor that initializes the object by examining the XML entries
00233     //! from the ThermoPhase object
00234     /*!
00235      *  This function calls the constructPDSS member function.
00236      * 
00237      *  @param tp        Pointer to the ThermoPhase object pertaining to the phase
00238      *  @param spindex   Species index of the species in the phase
00239      */
00240     PDSS(VPStandardStateTP *tp, int spindex);
00241 
00242     //! Copy Constructor
00243     /*!
00244      * @param b object to be copied
00245      */
00246     PDSS(const PDSS &b);
00247 
00248     //! Assignment operator
00249     /*!
00250      * @param b Object to be copied
00251      */
00252     PDSS& operator=(const PDSS&b);
00253 
00254 
00255     //! Destructor for the phase
00256     virtual ~PDSS();
00257 
00258     //! Duplication routine for objects which inherit from %PDSS
00259     /*!
00260      *  This virtual routine can be used to duplicate %PDSS  objects
00261      *  inherited from %PDSS even if the application only has
00262      *  a pointer to %PDSS to work with.
00263      *
00264      * @return returns a pointer to the base %PDSS object type
00265      */
00266     virtual PDSS *duplMyselfAsPDSS() const;
00267         
00268     /**
00269      * @}   
00270      * @name  Utilities
00271      * @{
00272      */
00273 
00274     //! Returns the type of the standard state parameterization
00275     /*!
00276      * @return Returns the integer # of the parameterization
00277      */
00278     PDSS_enumType reportPDSSType() const;
00279 
00280   private:
00281 
00282     //! Set an error within this object for an unhandled capability
00283     /*!
00284      * @param msg    Message string for this error
00285      */
00286     void err(std::string msg) const;
00287     
00288   public:
00289 
00290     /**
00291      * @} 
00292      * @name  Molar Thermodynamic Properties of the Species Standard State
00293      *        in the Solution
00294      * @{
00295      */
00296    
00297     //! Return the molar enthalpy in units of J kmol-1
00298     /*!
00299      * Returns the species standard state enthalpy in J kmol-1 at the
00300      * current temperature and pressure.
00301      *
00302      * @return returns the species standard state enthalpy in  J kmol-1
00303      */
00304     virtual doublereal enthalpy_mole() const;
00305 
00306     //! Return the standard state molar enthalpy divided by RT
00307     /*!
00308      * Returns the species standard state enthalpy divided by RT at the
00309      * current temperature and pressure.
00310      *
00311      * @return returns the species standard state enthalpy in unitless form
00312      */
00313     virtual doublereal enthalpy_RT() const;
00314 
00315     //! Return the molar internal Energy in units of J kmol-1
00316     /*!
00317      * Returns the species standard state internal Energy in J kmol-1 at the
00318      * current temperature and pressure.
00319      *
00320      * @return returns the species standard state internal Energy in  J kmol-1
00321      */
00322     virtual doublereal intEnergy_mole() const;
00323 
00324     //! Return the molar entropy in units of J kmol-1 K-1
00325     /*!
00326      * Returns the species standard state entropy in J kmol-1 K-1 at the
00327      * current temperature and pressure.
00328      *
00329      * @return returns the species standard state entropy in J kmol-1 K-1
00330      */
00331     virtual doublereal entropy_mole() const;
00332 
00333     //! Return the standard state entropy divided by RT
00334     /*!
00335      * Returns the species standard state entropy divided by RT at the
00336      * current temperature and pressure.
00337      *
00338      * @return returns the species standard state entropy divided by RT
00339      */
00340     virtual doublereal entropy_R() const;
00341 
00342     //! Return the molar gibbs free energy in units of J kmol-1
00343     /*!
00344      * Returns the species standard state gibbs free energy in J kmol-1 at the
00345      * current temperature and pressure.
00346      *
00347      * @return returns the species standard state gibbs free energy in  J kmol-1
00348      */
00349     virtual doublereal gibbs_mole() const;
00350 
00351     //! Return the molar gibbs free energy divided by RT
00352     /*!
00353      * Returns the species standard state gibbs free energy divided by RT at the
00354      * current temperature and pressure.
00355      *
00356      * @return returns the species standard state gibbs free energy divided by RT
00357      */
00358     virtual doublereal gibbs_RT() const;
00359 
00360     //! Return the molar const pressure heat capacity in units of J kmol-1 K-1
00361     /*!
00362      * Returns the species standard state Cp in J kmol-1 K-1 at the
00363      * current temperature and pressure.
00364      *
00365      * @return returns the species standard state Cp in J kmol-1 K-1
00366      */
00367     virtual doublereal cp_mole() const;
00368 
00369     //! Return the molar const pressure heat capacity divided by RT
00370     /*!
00371      * Returns the species standard state Cp divided by RT at the
00372      * current temperature and pressure.
00373      *
00374      * @return returns the species standard state Cp divided by RT
00375      */
00376     virtual doublereal cp_R() const;
00377 
00378     //! Return the molar const volume heat capacity in units of J kmol-1 K-1
00379     /*!
00380      * Returns the species standard state Cv in J kmol-1 K-1 at the
00381      * current temperature and pressure.
00382      *
00383      * @return returns the species standard state Cv in J kmol-1 K-1
00384      */
00385     virtual doublereal cv_mole() const;
00386 
00387     //! Return the molar volume at standard state
00388     /*!
00389      * Returns the species standard state molar volume at the
00390      * current temperature and pressure
00391      *
00392      * @return returns the standard state molar volume divided by R
00393      *             units are m**3 kmol-1.
00394      */
00395     virtual doublereal molarVolume() const;
00396 
00397     //! Return the standard state density at standard state
00398     /*!
00399      * Returns the species standard state density at the
00400      * current temperature and pressure
00401      *
00402      * @return returns the standard state density
00403      *             units are kg m-3
00404      */
00405     virtual doublereal density() const;
00406  
00407     //! Get the difference in the standard state enthalpy
00408     //! between the current pressure and the reference pressure, p0.
00409     virtual doublereal enthalpyDelp_mole() const;
00410 
00411     //! Get the difference in the standard state entropy between
00412     //! the current pressure and the reference pressure, p0
00413     virtual doublereal entropyDelp_mole() const;
00414 
00415     //! Get the difference in the standard state gibbs free energy
00416     //! between the current pressure and the reference pressure, p0.
00417     virtual doublereal gibbsDelp_mole() const;
00418 
00419     //! Get the difference in standard state heat capacity
00420     //! between the current pressure and the reference pressure, p0.
00421     virtual doublereal cpDelp_mole() const;
00422 
00423     /**
00424      * @} 
00425      * @name Properties of the Reference State of the Species
00426      *       in the Solution 
00427      * @{
00428      */
00429 
00430     //! Return the reference pressure for this phase.
00431     doublereal refPressure() const {
00432       return m_p0;
00433     }
00434 
00435     //! return the minimum temperature 
00436     doublereal minTemp() const {
00437       return m_minTemp;
00438     }
00439 
00440 
00441     //! return the minimum temperature 
00442     doublereal maxTemp() const {
00443       return m_maxTemp;
00444     }
00445 
00446     //! Return the molar gibbs free energy divided by RT at reference pressure
00447     /*!
00448      * Returns the species reference state gibbs free energy divided by RT at the
00449      * current temperature.
00450      *
00451      * @return returns the reference state gibbs free energy divided by RT
00452      */
00453     virtual doublereal gibbs_RT_ref() const;
00454 
00455     //! Return the molar enthalpy divided by RT at reference pressure
00456     /*!
00457      * Returns the species reference state enthalpy divided by RT at the
00458      * current temperature.
00459      *
00460      * @return returns the reference state enthalpy divided by RT
00461      */
00462     virtual doublereal enthalpy_RT_ref() const;
00463 
00464     //! Return the molar entropy divided by R at reference pressure
00465     /*!
00466      * Returns the species reference state entropy divided by R at the
00467      * current temperature.
00468      *
00469      * @return returns the reference state entropy divided by R
00470      */
00471     virtual doublereal entropy_R_ref() const;
00472 
00473     //! Return the molar heat capacity divided by R at reference pressure
00474     /*!
00475      * Returns the species reference state heat capacity divided by R at the
00476      * current temperature.
00477      *
00478      * @return returns the reference state heat capacity divided by R
00479      */
00480     virtual doublereal cp_R_ref() const;
00481 
00482     //! Return the molar volume at reference pressure
00483     /*!
00484      * Returns the species reference state molar volume at the
00485      * current temperature.
00486      *
00487      * @return returns the reference state molar volume divided by R
00488      *             units are m**3 kmol-1.
00489      */
00490     virtual doublereal molarVolume_ref() const;
00491 
00492     /**
00493      * @}
00494      *  @name Mechanical Equation of State Properties 
00495      * @{
00496      */
00497 
00498     //! Returns the pressure (Pa)
00499     virtual doublereal pressure() const;
00500 
00501     //! Sets the pressure in the object
00502     /*!
00503      * Currently, this sets the pressure in the PDSS object.
00504      * It is indeterminant what happens to the owning VPStandardStateTP
00505      * object and to the VPSSMgr object.
00506      *
00507      * @param   pres   Pressure to be set (Pascal)
00508      */
00509     virtual void setPressure(doublereal pres);
00510 
00511     //! Return the volumetric thermal expansion coefficient. Units: 1/K.
00512     /*!
00513      * The thermal expansion coefficient is defined as
00514      * \f[
00515      * \beta = \frac{1}{v}\left(\frac{\partial v}{\partial T}\right)_P
00516      * \f]
00517      */
00518     virtual doublereal thermalExpansionCoeff() const;
00519  
00520     //@}
00521     /// @name  Partial Molar Properties of the Solution -----------------
00522     //@{
00523 
00524     //! Set the internal temperature
00525     /*!
00526      * @param temp Temperature (Kelvin)
00527      */
00528     virtual void setTemperature(doublereal temp);
00529 
00530     //! Return the current storred temperature
00531     doublereal temperature() const;
00532  
00533     //! Set the internal temperature and pressure
00534     /*!
00535      * @param  temp     Temperature (Kelvin)
00536      * @param  pres     pressure (Pascals)
00537      */
00538     virtual void setState_TP(doublereal temp, doublereal pres);
00539 
00540     //! Set the internal temperature and density
00541     /*! 
00542      * @param  temp     Temperature (Kelvin)
00543      * @param  rho      Density (kg m-3)
00544      */
00545     virtual void setState_TR(doublereal temp, doublereal rho);
00546   
00547     /**
00548      * @}
00549      *  @name  Miscellaneous properties of the standard state
00550      * @{
00551      */
00552   
00553     //! critical temperature 
00554     virtual doublereal critTemperature() const;
00555  
00556     //! critical pressure
00557     virtual doublereal critPressure() const;
00558         
00559     //! critical density
00560     virtual doublereal critDensity() const;
00561         
00562     //! saturation pressure
00563     /*!
00564      *  @param T Temperature (Kelvin)
00565      */
00566     virtual doublereal satPressure(doublereal T);
00567     
00568     //! Return the molecular weight of the species
00569     //! in units of kg kmol-1
00570     doublereal molecularWeight() const;
00571 
00572     //! Set the molecular weight of the species
00573     /*!
00574      * @param mw Molecular Weight in kg kmol-1
00575      */
00576     void setMolecularWeight(doublereal mw);
00577 
00578     /**
00579      * @}
00580      *  @name  Initialization of the Object
00581      * @{
00582      */
00583 
00584 
00585     //! Initialization routine for all of the shallow pointers
00586     /*!
00587      *  This is a cascading call, where each level should call the
00588      *  the parent level.
00589      *
00590      *  The initThermo() routines get called before the initThermoXML() routines
00591      *  from the constructPDSSXML() routine.
00592      *
00593      *
00594      *  Calls initPtrs();
00595      */
00596     virtual void initThermo();
00597 
00598     //! Initialization routine for the PDSS object based on the phaseNode
00599     /*!
00600      *  This is a cascading call, where each level should call the
00601      *  the parent level.
00602      *
00603      * @param phaseNode  Reference to the phase Information for the phase
00604      *                   that owns this species.
00605      *
00606      * @param id         Optional parameter identifying the name of the
00607      *                   phase. If none is given, the first XML
00608      *                   phase element will be used.
00609      */
00610     virtual void initThermoXML(const XML_Node& phaseNode, std::string& id);
00611 
00612     
00613     //! This utility function reports back the type of
00614     //! parameterization and all of the parameters for the
00615     //! species, index.
00616     /*!
00617      *
00618      * @param kindex     Species index
00619      * @param type      Integer type of the standard type
00620      * @param c         Vector of coefficients used to set the
00621      *                  parameters for the standard state.
00622      * @param minTemp   output - Minimum temperature
00623      * @param maxTemp   output - Maximum temperature
00624      * @param refPressure output - reference pressure (Pa).
00625      *
00626      */
00627     virtual void reportParams(int &kindex, int &type, doublereal * const c,
00628                               doublereal &minTemp, doublereal &maxTemp,
00629                               doublereal &refPressure) const;
00630 
00631 
00632   private:
00633     //! Initialize all of the internal shallow pointers that can be initialized
00634     /*!
00635      * This routine isn't virtual. It's only applicable for the current class
00636      */
00637     void initPtrs();
00638 
00639   public:
00640     //! Initialize or Reinitialize all shallow pointers in the object
00641     /*!
00642      *  This command is called to reinitialize all shallow pointers in the
00643      *  object. It's needed for the duplicator capability
00644      *
00645      * @param vptp_ptr       Pointer to the Variable pressure %ThermoPhase object
00646      *                       This object must have already been malloced.
00647      *
00648      * @param vpssmgr_ptr    Pointer to the variable pressure standard state
00649      *                       calculator for this phase
00650      *
00651      * @param spthermo_ptr   Pointer to the optional SpeciesThermo object
00652      *                       that will handle the calculation of the reference
00653      *                       state thermodynamic coefficients.
00654      */
00655     virtual void initAllPtrs(VPStandardStateTP *vptp_ptr, VPSSMgr *vpssmgr_ptr, 
00656                              SpeciesThermo* spthermo_ptr);
00657 
00658    //@}
00659 
00660   protected:
00661 
00662     //! Enumerated type describing the type of the PDSS object
00663     PDSS_enumType m_pdssType;
00664 
00665     //! Current temperature used by the PDSS object
00666     mutable doublereal m_temp;
00667 
00668     //! State of the system - pressure
00669     mutable doublereal m_pres;
00670 
00671     //! Reference state pressure of the species.
00672     doublereal m_p0;
00673 
00674     //! Minimum temperature
00675     doublereal m_minTemp;
00676 
00677     //! Maximum temperature
00678     doublereal m_maxTemp;
00679 
00680     //! Thermophase which this species belongs to. 
00681     /*!
00682      * Note, in some
00683      * applications (i.e., mostly testing applications, this may be a null
00684      * value. Applications should test whether this is null before usage. 
00685      */
00686     VPStandardStateTP *m_tp;
00687 
00688     //! Pointer to the VPSS manager for this object
00689     VPSSMgr *m_vpssmgr_ptr;
00690 
00691     /**
00692      * Molecular Weight of the species
00693      */
00694     doublereal m_mw;
00695 
00696     /**
00697      * Species index in the thermophase corresponding to this species.
00698      */
00699     int m_spindex;
00700 
00701     //! Pointer to the species thermodynamic property manager.
00702     /*!
00703      * This is a copy of the pointer in the ThermoPhase object.
00704      * Note, this object doesn't own the pointer.
00705      * If the SpeciesThermo ThermoPhase object doesn't know 
00706      * or doesn't control the calculation, this will be 
00707      * set to zero.
00708      */
00709     SpeciesThermo* m_spthermo;
00710   
00711     //!  Reference state enthalpy divided by RT.
00712     /*!
00713      *  Storage for the thermo properties is provided by
00714      *  VPSSMgr. This object owns a shallow pointer.
00715      *  Calculated at the current value of T and m_p0
00716      */
00717     doublereal *m_h0_RT_ptr;
00718 
00719     //!  Reference state heat capacity divided by R.
00720     /*!
00721      *  Storage for the thermo properties is provided by
00722      *  VPSSMgr.
00723      *  Calculated at the current value of T and m_p0
00724      */
00725     doublereal *m_cp0_R_ptr;
00726 
00727     //!  Reference state entropy divided by R.
00728     /*!
00729      *  Storage for the thermo properties is provided by
00730      *  VPSSMgr.
00731      *  Calculated at the current value of T and m_p0
00732      */
00733     doublereal *m_s0_R_ptr;
00734 
00735     //!  Reference state gibbs free energy divided by RT.
00736     /*!
00737      *  Calculated at the current value of T and m_p0
00738      */
00739     doublereal *m_g0_RT_ptr;
00740 
00741     //!  Reference state molar volume (m3 kg-1)
00742     /*!
00743      *  Storage for the thermo properties is provided by
00744      *  VPSSMgr.
00745      *  Calculated at the current value of T and m_p0
00746      */
00747     doublereal *m_V0_ptr;
00748 
00749     //!  Standard state enthalpy divided by RT.
00750     /*!
00751      *  Storage for the thermo properties is provided by
00752      *  VPSSMgr.
00753      *  Calculated at the current value of T and P
00754      */
00755     doublereal *m_hss_RT_ptr;
00756 
00757     //!  Standard state heat capacity divided by R.
00758     /*!
00759      *  Storage for the thermo properties is provided by
00760      *  VPSSMgr.
00761      *  Calculated at the current value of T and P
00762      */
00763     doublereal *m_cpss_R_ptr;
00764 
00765     //!  Standard state entropy divided by R.
00766     /*!
00767      *  Storage for the thermo properties is provided by
00768      *  VPSSMgr.
00769      *  Calculated at the current value of T and P
00770      */
00771     doublereal *m_sss_R_ptr;
00772 
00773     //!  Standard state gibbs free energy divided by RT.
00774     /*!
00775      *  Storage for the thermo properties is provided by
00776      *  VPSSMgr.
00777      *  Calculated at the current value of T and P
00778      */
00779     doublereal *m_gss_RT_ptr;
00780 
00781     //!  Standard State molar volume (m3 kg-1)
00782     /*!
00783      *  Storage for the thermo properties is provided by
00784      *  VPSSMgr.
00785      *  Calculated at the current value of T and P
00786      */
00787     doublereal *m_Vss_ptr;
00788 
00789   };
00790 
00791 }
00792 
00793 #endif
Generated by  doxygen 1.6.3