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