From 57a9a3f4587eae5499b33820d365b78cf8ec3960 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Mon, 4 Mar 2013 17:31:27 +0000 Subject: [PATCH] Cleaned up Doxygen documentation for class PDSS and descendants --- include/cantera/thermo/PDSS.h | 361 +++++--------- include/cantera/thermo/PDSS_ConstVol.h | 283 +---------- include/cantera/thermo/PDSS_HKFT.h | 318 ++---------- include/cantera/thermo/PDSS_IdealGas.h | 285 +---------- include/cantera/thermo/PDSS_IonsFromNeutral.h | 315 ++---------- include/cantera/thermo/PDSS_SSVol.h | 463 +++++------------- include/cantera/thermo/PDSS_Water.h | 268 ++-------- src/thermo/PDSS.cpp | 114 ----- src/thermo/PDSS_ConstVol.cpp | 58 --- src/thermo/PDSS_HKFT.cpp | 100 ---- src/thermo/PDSS_IdealGas.cpp | 78 --- src/thermo/PDSS_IonsFromNeutral.cpp | 160 ++---- src/thermo/PDSS_SSVol.cpp | 59 --- src/thermo/PDSS_Water.cpp | 67 +-- 14 files changed, 421 insertions(+), 2508 deletions(-) diff --git a/include/cantera/thermo/PDSS.h b/include/cantera/thermo/PDSS.h index 0bde77843..51ce6ebb7 100644 --- a/include/cantera/thermo/PDSS.h +++ b/include/cantera/thermo/PDSS.h @@ -16,10 +16,8 @@ class WaterPropsIAPWS; - namespace Cantera { - /** * @defgroup pdssthermo Species Standard-State Thermodynamic Properties * @@ -66,19 +64,16 @@ namespace Cantera * species in a phase at its standard states, for a range of temperatures * and pressures. * - * Phases which use the %VPSSMGr class must have their respective - * %ThermoPhase objects actually be derivatives of the VPStandardState + * Phases which use the VPSSMGr class must have their respective + * ThermoPhase objects actually be derivatives of the VPStandardState * class. These classes assume that there exists a standard state * for each species in the phase, where the Thermodynamic functions are specified * as a function of temperature and pressure. Standard state objects for each * species in the phase are all derived from the PDSS virtual base class. * - * - * * The following classes inherit from PDSS. Each of these classes * handles just one species. * - * * - PDSS_IdealGas * - standardState model = "IdealGas" * - This model assumes that the species in the phase obeys the @@ -86,7 +81,6 @@ namespace Cantera * uses a SimpleThermo object to handle the calculation of the * reference state. This object adds the pressure dependencies * to the thermo functions. - * . * * - PDSS_ConstVol * - standardState model = "ConstVol" @@ -95,7 +89,6 @@ namespace Cantera * The manager uses a SimpleThermo object to handle the * calculation of the reference state. This object adds the * pressure dependencies to these thermo functions. - * . * * - PDSS_SSVol * - standardState model = "constant_incompressible" || model == "constant" @@ -110,63 +103,53 @@ namespace Cantera * calculation of the reference state. This object then adds the * pressure dependencies and the volume terms to these thermo functions * to complete the representation. - * . * * - PDSS_Water * - standardState model = "Water" * - This model assumes that * Species 0 is assumed to be water, and a real equation * of state is used to model the T, P behavior. - * Note, the model asssumes that the species is liquid water, + * Note, the model assumes that the species is liquid water, * and not steam. - * . * * - PDSS_HKFT * - standardState model = "HKFT" * - This model assumes that the species follows the * HKFT pressure dependent equation of state - * . - * . * * The choice of which VPSSMGr object to be used is either implicitly made by * Cantera by querying the XML data file for compatibility or it may * be explicitly requested in the XML file. * * Normally the PDSS object is not called directly. Instead the VPSSMgr - * object manages the calls to the PDSS object for the entire set of - * species that comprise a phase. Additionally, sometimes the VPSSMgr - * object will not call the PDSS object at all to calculate - * thermodynamic properties, instead relying on its own - * determination/knowledge for how to calculate thermo quantities - * quickly given what it knows about the PDSS objects under - * its control. + * object manages the calls to the PDSS object for the entire set of species + * that comprise a phase. Additionally, sometimes the VPSSMgr object will not + * call the PDSS object at all to calculate thermodynamic properties, instead + * relying on its own determination/knowledge for how to calculate thermo + * quantities quickly given what it knows about the PDSS objects under its + * control. * - * The PDSS objects may or may not utilize the SpeciesThermo - * reference state manager class to calculate the reference - * state thermodynamics functions in its own calculation. There - * are some classes, such as PDSS_IdealGas and PDSS+_ConstVol, - * which utilize the SpeciesThermo object because the - * calculation is very similar to the reference state - * calculation, while there are other classes, PDSS_Water and - * PDSS_HKFT, which don't utilize the reference state calculation - * at all, because it wouldn't make sense to. For example, - * using the PDSS_Water module, there isn't anything special - * about the reference pressure of 1 bar, so the reference state - * calculation would represent a duplication of work. - * Additionally, when evaluating thermodynamic properties - * at higher pressures and temperatures, near the critical point, - * evaluation of the thermodynamics at a pressure of 1 bar may - * lead to situations where the liquid is unstable, i.e., beyond - * the spinodal curve leading to potentially wrong evaluation - * results. + * The PDSS objects may or may not utilize the SpeciesThermo reference state + * manager class to calculate the reference state thermodynamics functions in + * its own calculation. There are some classes, such as PDSS_IdealGas and + * PDSS+_ConstVol, which utilize the SpeciesThermo object because the + * calculation is very similar to the reference state calculation, while + * there are other classes, PDSS_Water and PDSS_HKFT, which don't utilize the + * reference state calculation at all, because it wouldn't make sense to. For + * example, using the PDSS_Water module, there isn't anything special about + * the reference pressure of 1 bar, so the reference state calculation would + * represent a duplication of work. Additionally, when evaluating + * thermodynamic properties at higher pressures and temperatures, near the + * critical point, evaluation of the thermodynamics at a pressure of 1 bar + * may lead to situations where the liquid is unstable, i.e., beyond the + * spinodal curve leading to potentially wrong evaluation results. * - * For cases where the PDSS object doesn't use the SpeciesThermo - * object, a dummy SpeciesThermoInterpType object is actually - * installed into the SpeciesThermo object for that species. - * This dummy SpeciesThermoInterpType object is called a - * STITbyPDSS object. This object satisfies calls to - * SpeciesThermo member functions by actually calling the - * PDSS object at the reference pressure. + * For cases where the PDSS object doesn't use the SpeciesThermo object, a + * dummy SpeciesThermoInterpType object is actually installed into the + * SpeciesThermo object for that species. This dummy SpeciesThermoInterpType + * object is called a STITbyPDSS object. This object satisfies calls to + * SpeciesThermo member functions by actually calling the PDSS object at the + * reference pressure. * * @ingroup thermoprops */ @@ -182,18 +165,15 @@ class VPSSMgr; * Virtual base class for calculation of the * pressure dependent standard state for a single species * - * Class %PDSS is the base class - * for a family of classes that compute properties of a set of - * species in their standard states at a range of temperatures - * and pressures. The independent variables for this object - * are temperature and pressure. - * The class may have a reference to a SpeciesThermo object - * which handles the calculation of the reference state temperature + * Class %PDSS is the base class for a family of classes that compute + * properties of a set of species in their standard states at a range of + * temperatures and pressures. The independent variables for this object are + * temperature and pressure. The class may have a reference to a SpeciesThermo + * object which handles the calculation of the reference state temperature * behavior of a subset of species. * - * This class is analogous to the SpeciesThermoInterpType - * class, except that the standard state inherently incorporates - * the pressure dependence. + * This class is analogous to the SpeciesThermoInterpType class, except that + * the standard state inherently incorporates the pressure dependence. * * The class operates on a setState temperature and pressure basis. * It only recalculates the standard state when the setState functions @@ -201,28 +181,22 @@ class VPSSMgr; * *

Thread Safety

* - * These classes are designed such that they are not thread safe when - * called by themselves. The reason for this is that they sometimes use - * shared SpeciesThermo resources where they set the states. This condition - * may be remedied in the future if we get serious about employing - * multithreaded capabilities by adding mutex locks to the - * SpeciesThermo resources. + * These classes are designed such that they are not thread safe when called + * by themselves. The reason for this is that they sometimes use shared + * SpeciesThermo resources where they set the states. This condition may be + * remedied in the future if we get serious about employing multithreaded + * capabilities by adding mutex locks to the SpeciesThermo resources. * - * However, in many other respects they can be thread safe. They use - * separate memory and hold intermediate data. + * However, in many other respects they can be thread safe. They use separate + * memory and hold intermediate data. * * @ingroup pdssthermo */ class PDSS { - public: - - /** - * @name Constructors - * @{ - */ - + //! @name Constructors + //! @{ //! Empty Constructor PDSS(); @@ -249,34 +223,29 @@ public: */ PDSS& operator=(const PDSS& b); - //! Destructor for the phase virtual ~PDSS(); //! Duplication routine for objects which inherit from %PDSS /*! - * This virtual routine can be used to duplicate %PDSS objects - * inherited from %PDSS even if the application only has - * a pointer to %PDSS to work with. + * This function can be used to duplicate objects derived from PDSS even + * if the application only has a pointer to PDSS to work with. * - * @return returns a pointer to the base %PDSS object type + * @return A pointer to the base %PDSS object type */ virtual PDSS* duplMyselfAsPDSS() const; - /** - * @} - * @name Utilities - * @{ - */ + //! @} + //! @name Utilities + //! @{ //! Returns the type of the standard state parameterization /*! - * @return Returns the integer # of the parameterization + * @return The integer # of the parameterization */ PDSS_enumType reportPDSSType() const; private: - //! Set an error within this object for an unhandled capability /*! * @param msg Message string for this error @@ -284,121 +253,91 @@ private: void err(const std::string& msg) const; public: - - /** - * @} - * @name Molar Thermodynamic Properties of the Species Standard State - * in the Solution - * @{ - */ + //! @} + //! @name Molar Thermodynamic Properties of the Species Standard State in the Solution + //! @{ //! Return the molar enthalpy in units of J kmol-1 /*! - * Returns the species standard state enthalpy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in J kmol-1 + * @return the species standard state enthalpy in J kmol-1 at the current + * temperature and pressure. */ virtual doublereal enthalpy_mole() const; //! Return the standard state molar enthalpy divided by RT /*! - * Returns the species standard state enthalpy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in unitless form + * @return The dimensionless species standard state enthalpy divided at + * the current temperature and pressure. */ virtual doublereal enthalpy_RT() const; //! Return the molar internal Energy in units of J kmol-1 /*! - * Returns the species standard state internal Energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state internal Energy in J kmol-1 + * @return The species standard state internal Energy in J kmol-1 at the + * current temperature and pressure. */ virtual doublereal intEnergy_mole() const; //! Return the molar entropy in units of J kmol-1 K-1 /*! - * Returns the species standard state entropy in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state entropy in J kmol-1 K-1 + * @return The species standard state entropy in J kmol-1 K-1 at the + * current temperature and pressure. */ virtual doublereal entropy_mole() const; //! Return the standard state entropy divided by RT /*! - * Returns the species standard state entropy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state entropy divided by RT + * @return The species standard state entropy divided by RT at the current + * temperature and pressure. */ virtual doublereal entropy_R() const; - //! Return the molar gibbs free energy in units of J kmol-1 + //! Return the molar Gibbs free energy in units of J kmol-1 /*! - * Returns the species standard state gibbs free energy in J kmol-1 at the + * @return The species standard state Gibbs free energy in J kmol-1 at the * current temperature and pressure. - * - * @return returns the species standard state gibbs free energy in J kmol-1 */ virtual doublereal gibbs_mole() const; - //! Return the molar gibbs free energy divided by RT + //! Return the molar Gibbs free energy divided by RT /*! - * Returns the species standard state gibbs free energy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state gibbs free energy divided by RT + * @return The species standard state Gibbs free energy divided by RT at + * the current temperature and pressure. */ virtual doublereal gibbs_RT() const; //! Return the molar const pressure heat capacity in units of J kmol-1 K-1 /*! - * Returns the species standard state Cp in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cp in J kmol-1 K-1 + * @return The species standard state Cp in J kmol-1 K-1 at the current + * temperature and pressure. */ virtual doublereal cp_mole() const; //! Return the molar const pressure heat capacity divided by RT /*! - * Returns the species standard state Cp divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state Cp divided by RT + * @return The species standard state Cp divided by RT at the current + * temperature and pressure. */ virtual doublereal cp_R() const; //! Return the molar const volume heat capacity in units of J kmol-1 K-1 /*! - * Returns the species standard state Cv in J kmol-1 K-1 at the + * @return The species standard state Cv in J kmol-1 K-1 at the * current temperature and pressure. - * - * @return returns the species standard state Cv in J kmol-1 K-1 */ virtual doublereal cv_mole() const; //! Return the molar volume at standard state /*! - * Returns the species standard state molar volume at the - * current temperature and pressure - * - * @return returns the standard state molar volume divided by R - * units are m**3 kmol-1. + * @return The standard state molar volume at the current temperature and + * pressure. Units are m**3 kmol-1. */ virtual doublereal molarVolume() const; //! Return the standard state density at standard state /*! - * Returns the species standard state density at the - * current temperature and pressure - * - * @return returns the standard state density - * units are kg m-3 + * @return The standard state density at the current temperature and + * pressure. units are kg m-3 */ virtual doublereal density() const; @@ -418,12 +357,9 @@ public: //! between the current pressure and the reference pressure, p0. virtual doublereal cpDelp_mole() const; - /** - * @} - * @name Properties of the Reference State of the Species - * in the Solution - * @{ - */ + //! @} + //! @name Properties of the Reference State of the Species in the Solution + //! @{ //! Return the reference pressure for this phase. doublereal refPressure() const { @@ -435,7 +371,6 @@ public: return m_minTemp; } - //! return the minimum temperature doublereal maxTemp() const { return m_maxTemp; @@ -443,55 +378,41 @@ public: //! Return the molar gibbs free energy divided by RT at reference pressure /*! - * Returns the species reference state gibbs free energy divided by RT at the - * current temperature. - * - * @return returns the reference state gibbs free energy divided by RT + * @return The reference state gibbs free energy at the current + * temperature, divided by RT. */ virtual doublereal gibbs_RT_ref() const; //! Return the molar enthalpy divided by RT at reference pressure /*! - * Returns the species reference state enthalpy divided by RT at the - * current temperature. - * - * @return returns the reference state enthalpy divided by RT + * @return The species reference state enthalpy at the current + * temperature, divided by RT. */ virtual doublereal enthalpy_RT_ref() const; //! Return the molar entropy divided by R at reference pressure /*! - * Returns the species reference state entropy divided by R at the - * current temperature. - * - * @return returns the reference state entropy divided by R + * @return The species reference state entropy at the current + * temperature, divided by R. */ virtual doublereal entropy_R_ref() const; //! Return the molar heat capacity divided by R at reference pressure /*! - * Returns the species reference state heat capacity divided by R at the + * @return The species reference state heat capacity divided by R at the * current temperature. - * - * @return returns the reference state heat capacity divided by R */ virtual doublereal cp_R_ref() const; //! Return the molar volume at reference pressure /*! - * Returns the species reference state molar volume at the - * current temperature. - * - * @return returns the reference state molar volume divided by R - * units are m**3 kmol-1. + * @return The reference state molar volume. units are m**3 kmol-1. */ virtual doublereal molarVolume_ref() const; - /** - * @} - * @name Mechanical Equation of State Properties - * @{ - */ + //! @} + //! @name Mechanical Equation of State Properties + //! @{ //! Returns the pressure (Pa) virtual doublereal pressure() const; @@ -516,7 +437,7 @@ public: virtual doublereal thermalExpansionCoeff() const; //@} - /// @name Partial Molar Properties of the Solution ----------------- + /// @name Partial Molar Properties of the Solution //@{ //! Set the internal temperature @@ -542,11 +463,9 @@ public: */ virtual void setState_TR(doublereal temp, doublereal rho); - /** - * @} - * @name Miscellaneous properties of the standard state - * @{ - */ + //! @} + //! @name Miscellaneous properties of the standard state + //! @{ //! critical temperature virtual doublereal critTemperature() const; @@ -573,12 +492,9 @@ public: */ void setMolecularWeight(doublereal mw); - /** - * @} - * @name Initialization of the Object - * @{ - */ - + //! @} + //! @name Initialization of the Object + //! @{ //! Initialization routine for all of the shallow pointers /*! @@ -588,7 +504,6 @@ public: * The initThermo() routines get called before the initThermoXML() routines * from the constructPDSSXML() routine. * - * * Calls initPtrs(); */ virtual void initThermo(); @@ -607,12 +522,9 @@ public: */ virtual void initThermoXML(const XML_Node& phaseNode, const std::string& id); - - //! This utility function reports back the type of - //! parameterization and all of the parameters for the - //! species, index. + //! This utility function reports back the type of parameterization and + //! all of the parameters for the species, index. /*! - * * @param kindex Species index * @param type Integer type of the standard type * @param c Vector of coefficients used to set the @@ -620,13 +532,11 @@ public: * @param minTemp output - Minimum temperature * @param maxTemp output - Maximum temperature * @param refPressure output - reference pressure (Pa). - * */ virtual void reportParams(size_t& kindex, int& type, doublereal* const c, doublereal& minTemp, doublereal& maxTemp, doublereal& refPressure) const; - private: //! Initialize all of the internal shallow pointers that can be initialized /*! @@ -640,7 +550,7 @@ public: * This command is called to reinitialize all shallow pointers in the * object. It's needed for the duplicator capability * - * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object + * @param vptp_ptr Pointer to the Variable pressure ThermoPhase object * This object must have already been malloced. * * @param vpssmgr_ptr Pointer to the variable pressure standard state @@ -652,11 +562,9 @@ public: */ virtual void initAllPtrs(VPStandardStateTP* vptp_ptr, VPSSMgr* vpssmgr_ptr, SpeciesThermo* spthermo_ptr); - //@} protected: - //! Enumerated type describing the type of the PDSS object PDSS_enumType m_pdssType; @@ -675,7 +583,7 @@ protected: //! Maximum temperature doublereal m_maxTemp; - //! Thermophase which this species belongs to. + //! ThermoPhase which this species belongs to. /*! * Note, in some * applications (i.e., mostly testing applications, this may be a null @@ -692,45 +600,41 @@ protected: doublereal m_mw; /** - * Species index in the thermophase corresponding to this species. + * Species index in the ThermoPhase corresponding to this species. */ size_t m_spindex; //! Pointer to the species thermodynamic property manager. /*! - * This is a copy of the pointer in the ThermoPhase object. - * Note, this object doesn't own the pointer. - * If the SpeciesThermo ThermoPhase object doesn't know - * or doesn't control the calculation, this will be - * set to zero. + * This is a copy of the pointer in the ThermoPhase object. Note, this + * object doesn't own the pointer. If the SpeciesThermo ThermoPhase object + * doesn't know or doesn't control the calculation, this will be set to + * zero. */ SpeciesThermo* m_spthermo; //! Reference state enthalpy divided by RT. /*! - * Storage for the thermo properties is provided by - * VPSSMgr. This object owns a shallow pointer. - * Calculated at the current value of T and m_p0 + * Storage for the thermo properties is provided by VPSSMgr. This object + * owns a shallow pointer. Calculated at the current value of T and m_p0 */ doublereal* m_h0_RT_ptr; //! Reference state heat capacity divided by R. /*! - * Storage for the thermo properties is provided by - * VPSSMgr. - * Calculated at the current value of T and m_p0 + * Storage for the thermo properties is provided by VPSSMgr. Calculated + * at the current value of T and m_p0 */ doublereal* m_cp0_R_ptr; //! Reference state entropy divided by R. /*! - * Storage for the thermo properties is provided by - * VPSSMgr. - * Calculated at the current value of T and m_p0 + * Storage for the thermo properties is provided by VPSSMgr. Calculated + * at the current value of T and m_p0 */ doublereal* m_s0_R_ptr; - //! Reference state gibbs free energy divided by RT. + //! Reference state Gibbs free energy divided by RT. /*! * Calculated at the current value of T and m_p0 */ @@ -738,52 +642,45 @@ protected: //! Reference state molar volume (m3 kg-1) /*! - * Storage for the thermo properties is provided by - * VPSSMgr. - * Calculated at the current value of T and m_p0 + * Storage for the thermo properties is provided by VPSSMgr. Calculated + * at the current value of T and m_p0 */ doublereal* m_V0_ptr; //! Standard state enthalpy divided by RT. /*! - * Storage for the thermo properties is provided by - * VPSSMgr. - * Calculated at the current value of T and P + * Storage for the thermo properties is provided by VPSSMgr. Calculated + * at the current value of T and P. */ doublereal* m_hss_RT_ptr; //! Standard state heat capacity divided by R. /*! - * Storage for the thermo properties is provided by - * VPSSMgr. - * Calculated at the current value of T and P + * Storage for the thermo properties is provided by VPSSMgr. Calculated + * at the current value of T and P. */ doublereal* m_cpss_R_ptr; //! Standard state entropy divided by R. /*! - * Storage for the thermo properties is provided by - * VPSSMgr. - * Calculated at the current value of T and P + * Storage for the thermo properties is provided by VPSSMgr. Calculated + * at the current value of T and P. */ doublereal* m_sss_R_ptr; - //! Standard state gibbs free energy divided by RT. + //! Standard state Gibbs free energy divided by RT. /*! - * Storage for the thermo properties is provided by - * VPSSMgr. - * Calculated at the current value of T and P + * Storage for the thermo properties is provided by VPSSMgr. Calculated + * at the current value of T and P. */ doublereal* m_gss_RT_ptr; //! Standard State molar volume (m3 kg-1) /*! - * Storage for the thermo properties is provided by - * VPSSMgr. - * Calculated at the current value of T and P + * Storage for the thermo properties is provided by VPSSMgr. Calculated + * at the current value of T and P. */ doublereal* m_Vss_ptr; - }; } diff --git a/include/cantera/thermo/PDSS_ConstVol.h b/include/cantera/thermo/PDSS_ConstVol.h index d0bc33a03..58bf51417 100644 --- a/include/cantera/thermo/PDSS_ConstVol.h +++ b/include/cantera/thermo/PDSS_ConstVol.h @@ -21,20 +21,13 @@ class VPStandardStateTP; //! Class for pressure dependent standard states that use a constant volume model /*! - * Class for pressure dependent standard states that use a constant volume model. - * - * * @ingroup pdssthermo */ class PDSS_ConstVol : public PDSS { - public: - - /** - * @name Constructors - * @{ - */ + //! @name Constructors + //! @{ //! Constructor /*! @@ -43,7 +36,6 @@ public: */ PDSS_ConstVol(VPStandardStateTP* tp, size_t spindex); - //! Constructor that initializes the object by examining the input file //! of the ThermoPhase object /*! @@ -89,277 +81,70 @@ public: //! Destructor virtual ~PDSS_ConstVol(); - //! Duplicator virtual PDSS* duplMyselfAsPDSS() const; - /** - * @} - * @name Utilities - * @{ - */ + //! @} + //! @name Molar Thermodynamic Properties of the Species Standard State in the Solution + //! @{ - /** - * @} - * @name Molar Thermodynamic Properties of the Species Standard State - * in the Solution - * @{ - */ - - //! Return the molar enthalpy in units of J kmol-1 - /*! - * Returns the species standard state enthalpy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in J kmol-1 - */ + // See PDSS.h for documentation of functions overridden from Class PDSS virtual doublereal enthalpy_mole() const; - - //! Return the standard state molar enthalpy divided by RT - /*! - * Returns the species standard state enthalpy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in unitless form - */ virtual doublereal enthalpy_RT() const; - - //! Return the molar internal Energy in units of J kmol-1 - /*! - * Returns the species standard state internal Energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state internal Energy in J kmol-1 - */ virtual doublereal intEnergy_mole() const; - - //! Return the molar entropy in units of J kmol-1 K-1 - /*! - * Returns the species standard state entropy in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state entropy in J kmol-1 K-1 - */ virtual doublereal entropy_mole() const; - - //! Return the standard state entropy divided by RT - /*! - * Returns the species standard state entropy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state entropy divided by RT - */ virtual doublereal entropy_R() const; - - //! Return the molar gibbs free energy in units of J kmol-1 - /*! - * Returns the species standard state gibbs free energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state gibbs free energy in J kmol-1 - */ virtual doublereal gibbs_mole() const; - - //! Return the molar gibbs free energy divided by RT - /*! - * Returns the species standard state gibbs free energy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state gibbs free energy divided by RT - */ virtual doublereal gibbs_RT() const; - - //! Return the molar const pressure heat capacity in units of J kmol-1 K-1 - /*! - * Returns the species standard state Cp in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cp in J kmol-1 K-1 - */ virtual doublereal cp_mole() const; - - //! Return the molar const pressure heat capacity divided by RT - /*! - * Returns the species standard state Cp divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state Cp divided by RT - */ virtual doublereal cp_R() const; - - //! Return the molar const volume heat capacity in units of J kmol-1 K-1 - /*! - * Returns the species standard state Cv in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cv in J kmol-1 K-1 - */ virtual doublereal cv_mole() const; - - //! Return the molar volume at standard state - /*! - * Returns the species standard state molar volume at the - * current temperature and pressure - * - * @return returns the standard state molar volume divided by R - * units are m**3 kmol-1. - */ virtual doublereal molarVolume() const; - - //! Return the standard state density at standard state - /*! - * Returns the species standard state density at the - * current temperature and pressure - * - * @return returns the standard state density - * units are kg m-3 - */ virtual doublereal density() const; - /** - * @} - * @name Properties of the Reference State of the Species - * in the Solution - * @{ - */ + //! @} + //! @name Properties of the Reference State of the Species in the Solution + //! @{ - //! Return the molar gibbs free energy divided by RT at reference pressure - /*! - * Returns the species reference state gibbs free energy divided by RT at the - * current temperature. - * - * @return returns the reference state gibbs free energy divided by RT - */ virtual doublereal gibbs_RT_ref() const; - - //! Return the molar enthalpy divided by RT at reference pressure - /*! - * Returns the species reference state enthalpy divided by RT at the - * current temperature. - * - * @return returns the reference state enthalpy divided by RT - */ virtual doublereal enthalpy_RT_ref() const; - - //! Return the molar entropy divided by R at reference pressure - /*! - * Returns the species reference state entropy divided by R at the - * current temperature. - * - * @return returns the reference state entropy divided by R - */ virtual doublereal entropy_R_ref() const; - - //! Return the molar heat capacity divided by R at reference pressure - /*! - * Returns the species reference state heat capacity divided by R at the - * current temperature. - * - * @return returns the reference state heat capacity divided by R - */ virtual doublereal cp_R_ref() const; - - //! Return the molar volume at reference pressure - /*! - * Returns the species reference state molar volume at the - * current temperature. - * - * @return returns the reference state molar volume divided by R - * units are m**3 kmol-1. - */ virtual doublereal molarVolume_ref() const; - /** - * @} - * @name Mechanical Equation of State Properties - * @{ - */ + //! @} + //! @name Mechanical Equation of State Properties + //! @{ - //! Sets the pressure in the object - /*! - * Currently, this sets the pressure in the PDSS object. - * It is indeterminant what happens to the owning VPStandardStateTP - * object and to the VPSSMgr object. - * - * @param pres Pressure to be set (Pascal) - */ virtual void setPressure(doublereal pres); - - //! Set the internal temperature - /*! - * @param temp Temperature (Kelvin) - */ virtual void setTemperature(doublereal temp); - - //! Set the internal temperature and pressure - /*! - * @param temp Temperature (Kelvin) - * @param pres pressure (Pascals) - */ virtual void setState_TP(doublereal temp, doublereal pres); - - - //! Set the internal temperature and density - /*! - * @param temp Temperature (Kelvin) - * @param rho Density (kg m-3) - */ virtual void setState_TR(doublereal temp, doublereal rho); - /** - * @} - * @name Miscellaneous properties of the standard state - * @{ - */ + //! @} + //! @name Miscellaneous properties of the standard state + //! @{ - /// critical temperature virtual doublereal critTemperature() const; - - /// critical pressure virtual doublereal critPressure() const; - - /// critical density virtual doublereal critDensity() const; - - /// saturation pressure - /*! - * @param t Temperature (kelvin) - */ virtual doublereal satPressure(doublereal t); - /** - * @} - * @name Initialization of the Object - * @{ - */ + //! @} + //! @name Initialization of the Object + //! @{ - //! Initialization routine for all of the shallow pointers - /*! - * This is a cascading call, where each level should call the - * the parent level. - * - * The initThermo() routines get called before the initThermoXML() routines - * from the constructPDSSXML() routine. - * - * - * Calls initPtrs(); - */ virtual void initThermo(); //! Initialization of a PDSS object using an //! input XML file. /*! - * * This routine is a precursor to constructPDSSXML(XML_Node*) * routine, which does most of the work. * * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object * This object must have already been malloced. - * * @param spindex Species index within the phase - * - * @param inputFile XML file containing the description of the - * phase - * + * @param inputFile XML file containing the description of the phase * @param id Optional parameter identifying the name of the * phase. If none is given, the first XML * phase element will be used. @@ -369,24 +154,19 @@ public: //! Initialization of a PDSS object using an xml tree /*! - * This routine is a driver for the initialization of the - * object. + * This routine is a driver for the initialization of the object. * * basic logic: - * initThermo() (cascade) - * getStuff from species Part of XML file - * initThermoXML(phaseNode) (cascade) + * - initThermo() (cascade) + * - getStuff from species Part of XML file + * - initThermoXML(phaseNode) (cascade) * * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object * This object must have already been malloced. - * * @param spindex Species index within the phase - * * @param speciesNode XML Node containing the species information - * * @param phaseNode Reference to the phase Information for the phase * that owns this species. - * * @param spInstalled Boolean indicating whether the species is * already installed. */ @@ -394,35 +174,18 @@ public: const XML_Node& speciesNode, const XML_Node& phaseNode, bool spInstalled); - //! Initialization routine for the PDSS object based on the phaseNode - /*! - * This is a cascading call, where each level should call the - * the parent level. - * - * @param phaseNode Reference to the phase Information for the phase - * that owns this species. - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ virtual void initThermoXML(const XML_Node& phaseNode, const std::string& id); //@} private: - //! Value of the constant molar volume for the species /*! * m3 / kmol */ doublereal m_constMolarVolume; - }; } #endif - - - diff --git a/include/cantera/thermo/PDSS_HKFT.h b/include/cantera/thermo/PDSS_HKFT.h index b55580847..df1fcfa78 100644 --- a/include/cantera/thermo/PDSS_HKFT.h +++ b/include/cantera/thermo/PDSS_HKFT.h @@ -27,37 +27,13 @@ class WaterProps; //! Class for pressure dependent standard states corresponding to //! ionic solutes in electrolyte water. /*! - * - * Virtual base class for calculation of the - * pressure dependent standard state for a single species - * - * Class %PDSS is the base class - * for a family of classes that compute properties of a set of - * species in their standard states at a range of temperatures - * and pressures. The independent variables for this object - * are temperature and pressure. - * The class may have a reference to a SpeciesThermo object - * which handles the calculation of the reference state temperature - * behavior of a subset of species. - * - * This class is analogous to the SpeciesThermoInterpType - * class, except that the standard state inherently incorporates - * the pressure dependence. - * - * The class operates on a setState temperature and pressure basis. - * It only recalculates the standard state when the setState functions - * for temperature and pressure are called - * * @ingroup pdssthermo */ class PDSS_HKFT : public PDSS { - public: - /** - * @name Constructors - * @{ - */ + //! @name Constructors + //! @{ //! Constructor that initializes the object by examining the XML entries //! from the ThermoPhase object @@ -114,35 +90,14 @@ public: //! Destructor for the phase virtual ~PDSS_HKFT(); - //! Duplicator virtual PDSS* duplMyselfAsPDSS() const; - /** - * @} - * @name Utilities - * @{ - */ + //! @} + //! @name Molar Thermodynamic Properties of the Solution + //! @{ - /** - * @} - * @name Molar Thermodynamic Properties of the Species Standard State - * in the Solution - * @{ - */ + // See PDSS.h for documentation of functions overridden from Class PDSS - /** - * @} - * @name Molar Thermodynamic Properties of the Solution -------------- - * @{ - */ - - //! Return the molar enthalpy in units of J kmol-1 - /*! - * Returns the species standard state enthalpy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in J kmol-1 - */ virtual doublereal enthalpy_mole() const; #ifdef DEBUG_MODE @@ -158,223 +113,63 @@ public: doublereal enthalpy_mole2() const; #endif - //! Return the standard state molar enthalpy divided by RT - /*! - * Returns the species standard state enthalpy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in unitless form - */ virtual doublereal enthalpy_RT() const; - - //! Return the molar internal Energy in units of J kmol-1 - /*! - * Returns the species standard state internal Energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state internal Energy in J kmol-1 - */ virtual doublereal intEnergy_mole() const; - - //! Return the molar entropy in units of J kmol-1 K-1 - /*! - * Returns the species standard state entropy in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state entropy in J kmol-1 K-1 - */ virtual doublereal entropy_mole() const; - - //! Return the molar gibbs free energy in units of J kmol-1 - /*! - * Returns the species standard state gibbs free energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state gibbs free energy in J kmol-1 - */ virtual doublereal gibbs_mole() const; - - //! Return the molar const pressure heat capacity in units of J kmol-1 K-1 - /*! - * Returns the species standard state Cp in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cp in J kmol-1 K-1 - */ virtual doublereal cp_mole() const; - - //! Return the molar const volume heat capacity in units of J kmol-1 K-1 - /*! - * Returns the species standard state Cv in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cv in J kmol-1 K-1 - */ virtual doublereal cv_mole() const; - - //! Return the molar volume at standard state - /*! - * Returns the species standard state molar volume at the - * current temperature and pressure - * - * @return returns the standard state molar volume divided by R - * units are m**3 kmol-1. - */ virtual doublereal molarVolume() const; - - //! Return the standard state density at standard state - /*! - * Returns the species standard state density at the - * current temperature and pressure - * - * @return returns the standard state density - * units are kg m-3 - */ virtual doublereal density() const; - /** - * @} - * @name Properties of the Reference State of the Species - * in the Solution - * @{ - */ + //! @} + //! @name Properties of the Reference State of the Species in the Solution + //! @{ - - //! Return the reference pressure for this phase. doublereal refPressure() const { return m_p0; } - //! Return the molar gibbs free energy divided by RT at reference pressure - /*! - * Returns the species reference state gibbs free energy divided by RT at the - * current temperature. - * - * @return returns the reference state gibbs free energy divided by RT - */ virtual doublereal gibbs_RT_ref() const; - - //! Return the molar enthalpy divided by RT at reference pressure - /*! - * Returns the species reference state enthalpy divided by RT at the - * current temperature. - * - * @return returns the reference state enthalpy divided by RT - */ virtual doublereal enthalpy_RT_ref() const; - - //! Return the molar entropy divided by R at reference pressure - /*! - * Returns the species reference state entropy divided by R at the - * current temperature. - * - * @return returns the reference state entropy divided by R - */ virtual doublereal entropy_R_ref() const; - - //! Return the molar heat capacity divided by R at reference pressure - /*! - * Returns the species reference state heat capacity divided by R at the - * current temperature. - * - * @return returns the reference state heat capacity divided by R - */ virtual doublereal cp_R_ref() const; - - //! Return the molar volume at reference pressure - /*! - * Returns the species reference state molar volume at the - * current temperature. - * - * @return returns the reference state molar volume divided by R - * units are m**3 kmol-1. - */ virtual doublereal molarVolume_ref() const; - /** - * @} - * @name Mechanical Equation of State Properties - * @{ - */ + //! @} + //! @name Mechanical Equation of State Properties + //! @{ - //! Returns the pressure (Pa) virtual doublereal pressure() const; - - //! Sets the pressure in the object - /*! - * Currently, this sets the pressure in the PDSS object. - * It is indeterminant what happens to the owning VPStandardStateTP - * object and to the VPSSMgr object. - * - * @param pres Pressure to be set (Pascal) - */ virtual void setPressure(doublereal pres); - - //! Set the internal temperature - /*! - * @param temp Temperature (Kelvin) - */ virtual void setTemperature(doublereal temp); - - //! Return the current stored temperature doublereal temperature() const; - - //! Set the internal temperature and pressure - /*! - * @param temp Temperature (Kelvin) - * @param pres pressure (Pascals) - */ virtual void setState_TP(doublereal temp, doublereal pres); - /** - * @} - * @name Miscellaneous properties of the standard state - * @{ - */ + //! @} + //! @name Miscellaneous properties of the standard state + //! @{ - /// critical temperature virtual doublereal critTemperature() const; - - /// critical pressure virtual doublereal critPressure() const; - - /// critical density virtual doublereal critDensity() const; - /** - * @} - * @name Initialization of the Object - * @{ - */ + //! @} + //! @name Initialization of the Object + //! @{ - //! Initialization routine for all of the shallow pointers - /*! - * This is a cascading call, where each level should call the - * the parent level. - * - * The initThermo() routines get called before the initThermoXML() routines - * from the constructPDSSXML() routine. - * - * - * Calls initPtrs(); - */ virtual void initThermo(); - //! Initialization of a PDSS object using an - //! input XML file. + //! Initialization of a PDSS object using an input XML file. /*! - * * This routine is a precursor to constructPDSSXML(XML_Node*) * routine, which does most of the work. * * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object * This object must have already been malloced. - * * @param spindex Species index within the phase - * * @param inputFile XML file containing the description of the * phase - * * @param id Optional parameter identifying the name of the * phase. If none is given, the first XML * phase element will be used. @@ -384,24 +179,19 @@ public: //! Initialization of a PDSS object using an xml tree /*! - * This routine is a driver for the initialization of the - * object. + * This routine is a driver for the initialization of the object. * * basic logic: - * initThermo() (cascade) - * getStuff from species Part of XML file - * initThermoXML(phaseNode) (cascade) + * - initThermo() (cascade) + * - getStuff from species Part of XML file + * - initThermoXML(phaseNode) (cascade) * * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object * This object must have already been malloced. - * * @param spindex Species index within the phase - * * @param speciesNode XML Node containing the species information - * * @param phaseNode Reference to the phase Information for the phase * that owns this species. - * * @param spInstalled Boolean indicating whether the species is * already installed. */ @@ -409,43 +199,13 @@ public: const XML_Node& speciesNode, const XML_Node& phaseNode, bool spInstalled); - //! Initialization routine for the PDSS object based on the phaseNode - /*! - * This is a cascading call, where each level should call the - * the parent level. - * - * @param phaseNode Reference to the phase Information for the phase - * that owns this species. - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ virtual void initThermoXML(const XML_Node& phaseNode, const std::string& id); - - //! Initialize or Reinitialize all shallow pointers in the object - /*! - * This command is called to reinitialize all shallow pointers in the - * object. It's needed for the duplicator capability - * - * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object - * This object must have already been malloced. - * - * @param vpssmgr_ptr Pointer to the variable pressure standard state - * calculator for this phase - * - * @param spthermo_ptr Pointer to the optional SpeciesThermo object - * that will handle the calculation of the reference - * state thermodynamic coefficients. - */ virtual void initAllPtrs(VPStandardStateTP* vptp_ptr, VPSSMgr* vpssmgr_ptr, SpeciesThermo* spthermo_ptr); - //! This utility function reports back the type of - //! parameterization and all of the parameters for the - //! species, index. + //! This utility function reports back the type of parameterization and + //! all of the parameters for the species, index. /*! - * * The following parameters are reported * * - c[0] = m_deltaG_formation_tr_pr; @@ -468,7 +228,6 @@ public: * @param minTemp output - Minimum temperature * @param maxTemp output - Maximum temperature * @param refPressure output - reference pressure (Pa). - * */ virtual void reportParams(size_t& kindex, int& type, doublereal* const c, doublereal& minTemp, doublereal& maxTemp, @@ -476,14 +235,11 @@ public: //@} - private: - //! Main routine that actually calculates the gibbs free energy difference //! between the reference state at Tr, Pr and T,P /*! * This is eEqn. 59 in Johnson et al. (1992). - * */ doublereal deltaG() const; @@ -563,7 +319,6 @@ private: //! Evaluate the Gstar value appearing in the HKFT formulation /*! - * * @param temp Temperature kelvin * @param pres Pressure (pascal) * @param ifunc parameters specifying the desired information @@ -577,26 +332,23 @@ private: //! Function to look up Element Free Energies /*! + * This function looks up the argument string in the element database and + * returns the associated 298 K Gibbs Free energy of the element in its + * stable state. * - * This static function looks up the argument string in the - * element database and returns the associated 298 K Gibbs Free energy - * of the element in its stable state + * @param elemName String. Only the first 3 characters are significant * - * @param elemName String. Only the first 3 characters are significant + * @return value contains the Gibbs free energy for that element * - * @return - * Return value contains the Gibbs free energy for that element - * - * @exception CanteraError + * @exception CanteraError * If a match is not found, a CanteraError is thrown as well */ doublereal LookupGe(const std::string& elemName); //! Translate a Gibbs free energy of formation value to a NIST-based Chemical potential /*! - * Internally, this function is used to translate the input value, - * m_deltaG_formation_tr_pr, - * to the internally stored value, m_Mu0_tr_pr. + * Internally, this function is used to translate the input value, + * m_deltaG_formation_tr_pr, to the internally stored value, m_Mu0_tr_pr. */ void convertDGFormation(); @@ -691,12 +443,8 @@ private: //! Charge of the ion doublereal m_charge_j; - }; } #endif - - - diff --git a/include/cantera/thermo/PDSS_IdealGas.h b/include/cantera/thermo/PDSS_IdealGas.h index 05be5147c..121d39257 100644 --- a/include/cantera/thermo/PDSS_IdealGas.h +++ b/include/cantera/thermo/PDSS_IdealGas.h @@ -14,13 +14,11 @@ #include "PDSS.h" - namespace Cantera { class XML_Node; class VPStandardStateTP; - //! Derived class for pressure dependent standard states of an ideal gas species /*! * This class is for a single Ideal Gas species. @@ -29,13 +27,9 @@ class VPStandardStateTP; */ class PDSS_IdealGas : public PDSS { - public: - - /** - * @name Constructors - * @{ - */ + //! @name Constructors + //! @{ //! Constructor /*! @@ -71,7 +65,6 @@ public: PDSS_IdealGas(VPStandardStateTP* tp, int spindex, const std::string& inputFile, const std::string& id = ""); - //! Constructor that initializes the object by examining the input file //! of the ThermoPhase object /*! @@ -87,267 +80,66 @@ public: PDSS_IdealGas(VPStandardStateTP* vptp_ptr, size_t spindex, const XML_Node& speciesNode, const XML_Node& phaseRef, bool spInstalled); - //! Destructor virtual ~PDSS_IdealGas(); - //! Duplicator virtual PDSS* duplMyselfAsPDSS() const; - /** - * @} - * @name Utilities - * @{ - */ + //! @} + //! @name Molar Thermodynamic Properties of the Species Standard State in the Solution + //! @{ - /** - * @} - * @name Molar Thermodynamic Properties of the Species Standard State - * in the Solution - * @{ - */ + // See PDSS.h for documentation of functions overridden from Class PDSS - //! Return the molar enthalpy in units of J kmol-1 - /*! - * Returns the species standard state enthalpy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in J kmol-1 - */ virtual doublereal enthalpy_mole() const; - - //! Return the standard state molar enthalpy divided by RT - /*! - * Returns the species standard state enthalpy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in unitless form - */ virtual doublereal enthalpy_RT() const; - - //! Return the molar internal Energy in units of J kmol-1 - /*! - * Returns the species standard state internal Energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state internal Energy in J kmol-1 - */ virtual doublereal intEnergy_mole() const; - - //! Return the molar entropy in units of J kmol-1 K-1 - /*! - * Returns the species standard state entropy in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state entropy in J kmol-1 K-1 - */ virtual doublereal entropy_mole() const; - - //! Return the standard state entropy divided by RT - /*! - * Returns the species standard state entropy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state entropy divided by RT - */ virtual doublereal entropy_R() const; - - //! Return the molar gibbs free energy in units of J kmol-1 - /*! - * Returns the species standard state gibbs free energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state gibbs free energy in J kmol-1 - */ virtual doublereal gibbs_mole() const; - - //! Return the molar gibbs free energy divided by RT - /*! - * Returns the species standard state gibbs free energy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state gibbs free energy divided by RT - */ virtual doublereal gibbs_RT() const; - - //! Return the molar const pressure heat capacity in units of J kmol-1 K-1 - /*! - * Returns the species standard state Cp in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cp in J kmol-1 K-1 - */ virtual doublereal cp_mole() const; - - //! Return the molar const pressure heat capacity divided by RT - /*! - * Returns the species standard state Cp divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state Cp divided by RT - */ virtual doublereal cp_R() const; - - //! Return the molar const volume heat capacity in units of J kmol-1 K-1 - /*! - * Returns the species standard state Cv in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cv in J kmol-1 K-1 - */ virtual doublereal cv_mole() const; - - //! Return the molar volume at standard state - /*! - * Returns the species standard state molar volume at the - * current temperature and pressure - * - * @return returns the standard state molar volume divided by R - * units are m**3 kmol-1. - */ virtual doublereal molarVolume() const; - - //! Return the standard state density at standard state - /*! - * Returns the species standard state density at the - * current temperature and pressure - * - * @return returns the standard state density - * units are kg m-3 - */ virtual doublereal density() const; - /** - * @} - * @name Properties of the Reference State of the Species - * in the Solution - * @{ - */ + //! @} + //! @name Properties of the Reference State of the Species in the Solution + //! @{ - //! Return the molar gibbs free energy divided by RT at reference pressure - /*! - * Returns the species reference state gibbs free energy divided by RT at the - * current temperature. - * - * @return returns the reference state gibbs free energy divided by RT - */ virtual doublereal gibbs_RT_ref() const; - - //! Return the molar enthalpy divided by RT at reference pressure - /*! - * Returns the species reference state enthalpy divided by RT at the - * current temperature. - * - * @return returns the reference state enthalpy divided by RT - */ virtual doublereal enthalpy_RT_ref() const; - - //! Return the molar entropy divided by R at reference pressure - /*! - * Returns the species reference state entropy divided by R at the - * current temperature. - * - * @return returns the reference state entropy divided by R - */ virtual doublereal entropy_R_ref() const; - - //! Return the molar heat capacity divided by R at reference pressure - /*! - * Returns the species reference state heat capacity divided by R at the - * current temperature. - * - * @return returns the reference state heat capacity divided by R - */ virtual doublereal cp_R_ref() const; - - //! Return the molar volume at reference pressure - /*! - * Returns the species reference state molar volume at the - * current temperature. - * - * @return returns the reference state molar volume divided by R - * units are m**3 kmol-1. - */ virtual doublereal molarVolume_ref() const; - /* - * Get the difference in the standard state thermodynamic properties - * between the reference pressure, po, and the current pressure. - */ + //! @} + //! @name Mechanical Equation of State Properties + //! @{ - /** - * @} - * @name Mechanical Equation of State Properties - * @{ - */ - - //! Returns the pressure (Pa) virtual doublereal pressure() const; - - //! Sets the pressure in the object - /*! - * Currently, this sets the pressure in the PDSS object. - * It is indeterminant what happens to the owning VPStandardStateTP - * object and to the VPSSMgr object. - * - * @param pres Pressure to be set (Pascal) - */ virtual void setPressure(doublereal pres); - - //! Set the internal temperature - /*! - * @param temp Temperature (Kelvin) - */ virtual void setTemperature(doublereal temp); - - //! Return the current stored temperature doublereal temperature() const; - - //! Set the internal temperature and pressure - /*! - * @param temp Temperature (Kelvin) - * @param pres pressure (Pascals) - */ virtual void setState_TP(doublereal temp, doublereal pres); - - //! Set the internal temperature and density - /*! - * @param temp Temperature (Kelvin) - * @param rho Density (Pascals) - */ virtual void setState_TR(doublereal temp, doublereal rho); - /** - * @} - * @name Miscellaneous properties of the standard state - * @{ - */ + //! @} + //! @name Miscellaneous properties of the standard state + //! @{ - /// critical temperature virtual doublereal critTemperature() const; - - /// critical pressure virtual doublereal critPressure() const; - - /// critical density virtual doublereal critDensity() const; - - /// saturation pressure - /*! - * @param t Temperature (Kelvin) - */ virtual doublereal satPressure(doublereal t); - /** - * @} - * @name Initialization of the Object - * @{ - */ + //! @} + //! @name Initialization of the Object + //! @{ - //! Initialization of a PDSS object using an - //! input XML file. + //! Initialization of a PDSS object using an input XML file. /*! - * * This routine is a precursor to constructPDSSXML(XML_Node*) * routine, which does most of the work. * @@ -356,8 +148,7 @@ public: * * @param spindex Species index within the phase * - * @param inputFile XML file containing the description of the - * phase + * @param inputFile XML file containing the description of the phase * * @param id Optional parameter identifying the name of the * phase. If none is given, the first XML @@ -368,13 +159,12 @@ public: //!Initialization of a PDSS object using an xml tree /*! - * This routine is a driver for the initialization of the - * object. + * This routine is a driver for the initialization of the object. * - * basic logic: - * initThermo() (cascade) - * getStuff from species Part of XML file - * initThermoXML(phaseNode) (cascade) + * basic logic: + * - initThermo() (cascade) + * - get stuff from species part of XML file + * - initThermoXML(phaseNode) (cascade) * * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object * This object must have already been malloced. @@ -391,33 +181,8 @@ public: void constructPDSSXML(VPStandardStateTP* vptp_ptr, size_t spindex, const XML_Node& phaseNode, const std::string& id); - //! Initialization routine for the PDSS object based on the phaseNode - /*! - * This is a cascading call, where each level should call the - * the parent level. - * - * @param phaseNode Reference to the phase Information for the phase - * that owns this species. - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ virtual void initThermoXML(const XML_Node& phaseNode, const std::string& id); - - //! Initialization routine for all of the shallow pointers - /*! - * This is a cascading call, where each level should call the - * the parent level. - * - * The initThermo() routines get called before the initThermoXML() routines - * from the constructPDSSXML() routine. - * - * - * Calls initPtrs(); - */ virtual void initThermo(); - //@} }; } diff --git a/include/cantera/thermo/PDSS_IonsFromNeutral.h b/include/cantera/thermo/PDSS_IonsFromNeutral.h index 637a4960c..2c8b666c4 100644 --- a/include/cantera/thermo/PDSS_IonsFromNeutral.h +++ b/include/cantera/thermo/PDSS_IonsFromNeutral.h @@ -15,14 +15,12 @@ #include "PDSS.h" - namespace Cantera { class XML_Node; class VPStandardStateTP; class ThermoPhase; - //! Derived class for pressure dependent standard states of an ideal gas species /*! * This class is for a single Ideal Gas species. @@ -31,13 +29,9 @@ class ThermoPhase; */ class PDSS_IonsFromNeutral : public PDSS { - public: - - /** - * @name Constructors - * @{ - */ + //! @name Constructors + //! @{ //! Constructor /*! @@ -61,7 +55,6 @@ public: PDSS_IonsFromNeutral(VPStandardStateTP* tp, size_t spindex, const std::string& inputFile, const std::string& id = ""); - //! Constructor that initializes the object by examining the input file //! of the ThermoPhase object /*! @@ -92,301 +85,88 @@ public: //! Destructor virtual ~PDSS_IonsFromNeutral(); - //! Duplicator virtual PDSS* duplMyselfAsPDSS() const; - - //! Initialize or Reinitialize all shallow pointers in the object - /*! - * This command is called to reinitialize all shallow pointers in the - * object. It's needed for the duplicator capability. - * We need to have an inherited function here to set neutralMoleculePhase_ properly. - * - * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object - * This object must have already been malloced. - * - * @param vpssmgr_ptr Pointer to the variable pressure standard state - * calculator for this phase - * - * @param spthermo_ptr Pointer to the optional SpeciesThermo object - * that will handle the calculation of the reference - * state thermodynamic coefficients. - */ virtual void initAllPtrs(VPStandardStateTP* vptp_ptr, VPSSMgr* vpssmgr_ptr, SpeciesThermo* spthermo_ptr); - /** - * @} - * @name Utilities - * @{ - */ + //! @} + //! @name Molar Thermodynamic Properties of the Species Standard State in the Solution + //! @{ - /** - * @} - * @name Molar Thermodynamic Properties of the Species Standard State - * in the Solution - * @{ - */ + // See PDSS.h for documentation of functions overridden from Class PDSS - //! Return the molar enthalpy in units of J kmol-1 - /*! - * Returns the species standard state enthalpy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in J kmol-1 - */ virtual doublereal enthalpy_mole() const; - - //! Return the standard state molar enthalpy divided by RT - /*! - * Returns the species standard state enthalpy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in unitless form - */ virtual doublereal enthalpy_RT() const; - - //! Return the molar internal Energy in units of J kmol-1 - /*! - * Returns the species standard state internal Energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state internal Energy in J kmol-1 - */ virtual doublereal intEnergy_mole() const; - - //! Return the molar entropy in units of J kmol-1 K-1 - /*! - * Returns the species standard state entropy in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state entropy in J kmol-1 K-1 - */ virtual doublereal entropy_mole() const; - - //! Return the standard state entropy divided by RT - /*! - * Returns the species standard state entropy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state entropy divided by RT - */ virtual doublereal entropy_R() const; - - //! Return the molar gibbs free energy in units of J kmol-1 - /*! - * Returns the species standard state gibbs free energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state gibbs free energy in J kmol-1 - */ virtual doublereal gibbs_mole() const; - //! Return the molar gibbs free energy divided by RT /*! - * Returns the species standard state gibbs free energy divided by RT at the - * current temperature and pressure. + * @copydoc PDSS::gibbs_RT() * - * \f[ - * \frac{\mu^o_k}{RT} = \sum_{m}{ \alpha_{m , k} \frac{\mu^o_{m}}{RT}} + ( 1 - \delta_{k,sp}) 2.0 \ln{2.0} - * \f] + * \f[ + * \frac{\mu^o_k}{RT} = \sum_{m}{ \alpha_{m , k} \frac{\mu^o_{m}}{RT}} + ( 1 - \delta_{k,sp}) 2.0 \ln{2.0} + * \f] * - * m is the neutral molecule species index. \f$ \alpha_{m , k} \f$ is the stoiciometric - * coefficient for the neutral molecule, m, that creates the thermodynamics for the ionic species k. - * A factor \f$ 2.0 \ln{2.0} \f$ is added to all ions except for the species ionic species, which in this - * case is the single anion species, with species index sp. - * - * @return Returns the species standard state gibbs free energy divided by RT + * m is the neutral molecule species index. \f$ \alpha_{m , k} \f$ is the stoiciometric + * coefficient for the neutral molecule, m, that creates the thermodynamics for the ionic species k. + * A factor \f$ 2.0 \ln{2.0} \f$ is added to all ions except for the species ionic species, which in this + * case is the single anion species, with species index sp. */ virtual doublereal gibbs_RT() const; - //! Return the molar const pressure heat capacity in units of J kmol-1 K-1 - /*! - * Returns the species standard state Cp in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cp in J kmol-1 K-1 - */ virtual doublereal cp_mole() const; - - //! Return the molar const pressure heat capacity divided by RT - /*! - * Returns the species standard state Cp divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state Cp divided by RT - */ virtual doublereal cp_R() const; - - //! Return the molar const volume heat capacity in units of J kmol-1 K-1 - /*! - * Returns the species standard state Cv in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cv in J kmol-1 K-1 - */ virtual doublereal cv_mole() const; - - //! Return the molar volume at standard state - /*! - * Returns the species standard state molar volume at the - * current temperature and pressure - * - * @return returns the standard state molar volume divided by R - * units are m**3 kmol-1. - */ virtual doublereal molarVolume() const; - - //! Return the standard state density at standard state - /*! - * Returns the species standard state density at the - * current temperature and pressure - * - * @return returns the standard state density - * units are kg m-3 - */ virtual doublereal density() const; - /** - * @} - * @name Properties of the Reference State of the Species - * in the Solution - * @{ - */ + //! @} + //! @name Properties of the Reference State of the Species in the Solution + //! @{ - //! Return the molar gibbs free energy divided by RT at reference pressure - /*! - * Returns the species reference state gibbs free energy divided by RT at the - * current temperature. - * - * @return returns the reference state gibbs free energy divided by RT - */ virtual doublereal gibbs_RT_ref() const; - - //! Return the molar enthalpy divided by RT at reference pressure - /*! - * Returns the species reference state enthalpy divided by RT at the - * current temperature. - * - * @return returns the reference state enthalpy divided by RT - */ virtual doublereal enthalpy_RT_ref() const; - - //! Return the molar entropy divided by R at reference pressure - /*! - * Returns the species reference state entropy divided by R at the - * current temperature. - * - * @return returns the reference state entropy divided by R - */ virtual doublereal entropy_R_ref() const; - - //! Return the molar heat capacity divided by R at reference pressure - /*! - * Returns the species reference state heat capacity divided by R at the - * current temperature. - * - * @return returns the reference state heat capacity divided by R - */ virtual doublereal cp_R_ref() const; - - //! Return the molar volume at reference pressure - /*! - * Returns the species reference state molar volume at the - * current temperature. - * - * @return returns the reference state molar volume divided by R - * units are m**3 kmol-1. - */ virtual doublereal molarVolume_ref() const; - /* - * Get the difference in the standard state thermodynamic properties - * between the reference pressure, po, and the current pressure. - */ + //! @} + //! @name Mechanical Equation of State Properties + //! @{ - /** - * @} - * @name Mechanical Equation of State Properties - * @{ - */ - - //! Returns the pressure (Pa) virtual doublereal pressure() const; - - //! Sets the pressure in the object - /*! - * Currently, this sets the pressure in the PDSS object. - * It is indeterminant what happens to the owning VPStandardStateTP - * object and to the VPSSMgr object. - * - * @param pres Pressure to be set (Pascal) - */ virtual void setPressure(doublereal pres); - - //! Set the internal temperature - /*! - * @param temp Temperature (Kelvin) - */ virtual void setTemperature(doublereal temp); - - //! Return the current stored temperature doublereal temperature() const; - - //! Set the internal temperature and pressure - /*! - * @param temp Temperature (Kelvin) - * @param pres pressure (Pascals) - */ virtual void setState_TP(doublereal temp, doublereal pres); - - //! Set the internal temperature and density - /*! - * @param temp Temperature (Kelvin) - * @param rho Density (Pascals) - */ virtual void setState_TR(doublereal temp, doublereal rho); - /** - * @} - * @name Miscellaneous properties of the standard state - * @{ - */ + //! @} + //! @name Miscellaneous properties of the standard state + //! @{ - /// critical temperature virtual doublereal critTemperature() const; - - /// critical pressure virtual doublereal critPressure() const; - - /// critical density virtual doublereal critDensity() const; - - /// saturation pressure - /*! - * @param t Temperature (Kelvin) - */ virtual doublereal satPressure(doublereal t); - /** - * @} - * @name Initialization of the Object - * @{ - */ + //! @} + //! @name Initialization of the Object + //! @{ - //! Initialization of a PDSS object using an - //! input XML file. + //! Initialization of a PDSS object using an input XML file. /*! - * * This routine is a precursor to constructPDSSXML(XML_Node*) * routine, which does most of the work. * - * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object + * @param vptp_ptr Pointer to the Variable pressure ThermoPhase object * This object must have already been malloced. * * @param spindex Species index within the phase * - * @param inputFile XML file containing the description of the - * phase + * @param inputFile XML file containing the description of the phase * * @param id Optional parameter identifying the name of the * phase. If none is given, the first XML @@ -400,9 +180,9 @@ public: * This routine is a driver for the initialization of the object. * * basic logic: - * initThermo() (cascade) - * getStuff from species Part of XML file - * initThermoXML(phaseNode) (cascade) + * - initThermo() (cascade) + * - getStuff from species Part of XML file + * - initThermoXML(phaseNode) (cascade) * * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object * This object must have already been malloced. @@ -423,37 +203,10 @@ public: const XML_Node& speciesNode, const XML_Node& phaseNode, const std::string& id); - //! Initialization routine for the PDSS object based on the phaseNode - /*! - * This is a cascading call, where each level should call the - * the parent level. - * - * @param phaseNode Reference to the phase Information for the phase - * that owns this species. - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ virtual void initThermoXML(const XML_Node& phaseNode, const std::string& id); - - //! Initialization routine for all of the shallow pointers - /*! - * This is a cascading call, where each level should call the - * the parent level. - * - * The initThermo() routines get called before the initThermoXML() routines - * from the constructPDSSXML() routine. - * - * - * Calls initPtrs(); - */ virtual void initThermo(); - //@} - - protected: //! Pointer to the Neutral Molecule ThermoPhase object /*! @@ -462,7 +215,6 @@ protected: const ThermoPhase* neutralMoleculePhase_; public: - //! Number of neutral molecule species that make up the stoichiometric vector for //! this species, in terms of calculating thermodynamic functions size_t numMult_; @@ -489,6 +241,3 @@ public: } #endif - - - diff --git a/include/cantera/thermo/PDSS_SSVol.h b/include/cantera/thermo/PDSS_SSVol.h index ac32ab2fe..8c478f9e2 100644 --- a/include/cantera/thermo/PDSS_SSVol.h +++ b/include/cantera/thermo/PDSS_SSVol.h @@ -23,86 +23,82 @@ class VPStandardStateTP; //! Class for pressure dependent standard states that uses a standard state volume //! model of some sort. /*! - * Class PDSS_SSVol is an implementation class that compute the properties of a single - * species in a phase at its standard states, for a range of temperatures - * and pressures. This particular class assumes that the calculation of the - * thermodynamics functions can be separated into a temperature polynomial representation - * for thermo functions that can be handled bey a SimpleThermo object and - * a separate calculation for the standard state volume. - * The Models include a cubic polynomial in temperature for either - * the standard state volume or the standard state density. - * The manager uses a SimpleThermo object to handle the - * calculation of the reference state. This object then adds the - * pressure dependencies and the volume terms to these thermo functions - * to complete the representation. + * Class PDSS_SSVol is an implementation class that compute the properties of a + * single species in a phase at its standard states, for a range of + * temperatures and pressures. This particular class assumes that the + * calculation of the thermodynamics functions can be separated into a + * temperature polynomial representation for thermo functions that can be + * handled bey a SimpleThermo object and a separate calculation for the + * standard state volume. The Models include a cubic polynomial in temperature + * for either the standard state volume or the standard state density. The + * manager uses a SimpleThermo object to handle the calculation of the + * reference state. This object then adds the pressure dependencies and the + * volume terms to these thermo functions to complete the representation. * - * The class includes the following models for the representation of the - * standard state volume: + * The class includes the following models for the representation of the + * standard state volume: * - * - Constant Volume - * - This standard state model is invoked with the keyword "constant_incompressible" - * or "constant". The standard state volume is considered constant. - * \f[ - * V^o_k(T,P) = a_0 - * \f] - * . + * - Constant Volume + * - This standard state model is invoked with the keyword "constant_incompressible" + * or "constant". The standard state volume is considered constant. + * \f[ + * V^o_k(T,P) = a_0 + * \f] * - * - Temperature polynomial for the standard state volume - * - This standard state model is invoked with the keyword "temperature_polynomial". - * The standard state volume is considered a function of temperature only. - * \f[ - * V^o_k(T,P) = a_0 + a_1 T + a_2 T^2 + a_3 T^3 + a_4 T^4 - * \f] - * . + * - Temperature polynomial for the standard state volume + * - This standard state model is invoked with the keyword "temperature_polynomial". + * The standard state volume is considered a function of temperature only. + * \f[ + * V^o_k(T,P) = a_0 + a_1 T + a_2 T^2 + a_3 T^3 + a_4 T^4 + * \f] * - * - Temperature polynomial for the standard state density - * - This standard state model is invoked with the keyword "density_temperature_polynomial". - * The standard state density, which is the inverse of the volume, - * is considered a function of temperature only. - * \f[ - * {\rho}^o_k(T,P) = \frac{M_k}{V^o_k(T,P)} = a_0 + a_1 T + a_2 T^2 + a_3 T^3 + a_4 T^4 - * \f] - * . - * . + * - Temperature polynomial for the standard state density + * - This standard state model is invoked with the keyword "density_temperature_polynomial". + * The standard state density, which is the inverse of the volume, + * is considered a function of temperature only. + * \f[ + * {\rho}^o_k(T,P) = \frac{M_k}{V^o_k(T,P)} = a_0 + a_1 T + a_2 T^2 + a_3 T^3 + a_4 T^4 + * \f] * * Specification of Species Standard %State Properties * - * The standard molar Gibbs free energy for species k is determined from the enthalpy - * and entropy expressions + * The standard molar Gibbs free energy for species k is determined from + * the enthalpy and entropy expressions * * \f[ * G^o_k(T,P) = H^o_k(T,P) - S^o_k(T,P) * \f] * - * The enthalpy is calculated mostly from the %SpeciesThermo object's enthalpy evalulator. The - * dependence on pressure originates from the Maxwell relation + * The enthalpy is calculated mostly from the %SpeciesThermo object's enthalpy + * evalulator. The dependence on pressure originates from the Maxwell relation * * \f[ * {\left(\frac{dH^o_k}{dP}\right)}_T = T {\left(\frac{dS^o_k}{dP}\right)}_T + V^o_k * \f] - * which is equal to + * which is equal to * * \f[ * {\left(\frac{dH^o_k}{dP}\right)}_T = V^o_k - T {\left(\frac{dV^o_k}{dT}\right)}_P * \f] * - * The entropy is calculated mostly from the %SpeciesThermo objects entropy evalulator. The - * dependence on pressure originates from the Maxwell relation: + * The entropy is calculated mostly from the %SpeciesThermo objects entropy + * evalulator. The dependence on pressure originates from the Maxwell relation: * * \f[ * {\left(\frac{dS^o_k}{dP}\right)}_T = - {\left(\frac{dV^o_k}{dT}\right)}_P * \f] * - * The standard state constant-pressure heat capacity expression is obtained from taking the - * temperature derivative of the Maxwell relation involving the enthalpy given above - * to yield an expression for the pressure dependence of the heat capacity. + * The standard state constant-pressure heat capacity expression is obtained + * from taking the temperature derivative of the Maxwell relation involving the + * enthalpy given above to yield an expression for the pressure dependence of + * the heat capacity. * * \f[ * {\left(\frac{d{C}^o_{p,k}}{dP}\right)}_T = - T {\left(\frac{{d}^2{V}^o_k}{{dT}^2}\right)}_T * \f] * - * The standard molar Internal Energy for species k is determined from the following - * relation. + * The standard molar Internal Energy for species k is determined from the following + * relation. * * \f[ * U^o_k(T,P) = H^o_k(T,P) - p V^o_k @@ -110,66 +106,61 @@ class VPStandardStateTP; * * XML Example * - * An example of the specification of a standard state for the LiCl molten salt - * which employs a constant molar volume expression. + * An example of the specification of a standard state for the LiCl molten salt + * which employs a constant molar volume expression. * - @verbatim - - - Li:1 Cl:1 - - 0.02048004 - - - - - 73.18025, -9.047232, -0.316390, - 0.079587, 0.013594, -417.1314, - 157.6711 - - - - - - @endverbatim + * @code + * + * + * Li:1 Cl:1 + * + * 0.02048004 + * + * + * + * + * 73.18025, -9.047232, -0.316390, + * 0.079587, 0.013594, -417.1314, + * 157.6711 + * + * + * + * + * + * @endcode * - * An example of the specification of a standard state for the LiCl molten salt - * which has a temperature dependent standard state volume. - * - @verbatim - - - Li:1 Cl:1 - - - 1.98715, -5.890906E-4, 0.0, 0.0 - - - - - - 73.18025, -9.047232, -0.316390, - 0.079587, 0.013594, -417.1314, - 157.6711 - - - - - - @endverbatim + * An example of the specification of a standard state for the LiCl molten salt + * which has a temperature dependent standard state volume. * + * @code + * + * + * Li:1 Cl:1 + * + * + * 1.98715, -5.890906E-4, 0.0, 0.0 + * + * + * + * + * + * 73.18025, -9.047232, -0.316390, + * 0.079587, 0.013594, -417.1314, + * 157.6711 + * + * + * + * + * + * @endcode * * @ingroup pdssthermo */ class PDSS_SSVol : public PDSS { - public: - - /** - * @name Constructors - * @{ - */ + //! @name Constructors + //! @{ //! Constructor /*! @@ -178,7 +169,6 @@ public: */ PDSS_SSVol(VPStandardStateTP* tp, size_t spindex); - //! Constructor that initializes the object by examining the input file //! of the ThermoPhase object /*! @@ -224,274 +214,67 @@ public: //! Destructor virtual ~PDSS_SSVol(); - //! Duplicator virtual PDSS* duplMyselfAsPDSS() const; - /** - * @} - * @name Utilities - * @{ - */ + //! @} + //! @name Molar Thermodynamic Properties of the Species Standard State in the Solution + //! @{ - /** - * @} - * @name Molar Thermodynamic Properties of the Species Standard State - * in the Solution - * @{ - */ + // See PDSS.h for documentation of functions overridden from Class PDSS - //! Return the molar enthalpy in units of J kmol-1 - /*! - * Returns the species standard state enthalpy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in J kmol-1 - */ virtual doublereal enthalpy_mole() const; - - //! Return the standard state molar enthalpy divided by RT - /*! - * Returns the species standard state enthalpy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in unitless form - */ virtual doublereal enthalpy_RT() const; - - //! Return the molar internal Energy in units of J kmol-1 - /*! - * Returns the species standard state internal Energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state internal Energy in J kmol-1 - */ virtual doublereal intEnergy_mole() const; - - //! Return the molar entropy in units of J kmol-1 K-1 - /*! - * Returns the species standard state entropy in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state entropy in J kmol-1 K-1 - */ virtual doublereal entropy_mole() const; - - //! Return the standard state entropy divided by RT - /*! - * Returns the species standard state entropy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state entropy divided by RT - */ virtual doublereal entropy_R() const; - - //! Return the molar gibbs free energy in units of J kmol-1 - /*! - * Returns the species standard state gibbs free energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state gibbs free energy in J kmol-1 - */ virtual doublereal gibbs_mole() const; - - //! Return the molar gibbs free energy divided by RT - /*! - * Returns the species standard state gibbs free energy divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state gibbs free energy divided by RT - */ virtual doublereal gibbs_RT() const; - - //! Return the molar const pressure heat capacity in units of J kmol-1 K-1 - /*! - * Returns the species standard state Cp in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cp in J kmol-1 K-1 - */ virtual doublereal cp_mole() const; - - //! Return the molar const pressure heat capacity divided by RT - /*! - * Returns the species standard state Cp divided by RT at the - * current temperature and pressure. - * - * @return returns the species standard state Cp divided by RT - */ virtual doublereal cp_R() const; - - //! Return the molar const volume heat capacity in units of J kmol-1 K-1 - /*! - * Returns the species standard state Cv in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cv in J kmol-1 K-1 - */ virtual doublereal cv_mole() const; - - //! Return the molar volume at standard state - /*! - * Returns the species standard state molar volume at the - * current temperature and pressure - * - * @return returns the standard state molar volume divided by R - * units are m**3 kmol-1. - */ virtual doublereal molarVolume() const; - - //! Return the standard state density at standard state - /*! - * Returns the species standard state density at the - * current temperature and pressure - * - * @return returns the standard state density - * units are kg m-3 - */ virtual doublereal density() const; - /** - * @} - * @name Properties of the Reference State of the Species - * in the Solution - * @{ - */ + //! @} + //! @name Properties of the Reference State of the Species in the Solution + //! @{ - //! Return the molar gibbs free energy divided by RT at reference pressure - /*! - * Returns the species reference state gibbs free energy divided by RT at the - * current temperature. - * - * @return returns the reference state gibbs free energy divided by RT - */ virtual doublereal gibbs_RT_ref() const; - - //! Return the molar enthalpy divided by RT at reference pressure - /*! - * Returns the species reference state enthalpy divided by RT at the - * current temperature. - * - * @return returns the reference state enthalpy divided by RT - */ virtual doublereal enthalpy_RT_ref() const; - - //! Return the molar entropy divided by R at reference pressure - /*! - * Returns the species reference state entropy divided by R at the - * current temperature. - * - * @return returns the reference state entropy divided by R - */ virtual doublereal entropy_R_ref() const; - - //! Return the molar heat capacity divided by R at reference pressure - /*! - * Returns the species reference state heat capacity divided by R at the - * current temperature. - * - * @return returns the reference state heat capacity divided by R - */ virtual doublereal cp_R_ref() const; - - //! Return the molar volume at reference pressure - /*! - * Returns the species reference state molar volume at the - * current temperature. - * - * @return returns the reference state molar volume divided by R - * units are m**3 kmol-1. - */ virtual doublereal molarVolume_ref() const; private: - //! Does the internal calculation of the volume - /*! - * - */ void calcMolarVolume() const; - /** - * @} - * @name Mechanical Equation of State Properties - * @{ - */ + //! @} + //! @name Mechanical Equation of State Properties + //! @{ - //! Sets the pressure in the object - /*! - * Currently, this sets the pressure in the PDSS object. - * It is indeterminant what happens to the owning VPStandardStateTP - * object and to the VPSSMgr object. - * - * @param pres Pressure to be set (Pascal) - */ virtual void setPressure(doublereal pres); - - //! Set the internal temperature - /*! - * @param temp Temperature (Kelvin) - */ virtual void setTemperature(doublereal temp); - - //! Set the internal temperature and pressure - /*! - * @param temp Temperature (Kelvin) - * @param pres pressure (Pascals) - */ virtual void setState_TP(doublereal temp, doublereal pres); - - - //! Set the internal temperature and density - /*! - * @param temp Temperature (Kelvin) - * @param rho Density (kg m-3) - */ virtual void setState_TR(doublereal temp, doublereal rho); - /** - * @} - * @name Miscellaneous properties of the standard state - * @{ - */ + //! @} + //! @name Miscellaneous properties of the standard state + //! @{ - /// critical temperature virtual doublereal critTemperature() const; - - /// critical pressure virtual doublereal critPressure() const; - - /// critical density virtual doublereal critDensity() const; - - /// saturation pressure - /*! - * @param t Temperature (kelvin) - */ virtual doublereal satPressure(doublereal t); - /** - * @} - * @name Initialization of the Object - * @{ - */ + //! @} + //! @name Initialization of the Object + //! @{ - //! Initialization routine for all of the shallow pointers - /*! - * This is a cascading call, where each level should call the - * the parent level. - * - * The initThermo() routines get called before the initThermoXML() routines - * from the constructPDSSXML() routine. - * - * - * Calls initPtrs(); - */ virtual void initThermo(); - //! Initialization of a PDSS object using an - //! input XML file. + //! Initialization of a PDSS object using an input XML file. /*! - * * This routine is a precursor to constructPDSSXML(XML_Node*) * routine, which does most of the work. * @@ -500,8 +283,7 @@ private: * * @param spindex Species index within the phase * - * @param inputFile XML file containing the description of the - * phase + * @param inputFile XML file containing the description of the phase * * @param id Optional parameter identifying the name of the * phase. If none is given, the first XML @@ -512,13 +294,12 @@ private: //! Initialization of a PDSS object using an xml tree /*! - * This routine is a driver for the initialization of the - * object. + * This routine is a driver for the initialization of the object. * * basic logic: - * initThermo() (cascade) - * getStuff from species Part of XML file - * initThermoXML(phaseNode) (cascade) + * - initThermo() (cascade) + * - getStuff from species Part of XML file + * - initThermoXML(phaseNode) (cascade) * * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object * This object must have already been malloced. @@ -537,24 +318,10 @@ private: const XML_Node& speciesNode, const XML_Node& phaseNode, bool spInstalled); - //! Initialization routine for the PDSS object based on the phaseNode - /*! - * This is a cascading call, where each level should call the - * the parent level. - * - * @param phaseNode Reference to the phase Information for the phase - * that owns this species. - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ virtual void initThermoXML(const XML_Node& phaseNode, const std::string& id); - //@} private: - //! Enumerated data type describing the type of volume model //! used to calculate the standard state volume of the species SSVolume_Model_enumType volumeModel_; @@ -573,12 +340,8 @@ private: //! 2nd derivative of the volume wrt temperature mutable doublereal d2VdT2_; - }; } #endif - - - diff --git a/include/cantera/thermo/PDSS_Water.h b/include/cantera/thermo/PDSS_Water.h index b4a3aaf82..87ec86fac 100644 --- a/include/cantera/thermo/PDSS_Water.h +++ b/include/cantera/thermo/PDSS_Water.h @@ -16,9 +16,6 @@ #include "PDSS.h" #include "VPStandardStateTP.h" - - - namespace Cantera { class WaterPropsIAPWS; @@ -27,7 +24,6 @@ class WaterProps; //! Class for the liquid water pressure dependent //! standard state /*! - * * Notes: * Base state for thermodynamic properties: * @@ -38,7 +34,7 @@ class WaterProps; * Delta_Hfo_gas(298.15) = -241.826 kJ/gmol * So_gas(298.15, 1bar) = 188.835 J/gmolK * - * (http://webbook.nist.gov) + * (http://webbook.nist.gov) * * The "o" here refers to a hypothetical ideal gas state. The way * we achieve this in practice is to evaluate at a very low pressure @@ -57,13 +53,9 @@ class WaterProps; */ class PDSS_Water : public PDSS { - public: - - /** - * @name Constructors - * @{ - */ + //! @name Constructors + //! @{ //! Bare constructor /*! @@ -135,99 +127,24 @@ public: */ virtual PDSS* duplMyselfAsPDSS() const; - /** - * @} - * @name Utilities - * @{ - */ + //! @} + //! @name Molar Thermodynamic Properties of the Species Standard State in the Solution + //! @{ - /** - * @} - * @name Molar Thermodynamic Properties of the Species Standard State - * in the Solution - * @{ - */ + // See PDSS.h for documentation of functions overridden from Class PDSS - //! Return the molar enthalpy in units of J kmol-1 - /*! - * Returns the species standard state enthalpy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state enthalpy in J kmol-1 - */ virtual doublereal enthalpy_mole() const; - - //! Return the molar internal Energy in units of J kmol-1 - /*! - * Returns the species standard state internal Energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state internal Energy in J kmol-1 - */ virtual doublereal intEnergy_mole() const; - - //! Return the molar entropy in units of J kmol-1 K-1 - /*! - * Returns the species standard state entropy in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state entropy in J kmol-1 K-1 - */ virtual doublereal entropy_mole() const; - - //! Return the molar gibbs free energy in units of J kmol-1 - /*! - * Returns the species standard state gibbs free energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state gibbs free energy in J kmol-1 - */ virtual doublereal gibbs_mole() const; - - //! Return the molar const pressure heat capacity in units of J kmol-1 K-1 - /*! - * Returns the species standard state Cp in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cp in J kmol-1 K-1 - */ virtual doublereal cp_mole() const; - - //! Return the molar const volume heat capacity in units of J kmol-1 K-1 - /*! - * Returns the species standard state Cv in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cv in J kmol-1 K-1 - */ virtual doublereal cv_mole() const; - - //! Return the molar volume at standard state - /*! - * Returns the species standard state molar volume at the - * current temperature and pressure - * - * @return returns the standard state molar volume divided by R - * units are m**3 kmol-1. - */ virtual doublereal molarVolume() const; - - //! Return the standard state density at standard state - /*! - * Returns the species standard state density at the - * current temperature and pressure - * - * @return returns the standard state density - * units are kg m-3 - */ virtual doublereal density() const; - /** - * @} - * @name Properties of the Reference State of the Species - * in the Solution - * @{ - */ + //! @} + //! @name Properties of the Reference State of the Species in the Solution + //! @{ //! Returns a reference pressure value that can be safely calculated by the //! underlying real equation of state for water @@ -239,92 +156,20 @@ public: */ doublereal pref_safe(doublereal temp) const; - - //! Return the molar gibbs free energy divided by RT at reference pressure - /*! - * Returns the species reference state gibbs free energy divided by RT at the - * current temperature. - * - * @return returns the reference state gibbs free energy divided by RT - */ virtual doublereal gibbs_RT_ref() const; - - //! Return the molar enthalpy divided by RT at reference pressure - /*! - * Returns the species reference state enthalpy divided by RT at the - * current temperature. - * - * @return returns the reference state enthalpy divided by RT - */ virtual doublereal enthalpy_RT_ref() const; - - //! Return the molar entropy divided by R at reference pressure - /*! - * Returns the species reference state entropy divided by R at the - * current temperature. - * - * @return returns the reference state entropy divided by R - */ virtual doublereal entropy_R_ref() const; - - //! Return the molar heat capacity divided by R at reference pressure - /*! - * Returns the species reference state heat capacity divided by R at the - * current temperature. - * - * @return returns the reference state heat capacity divided by R - */ virtual doublereal cp_R_ref() const; - - //! Return the molar volume at reference pressure - /*! - * Returns the species reference state molar volume at the - * current temperature. - * - * @return returns the reference state molar volume divided by R - * units are m**3 kmol-1. - */ virtual doublereal molarVolume_ref() const; - \ - /** - * @} - * @name Mechanical Equation of State Properties - * @{ - */ + //! @} + //! @name Mechanical Equation of State Properties + //! @{ - - //! Report the current pressure used in the object - /*! - * @return Returns the pressure (Pascal) - */ virtual doublereal pressure() const; - - //! Set the pressure internally - /*! - * @param pres Value of the pressure (Pascals) - */ virtual void setPressure(doublereal pres); - - //! Set the internal temperature - /*! - * @param temp Temperature (Kelvin) - */ virtual void setTemperature(doublereal temp); - - //! Set the temperature and pressure in the object - /*! - * @param temp Temperature (Kelvin) - * @param pres Pressure (Pascal) - */ virtual void setState_TP(doublereal temp, doublereal pres); - - - //! Set the temperature and density in the object - /*! - * @param temp Temperature (Kelvin) - * @param rho Density (kg/m3) - */ virtual void setState_TR(doublereal temp, doublereal rho); //! Set the density of the water phase @@ -336,14 +181,6 @@ public: */ void setDensity(doublereal dens); - - //! Return the volumetric thermal expansion coefficient. Units: 1/K. - /*! - * The thermal expansion coefficient is defined as - * \f[ - * \beta = \frac{1}{v}\left(\frac{\partial v}{\partial T}\right)_P - * \f] - */ virtual doublereal thermalExpansionCoeff() const; //! Return the derivative of the volumetric thermal expansion coefficient. Units: 1/K2. @@ -368,25 +205,13 @@ public: */ virtual doublereal isothermalCompressibility() const; - /** - * @} - * @name Miscellaneous properties of the standard state - * @{ - */ + //! @} + //! @name Miscellaneous properties of the standard state + //! @{ - //! critical temperature virtual doublereal critTemperature() const; - - //! critical pressure virtual doublereal critPressure() const; - - //! critical density virtual doublereal critDensity() const; - - //! Return the saturation pressure at a given temperature - /*! - * @param t Temperature (Kelvin) - */ virtual doublereal satPressure(doublereal t); //! Get a pointer to a changeable WaterPropsIAPWS object @@ -399,16 +224,11 @@ public: return m_waterProps; } - /** - * @} - * @name Initialization of the Object - * @{ - */ + //! @} + //! @name Initialization of the Object + //! @{ //! Internal routine that initializes the underlying water model - /*! - * This routine is not virtual - */ void constructSet(); //! Initialization of a PDSS object using an @@ -422,8 +242,7 @@ public: * * @param spindex Species index within the phase * - * @param inputFile XML file containing the description of the - * phase + * @param inputFile XML file containing the description of the phase * * @param id Optional parameter identifying the name of the * phase. If none is given, the first XML @@ -438,11 +257,11 @@ public: * object. * * basic logic: - * initThermo() (cascade) - * getStuff from species Part of XML file - * initThermoXML(phaseNode) (cascade) + * - initThermo() (cascade) + * - getStuff from species Part of XML file + * - initThermoXML(phaseNode) (cascade) * - * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object + * @param vptp_ptr Pointer to the Variable pressure ThermoPhase object * This object must have already been malloced. * * @param spindex Species index within the phase @@ -457,40 +276,11 @@ public: void constructPDSSXML(VPStandardStateTP* vptp_ptr, int spindex, const XML_Node& phaseNode, const std::string& id); - //! Initialization routine for all of the shallow pointers - /*! - * This is a cascading call, where each level should call the - * the parent level. - * - * The initThermo() routines get called before the initThermoXML() routines - * from the constructPDSSXML() routine. - * - * - * Calls initPtrs(); - */ virtual void initThermo(); - - //! Initialization routine for the PDSS object based on the phaseNode - /*! - * This is a cascading call, where each level should call the - * the parent level. - * - * @param phaseNode Reference to the phase Information for the phase - * that owns this species. - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ virtual void initThermoXML(const XML_Node& phaseNode, const std::string& id); - //@} -protected: - - private: - //! Pointer to the WaterPropsIAPWS object, which does the actual calculations //! for the real equation of state /*! @@ -517,11 +307,13 @@ private: //! state of the fluid /*! - * 0 WATER_GAS 0 - * 1 WATER_LIQUID 1 - * 2 WATER_SUPERCRIT 2 - * 3 WATER_UNSTABLELIQUID 3 + * @code + * 0 WATER_GAS + * 1 WATER_LIQUID + * 2 WATER_SUPERCRIT + * 3 WATER_UNSTABLELIQUID * 4 WATER_UNSTABLEGAS + * @endcode */ int m_iState; diff --git a/src/thermo/PDSS.cpp b/src/thermo/PDSS.cpp index f2e28e6ff..660586220 100644 --- a/src/thermo/PDSS.cpp +++ b/src/thermo/PDSS.cpp @@ -21,9 +21,6 @@ namespace Cantera { -/** - * Basic list of constructors and duplicators - */ PDSS::PDSS() : m_pdssType(cPDSS_UNDEF), m_temp(-1.0), @@ -80,9 +77,6 @@ PDSS::PDSS(VPStandardStateTP* tp, size_t spindex) : } } - - - PDSS::PDSS(const PDSS& b) : m_pdssType(cPDSS_UNDEF), m_temp(-1.0), @@ -113,11 +107,6 @@ PDSS::PDSS(const PDSS& b) : *this = b; } -/** - * Assignment operator - * ok -> we don't know what to do here, so we'll - * first implement a shallow copy. - */ PDSS& PDSS::operator=(const PDSS& b) { if (&b == this) { @@ -173,23 +162,11 @@ PDSS::~PDSS() { } -// Duplicator from the %PDSS parent class -/* - * Given a pointer to a %PDSS object, this function will - * duplicate the %PDSS object and all underlying structures. - * This is basically a wrapper around the copy constructor. - * - * @return returns a pointer to a %PDSS - */ PDSS* PDSS::duplMyselfAsPDSS() const { return new PDSS(*this); } -// Returns the type of the standard state parameterization -/* - * @return Returns the integer # of the parameterization - */ PDSS_enumType PDSS::reportPDSSType() const { return m_pdssType; @@ -237,14 +214,6 @@ void PDSS::initPtrs() m_Vss_ptr = &(m_vpssmgr_ptr->mPDSS_Vss[0]); } - - -// Return the molar enthalpy in units of J kmol-1 -/* - * Returns the species standard state enthalpy in J kmol-1 at the - * current temperature and pressure. - * (NOTE: assumes that ThermoPhase Ref Polynomials are up-to-date) - */ doublereal PDSS::enthalpy_mole() const { err("enthalpy_mole()"); @@ -257,26 +226,12 @@ doublereal PDSS::enthalpy_RT() const return enthalpy_mole()/RT; } -// Return the molar internal Energy in units of J kmol-1 -/* - * Returns the species standard state internal Energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state internal Energy in J kmol-1 - */ doublereal PDSS::intEnergy_mole() const { err("intEnergy_mole()"); return 0.0; } -// Return the molar entropy in units of J kmol-1 K-1 -/* - * Returns the species standard state entropy in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state entropy in J kmol-1 K-1 - */ doublereal PDSS::entropy_mole() const { err("entropy_mole()"); @@ -288,13 +243,6 @@ doublereal PDSS::entropy_R() const return entropy_mole()/GasConstant; } -// Return the molar gibbs free energy in units of J kmol-1 -/* - * Returns the species standard state gibbs free energy in J kmol-1 at the - * current temperature and pressure. - * - * @return returns the species standard state gibbs free energy in J kmol-1 - */ doublereal PDSS::gibbs_mole() const { err("gibbs_mole()"); @@ -307,13 +255,6 @@ doublereal PDSS::gibbs_RT() const return gibbs_mole()/RT; } -// Return the molar const pressure heat capacity in units of J kmol-1 K-1 -/* - * Returns the species standard state Cp in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cp in J kmol-1 K-1 - */ doublereal PDSS::cp_mole() const { err("cp_mole()"); @@ -337,13 +278,6 @@ doublereal PDSS::density() const return 0.0; } -// Return the molar const volume heat capacity in units of J kmol-1 K-1 -/* - * Returns the species standard state Cv in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cv in J kmol-1 K-1 - */ doublereal PDSS::cv_mole() const { err("cv_mole()"); @@ -380,11 +314,6 @@ doublereal PDSS::molarVolume_ref() const return 0.0; } -/** - * Return the difference in enthalpy between current p - * and ref p0, in mks units of - * in units of J kmol-1 - */ doublereal PDSS:: enthalpyDelp_mole() const { @@ -393,12 +322,6 @@ enthalpyDelp_mole() const return enthalpy_mole() - RT * tmp; } - -/** - * Return the difference in entropy between current p - * and ref p0, in mks units of - * J kmol-1 K-1 - */ doublereal PDSS::entropyDelp_mole() const { doublereal tmp = entropy_R_ref(); @@ -406,11 +329,6 @@ doublereal PDSS::entropyDelp_mole() const } -/** - * Calculate the difference in Gibbs free energy between current p and - * the ref p0, in mks units of - * J kmol-1 K-1. - */ doublereal PDSS::gibbsDelp_mole() const { doublereal RT = m_temp * GasConstant; @@ -418,57 +336,35 @@ doublereal PDSS::gibbsDelp_mole() const return gibbs_mole() - RT * tmp; } -// Return the molar const volume heat capacity in units of J kmol-1 K-1 -/* - * Returns the species standard state Cv in J kmol-1 K-1 at the - * current temperature and pressure. - * - * @return returns the species standard state Cv in J kmol-1 K-1 - */ doublereal PDSS::cpDelp_mole() const { doublereal tmp = cp_R_ref(); return cp_mole() - GasConstant * tmp; } -/** - * Calculate the pressure (Pascals), given the temperature and density - * Temperature: kelvin - * rho: density in kg m-3 - */ doublereal PDSS::pressure() const { return m_pres; } -// Return the volumetric thermal expansion coefficient. Units: 1/K. -/* - * The thermal expansion coefficient is defined as - * \f[ - * \beta = \frac{1}{v}\left(\frac{\partial v}{\partial T}\right)_P - * \f] - */ doublereal PDSS::thermalExpansionCoeff() const { throw CanteraError("PDSS::thermalExpansionCoeff()", "unimplemented"); return 0.0; } -/// critical temperature doublereal PDSS::critTemperature() const { err("critTemperature()"); return 0.0; } -/// critical pressure doublereal PDSS::critPressure() const { err("critPressure()"); return 0.0; } -/// critical density doublereal PDSS::critDensity() const { err("critDensity()"); @@ -480,13 +376,6 @@ void PDSS::setPressure(doublereal pres) m_pres = pres; } - -/** - * Return the temperature - * - * Obtain the temperature from the owning ThermoPhase object - * if you can. - */ doublereal PDSS::temperature() const { return m_temp; @@ -516,20 +405,17 @@ void PDSS::setState_TR(doublereal temp, doublereal rho) err("setState_TR()"); } -/// saturation pressure doublereal PDSS::satPressure(doublereal t) { err("satPressure()"); return 0.0; } - void PDSS::err(const std::string& msg) const { throw CanteraError("PDSS::" + msg, "unimplemented"); } - void PDSS::reportParams(size_t& kindex, int& type, doublereal* const c, doublereal& minTemp_, diff --git a/src/thermo/PDSS_ConstVol.cpp b/src/thermo/PDSS_ConstVol.cpp index f9307898c..8c8f51ba5 100644 --- a/src/thermo/PDSS_ConstVol.cpp +++ b/src/thermo/PDSS_ConstVol.cpp @@ -22,17 +22,12 @@ using namespace std; namespace Cantera { -/** - * Basic list of constructors and duplicators - */ - PDSS_ConstVol::PDSS_ConstVol(VPStandardStateTP* tp, size_t spindex) : PDSS(tp, spindex) { m_pdssType = cPDSS_CONSTVOL; } - PDSS_ConstVol::PDSS_ConstVol(VPStandardStateTP* tp, size_t spindex, const std::string& inputFile, const std::string& id) : PDSS(tp, spindex) @@ -51,7 +46,6 @@ PDSS_ConstVol::PDSS_ConstVol(VPStandardStateTP* tp, size_t spindex, constructPDSSXML(tp, spindex, speciesNode, phaseRoot, spInstalled) ; } - PDSS_ConstVol::PDSS_ConstVol(const PDSS_ConstVol& b) : PDSS(b) { @@ -62,9 +56,6 @@ PDSS_ConstVol::PDSS_ConstVol(const PDSS_ConstVol& b) : *this = b; } -/* - * Assignment operator - */ PDSS_ConstVol& PDSS_ConstVol::operator=(const PDSS_ConstVol& b) { if (&b == this) { @@ -79,28 +70,11 @@ PDSS_ConstVol::~PDSS_ConstVol() { } -// Duplicator PDSS* PDSS_ConstVol::duplMyselfAsPDSS() const { return new PDSS_ConstVol(*this); } -/* - * constructPDSSXML: - * - * Initialization of a PDSS_ConstVol object using an - * xml file. - * - * This routine is a precursor to initThermo(XML_Node*) - * routine, which does most of the work. - * - * @param infile XML file containing the description of the - * phase - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ void PDSS_ConstVol::constructPDSSXML(VPStandardStateTP* tp, size_t spindex, const XML_Node& speciesNode, const XML_Node& phaseNode, bool spInstalled) @@ -130,28 +104,10 @@ void PDSS_ConstVol::constructPDSSXML(VPStandardStateTP* tp, size_t spindex, // initThermoXML(phaseNode, id); } - -/* - * constructPDSSFile(): - * - * Initialization of a PDSS_ConstVol object using an - * xml file. - * - * This routine is a precursor to initThermo(XML_Node*) - * routine, which does most of the work. - * - * @param infile XML file containing the description of the - * phase - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ void PDSS_ConstVol::constructPDSSFile(VPStandardStateTP* tp, size_t spindex, const std::string& inputFile, const std::string& id) { - if (inputFile.size() == 0) { throw CanteraError("PDSS_ConstVol::initThermo", "input file is null"); @@ -218,7 +174,6 @@ PDSS_ConstVol::enthalpy_RT() const return m_hss_RT_ptr[m_spindex]; } - doublereal PDSS_ConstVol::intEnergy_mole() const { @@ -228,7 +183,6 @@ PDSS_ConstVol::intEnergy_mole() const return val * RT; } - doublereal PDSS_ConstVol::entropy_mole() const { @@ -242,10 +196,6 @@ PDSS_ConstVol::entropy_R() const return m_sss_R_ptr[m_spindex]; } -/* - * Calculate the Gibbs free energy in mks units of - * J kmol-1 K-1. - */ doublereal PDSS_ConstVol::gibbs_mole() const { @@ -319,23 +269,18 @@ doublereal PDSS_ConstVol::molarVolume_ref() const return m_V0_ptr[m_spindex]; } - - -// critical temperature doublereal PDSS_ConstVol::critTemperature() const { throw CanteraError("PDSS_ConstVol::critTemperature()", "unimplemented"); return 0.0; } -// critical pressure doublereal PDSS_ConstVol::critPressure() const { throw CanteraError("PDSS_ConstVol::critPressure()", "unimplemented"); return 0.0; } -// critical density doublereal PDSS_ConstVol::critDensity() const { throw CanteraError("PDSS_ConstVol::critDensity()", "unimplemented"); @@ -366,14 +311,12 @@ void PDSS_ConstVol::setTemperature(doublereal temp) } - void PDSS_ConstVol::setState_TP(doublereal temp, doublereal pres) { setTemperature(temp); setPressure(pres); } - void PDSS_ConstVol::setState_TR(doublereal temp, doublereal rho) { doublereal rhoStored = m_mw / m_constMolarVolume; @@ -384,7 +327,6 @@ void PDSS_ConstVol::setState_TR(doublereal temp, doublereal rho) setTemperature(temp); } -// saturation pressure doublereal PDSS_ConstVol::satPressure(doublereal t) { return 1.0E-200; diff --git a/src/thermo/PDSS_HKFT.cpp b/src/thermo/PDSS_HKFT.cpp index 2f6cd66ab..a1cba00e3 100644 --- a/src/thermo/PDSS_HKFT.cpp +++ b/src/thermo/PDSS_HKFT.cpp @@ -25,10 +25,6 @@ using namespace ctml; namespace Cantera { - -/* - * Basic list of constructors and duplicators - */ PDSS_HKFT::PDSS_HKFT(VPStandardStateTP* tp, size_t spindex) : PDSS(tp, spindex), m_waterSS(0), @@ -58,7 +54,6 @@ PDSS_HKFT::PDSS_HKFT(VPStandardStateTP* tp, size_t spindex) : m_presR_bar = OneAtm * 1.0E-5; } - PDSS_HKFT::PDSS_HKFT(VPStandardStateTP* tp, size_t spindex, const std::string& inputFile, const std::string& id) : PDSS(tp, spindex), @@ -155,9 +150,6 @@ PDSS_HKFT::PDSS_HKFT(const PDSS_HKFT& b) : *this = b; } -/* - * Assignment operator - */ PDSS_HKFT& PDSS_HKFT::operator=(const PDSS_HKFT& b) { if (&b == this) { @@ -200,23 +192,16 @@ PDSS_HKFT& PDSS_HKFT::operator=(const PDSS_HKFT& b) return *this; } -/* - * Destructor for the PDSS_HKFT class - */ PDSS_HKFT::~PDSS_HKFT() { delete m_waterProps; } -// Duplicator PDSS* PDSS_HKFT::duplMyselfAsPDSS() const { return new PDSS_HKFT(*this); } -/* - * Return the molar enthalpy in units of J kmol-1 - */ doublereal PDSS_HKFT::enthalpy_mole() const { // Ok we may change this evaluation method in the future. @@ -251,10 +236,6 @@ doublereal PDSS_HKFT::enthalpy_mole2() const } #endif -/* - * Calculate the internal energy in mks units of - * J kmol-1 - */ doublereal PDSS_HKFT::intEnergy_mole() const { doublereal hh = enthalpy_RT(); @@ -262,33 +243,20 @@ doublereal PDSS_HKFT::intEnergy_mole() const return hh - mv * m_pres; } -/* - * Calculate the entropy in mks units of - * J kmol-1 K-1 - */ doublereal PDSS_HKFT::entropy_mole() const { doublereal delS = deltaS(); return m_Entrop_tr_pr * 1.0E3 * 4.184 + delS; } -/* - * Calculate the Gibbs free energy in mks units of - * J kmol-1 - */ doublereal PDSS_HKFT::gibbs_mole() const { doublereal delG = deltaG(); return m_Mu0_tr_pr + delG; } -/* - * Calculate the constant pressure heat capacity - * in mks units of J kmol-1 K-1 - */ doublereal PDSS_HKFT::cp_mole() const { - doublereal pbar = m_pres * 1.0E-5; doublereal c1term = m_c1; @@ -382,10 +350,6 @@ doublereal PDSS_HKFT::cp_mole() const return Cp; } -/* - * Calculate the constant volume heat capacity - * in mks units of J kmol-1 K-1 - */ doublereal PDSS_HKFT::cv_mole() const { @@ -395,7 +359,6 @@ PDSS_HKFT::cv_mole() const doublereal PDSS_HKFT::molarVolume() const { - // Initially do all calculations in (cal/gmol/Pa) doublereal a1term = m_a1 * 1.0E-5; @@ -505,11 +468,6 @@ PDSS_HKFT::molarVolume_ref() const return ee; } -/* - * Calculate the pressure (Pascals), given the temperature and density - * Temperature: kelvin - * rho: density in kg m-3 - */ doublereal PDSS_HKFT::pressure() const { @@ -538,7 +496,6 @@ void PDSS_HKFT::setState_TP(doublereal temp, doublereal pres) setPressure(pres); } -// critical temperature doublereal PDSS_HKFT::critTemperature() const { @@ -546,21 +503,18 @@ PDSS_HKFT::critTemperature() const return 0.0; } -// critical pressure doublereal PDSS_HKFT::critPressure() const { throw CanteraError("PDSS_HKFT::critPressure()", "unimplemented"); return 0.0; } -// critical density doublereal PDSS_HKFT::critDensity() const { throw CanteraError("PDSS_HKFT::critDensity()", "unimplemented"); return 0.0; } - void PDSS_HKFT::initThermo() { PDSS::initThermo(); @@ -626,7 +580,6 @@ void PDSS_HKFT::initThermo() } } - void PDSS_HKFT::initThermoXML(const XML_Node& phaseNode, const std::string& id) { PDSS::initThermoXML(phaseNode, id); @@ -635,7 +588,6 @@ void PDSS_HKFT::initThermoXML(const XML_Node& phaseNode, const std::string& id) void PDSS_HKFT::initAllPtrs(VPStandardStateTP* vptp_ptr, VPSSMgr* vpssmgr_ptr, SpeciesThermo* spthermo_ptr) { - PDSS::initAllPtrs(vptp_ptr, vpssmgr_ptr, spthermo_ptr); m_waterSS = (PDSS_Water*) m_tp->providePDSS(0); delete m_waterProps; @@ -806,7 +758,6 @@ void PDSS_HKFT::constructPDSSFile(VPStandardStateTP* tp, size_t spindex, const std::string& inputFile, const std::string& id) { - if (inputFile.size() == 0) { throw CanteraError("PDSS_HKFT::initThermo", "input file is null"); @@ -844,7 +795,6 @@ void PDSS_HKFT::constructPDSSFile(VPStandardStateTP* tp, size_t spindex, #ifdef DEBUG_MODE doublereal PDSS_HKFT::deltaH() const { - doublereal pbar = m_pres * 1.0E-5; doublereal c1term = m_c1 * (m_temp - 298.15); @@ -907,7 +857,6 @@ doublereal PDSS_HKFT::deltaH() const doublereal PDSS_HKFT::deltaG() const { - doublereal pbar = m_pres * 1.0E-5; //doublereal m_presR_bar = OneAtm * 1.0E-5; @@ -952,10 +901,8 @@ doublereal PDSS_HKFT::deltaG() const return deltaG_calgmol * 1.0E3 * 4.184; } - doublereal PDSS_HKFT::deltaS() const { - doublereal pbar = m_pres * 1.0E-5; doublereal c1term = m_c1 * log(m_temp/298.15); @@ -1011,11 +958,6 @@ doublereal PDSS_HKFT::deltaS() const return deltaS_calgmol * 1.0E3 * 4.184; } - -// Internal formula for the calculation of a_g() -/* - * The output of this is in units of Angstroms - */ doublereal PDSS_HKFT::ag(const doublereal temp, const int ifunc) const { static doublereal ag_coeff[3] = { -2.037662, 5.747000E-3, -6.557892E-6}; @@ -1031,11 +973,6 @@ doublereal PDSS_HKFT::ag(const doublereal temp, const int ifunc) const return ag_coeff[2] * 2.0; } - -// Internal formula for the calculation of b_g() -/* - * the output of this is unitless - */ doublereal PDSS_HKFT::bg(const doublereal temp, const int ifunc) const { static doublereal bg_coeff[3] = { 6.107361, -1.074377E-2, 1.268348E-5}; @@ -1051,10 +988,8 @@ doublereal PDSS_HKFT::bg(const doublereal temp, const int ifunc) const return bg_coeff[2] * 2.0; } - doublereal PDSS_HKFT::f(const doublereal temp, const doublereal pres, const int ifunc) const { - static doublereal af_coeff[3] = { 3.666666E1, -0.1504956E-9, 0.5107997E-13}; doublereal TC = temp - 273.15; doublereal presBar = pres / 1.0E5; @@ -1096,7 +1031,6 @@ doublereal PDSS_HKFT::f(const doublereal temp, const doublereal pres, const int return 0.0; } - doublereal PDSS_HKFT::g(const doublereal temp, const doublereal pres, const int ifunc) const { doublereal afunc = ag(temp, 0); @@ -1157,7 +1091,6 @@ doublereal PDSS_HKFT::g(const doublereal temp, const doublereal pres, const int return 0.0; } - doublereal PDSS_HKFT::gstar(const doublereal temp, const doublereal pres, const int ifunc) const { doublereal gval = g(temp, pres, ifunc); @@ -1183,20 +1116,6 @@ doublereal PDSS_HKFT::gstar(const doublereal temp, const doublereal pres, const return res; } -//! Static function to look up Element Free Energies -/*! - * - * This static function looks up the argument string in the - * database above and returns the associated Gibbs Free energies. - * - * @param elemName String. Only the first 3 characters are significant - * - * @return - * Return value contains the Gibbs free energy for that element - * - * @exception CanteraError - * If a match is not found, a CanteraError is thrown as well - */ doublereal PDSS_HKFT::LookupGe(const std::string& elemName) { size_t iE = m_tp->elementIndex(elemName); @@ -1243,32 +1162,16 @@ void PDSS_HKFT::convertDGFormation() m_Mu0_tr_pr = dg + totalSum; } -// This utility function reports back the type of -// parameterization and all of the parameters for the -// species, index. -/* - * - * @param index Species index - * @param type Integer type of the standard type - * @param c Vector of coefficients used to set the - * parameters for the standard state. - * @param minTemp output - Minimum temperature - * @param maxTemp output - Maximum temperature - * @param refPressure output - reference pressure (Pa). - * - */ void PDSS_HKFT::reportParams(size_t& kindex, int& type, doublereal* const c, doublereal& minTemp_, doublereal& maxTemp_, doublereal& refPressure_) const { - // Fill in the first part PDSS::reportParams(kindex, type, c, minTemp_, maxTemp_, refPressure_); - c[0] = m_deltaG_formation_tr_pr; c[1] = m_deltaH_formation_tr_pr; c[2] = m_Mu0_tr_pr; @@ -1280,9 +1183,6 @@ void PDSS_HKFT::reportParams(size_t& kindex, int& type, c[8] = m_c1; c[9] = m_c2; c[10] = m_omega_pr_tr; - } - - } diff --git a/src/thermo/PDSS_IdealGas.cpp b/src/thermo/PDSS_IdealGas.cpp index 549028129..0545930ba 100644 --- a/src/thermo/PDSS_IdealGas.cpp +++ b/src/thermo/PDSS_IdealGas.cpp @@ -13,7 +13,6 @@ #include "cantera/base/ctml.h" #include "cantera/thermo/PDSS_IdealGas.h" #include "cantera/thermo/ThermoFactory.h" - #include "cantera/thermo/VPStandardStateTP.h" #include @@ -22,17 +21,12 @@ using namespace std; namespace Cantera { -/** - * Basic list of constructors and duplicators - */ - PDSS_IdealGas::PDSS_IdealGas(VPStandardStateTP* tp, int spindex) : PDSS(tp, spindex) { m_pdssType = cPDSS_IDEALGAS; } - PDSS_IdealGas::PDSS_IdealGas(VPStandardStateTP* tp, int spindex, const std::string& inputFile, const std::string& id) : PDSS(tp, spindex) @@ -41,8 +35,6 @@ PDSS_IdealGas::PDSS_IdealGas(VPStandardStateTP* tp, int spindex, constructPDSSFile(tp, spindex, inputFile, id); } - - PDSS_IdealGas::PDSS_IdealGas(VPStandardStateTP* tp, size_t spindex, const XML_Node& speciesNode, const XML_Node& phaseRoot, bool spInstalled) : PDSS(tp, spindex) @@ -55,8 +47,6 @@ PDSS_IdealGas::PDSS_IdealGas(VPStandardStateTP* tp, size_t spindex, const XML_No constructPDSSXML(tp, spindex, phaseRoot, id); } - - PDSS_IdealGas::PDSS_IdealGas(const PDSS_IdealGas& b) : PDSS(b) { @@ -67,9 +57,6 @@ PDSS_IdealGas::PDSS_IdealGas(const PDSS_IdealGas& b) : *this = b; } -/* - * Assignment operator - */ PDSS_IdealGas& PDSS_IdealGas::operator=(const PDSS_IdealGas& b) { if (&b == this) { @@ -83,30 +70,11 @@ PDSS_IdealGas::~PDSS_IdealGas() { } -// Duplicator PDSS* PDSS_IdealGas::duplMyselfAsPDSS() const { return new PDSS_IdealGas(*this); } - - -/* - * constructPDSSXML: - * - * Initialization of a PDSS_IdealGas object using an - * xml file. - * - * This routine is a precursor to initThermo(XML_Node*) - * routine, which does most of the work. - * - * @param infile XML file containing the description of the - * phase - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ void PDSS_IdealGas::constructPDSSXML(VPStandardStateTP* tp, size_t spindex, const XML_Node& phaseNode, const std::string& id) { @@ -114,12 +82,10 @@ void PDSS_IdealGas::constructPDSSXML(VPStandardStateTP* tp, size_t spindex, //initThermoXML(phaseNode, id); } - void PDSS_IdealGas::constructPDSSFile(VPStandardStateTP* tp, size_t spindex, const std::string& inputFile, const std::string& id) { - if (inputFile.size() == 0) { throw CanteraError("PDSS_IdealGas::constructPDSSFile", "input file is null"); @@ -161,9 +127,6 @@ void PDSS_IdealGas::initThermo() m_maxTemp = m_spthermo->maxTemp(m_spindex); } -/* - * Return the molar enthalpy in units of J kmol-1 - */ doublereal PDSS_IdealGas::enthalpy_mole() const { @@ -178,11 +141,6 @@ PDSS_IdealGas::enthalpy_RT() const return m_h0_RT_ptr[m_spindex]; } - -/* - * Calculate the internal energy in mks units of - * J kmol-1 - */ doublereal PDSS_IdealGas::intEnergy_mole() const { @@ -191,10 +149,6 @@ PDSS_IdealGas::intEnergy_mole() const return val * RT; } -/* - * Calculate the entropy in mks units of - * J kmol-1 K-1 - */ doublereal PDSS_IdealGas::entropy_mole() const { @@ -208,10 +162,6 @@ PDSS_IdealGas::entropy_R() const return m_s0_R_ptr[m_spindex] - log(m_pres/m_p0); } -/* - * Calculate the Gibbs free energy in mks units of - * J kmol-1 K-1. - */ doublereal PDSS_IdealGas::gibbs_mole() const { @@ -226,10 +176,6 @@ PDSS_IdealGas::gibbs_RT() const return m_g0_RT_ptr[m_spindex] + log(m_pres/m_p0); } -/* - * Calculate the constant pressure heat capacity - * in mks units of J kmol-1 K-1 - */ doublereal PDSS_IdealGas::cp_mole() const { @@ -256,17 +202,12 @@ PDSS_IdealGas::density() const return m_pres * m_mw / (GasConstant * m_temp); } -/* - * Calculate the constant volume heat capacity - * in mks units of J kmol-1 K-1 - */ doublereal PDSS_IdealGas::cv_mole() const { return cp_mole() - GasConstant; } - doublereal PDSS_IdealGas::gibbs_RT_ref() const { @@ -293,11 +234,6 @@ doublereal PDSS_IdealGas::molarVolume_ref() const return GasConstant * m_temp / m_p0; } -/* - * Calculate the pressure (Pascals), given the temperature and density - * Temperature: kelvin - * rho: density in kg m-3 - */ doublereal PDSS_IdealGas::pressure() const { throw CanteraError("PDSS_IdealGas::pressure()", "unimplemented"); @@ -311,35 +247,24 @@ void PDSS_IdealGas::setPressure(doublereal p) m_Vss_ptr[m_spindex] = GasConstant * m_temp / m_pres; } - -// critical temperature doublereal PDSS_IdealGas::critTemperature() const { throw CanteraError("PDSS_IdealGas::critTemperature()", "unimplemented"); return 0.0; } -// critical pressure doublereal PDSS_IdealGas::critPressure() const { throw CanteraError("PDSS_IdealGas::critPressure()", "unimplemented"); return 0.0; } -// critical density doublereal PDSS_IdealGas::critDensity() const { throw CanteraError("PDSS_IdealGas::critDensity()", "unimplemented"); return 0.0; } - -/* - * Return the temperature - * - * Obtain the temperature from the owning VPStandardStateTP object - * if you can. - */ doublereal PDSS_IdealGas::temperature() const { m_temp = m_vpssmgr_ptr->temperature(); @@ -361,7 +286,6 @@ void PDSS_IdealGas::setTemperature(doublereal temp) m_Vss_ptr[m_spindex] = GasConstant * m_temp / m_pres; } - void PDSS_IdealGas::setState_TP(doublereal temp, doublereal pres) { m_pres = pres; @@ -374,7 +298,6 @@ void PDSS_IdealGas::setState_TR(doublereal temp, doublereal rho) setTemperature(temp); } -// saturation pressure doublereal PDSS_IdealGas::satPressure(doublereal t) { throw CanteraError("PDSS_IdealGas::satPressure()", "unimplemented"); @@ -382,5 +305,4 @@ doublereal PDSS_IdealGas::satPressure(doublereal t) return 0.0; } - } diff --git a/src/thermo/PDSS_IonsFromNeutral.cpp b/src/thermo/PDSS_IonsFromNeutral.cpp index 70d0e23cb..eb1972213 100644 --- a/src/thermo/PDSS_IonsFromNeutral.cpp +++ b/src/thermo/PDSS_IonsFromNeutral.cpp @@ -24,8 +24,6 @@ using namespace std; namespace Cantera { - -//==================================================================================================================== PDSS_IonsFromNeutral::PDSS_IonsFromNeutral(VPStandardStateTP* tp, size_t spindex) : PDSS(tp, spindex), neutralMoleculePhase_(0), @@ -35,7 +33,7 @@ PDSS_IonsFromNeutral::PDSS_IonsFromNeutral(VPStandardStateTP* tp, size_t spindex { m_pdssType = cPDSS_IONSFROMNEUTRAL; } -//==================================================================================================================== + PDSS_IonsFromNeutral::PDSS_IonsFromNeutral(VPStandardStateTP* tp, size_t spindex, const std::string& inputFile, const std::string& id) : PDSS(tp, spindex), @@ -47,7 +45,6 @@ PDSS_IonsFromNeutral::PDSS_IonsFromNeutral(VPStandardStateTP* tp, size_t spindex m_pdssType = cPDSS_IONSFROMNEUTRAL; constructPDSSFile(tp, spindex, inputFile, id); } -//==================================================================================================================== PDSS_IonsFromNeutral::PDSS_IonsFromNeutral(VPStandardStateTP* tp, size_t spindex, const XML_Node& speciesNode, const XML_Node& phaseRoot, bool spInstalled) : @@ -64,7 +61,6 @@ PDSS_IonsFromNeutral::PDSS_IonsFromNeutral(VPStandardStateTP* tp, size_t spindex std::string id = ""; constructPDSSXML(tp, spindex, speciesNode, phaseRoot, id); } -//==================================================================================================================== PDSS_IonsFromNeutral::PDSS_IonsFromNeutral(const PDSS_IonsFromNeutral& b) : PDSS(b) @@ -75,10 +71,7 @@ PDSS_IonsFromNeutral::PDSS_IonsFromNeutral(const PDSS_IonsFromNeutral& b) : */ *this = b; } -//==================================================================================================================== -/* - * Assignment operator - */ + PDSS_IonsFromNeutral& PDSS_IonsFromNeutral::operator=(const PDSS_IonsFromNeutral& b) { if (&b == this) { @@ -103,17 +96,16 @@ PDSS_IonsFromNeutral& PDSS_IonsFromNeutral::operator=(const PDSS_IonsFromNeutral return *this; } -//==================================================================================================================== + PDSS_IonsFromNeutral::~PDSS_IonsFromNeutral() { } -//==================================================================================================================== -//! Duplicator + PDSS* PDSS_IonsFromNeutral::duplMyselfAsPDSS() const { return new PDSS_IonsFromNeutral(*this); } -//==================================================================================================================== + void PDSS_IonsFromNeutral::initAllPtrs(VPStandardStateTP* tp, VPSSMgr* vpssmgr_ptr, SpeciesThermo* spthermo) { @@ -125,29 +117,7 @@ void PDSS_IonsFromNeutral::initAllPtrs(VPStandardStateTP* tp, VPSSMgr* vpssmgr_p } neutralMoleculePhase_ = ionPhase->neutralMoleculePhase_; } -//==================================================================================================================== -// Initialization of a PDSS object using an xml tree -/* - * This routine is a driver for the initialization of the - * object. - * - * basic logic: - * initThermo() (cascade) - * getStuff from species Part of XML file - * initThermoXML(phaseNode) (cascade) - * - * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object - * This object must have already been malloced. - * - * @param spindex Species index within the phase - * - * @param phaseNode Reference to the phase Information for the phase - * that owns this species. - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ + void PDSS_IonsFromNeutral::constructPDSSXML(VPStandardStateTP* tp, size_t spindex, const XML_Node& speciesNode, const XML_Node& phaseNode, const std::string& id) @@ -200,32 +170,11 @@ void PDSS_IonsFromNeutral::constructPDSSXML(VPStandardStateTP* tp, size_t spinde if (specialSpecies_ == 1) { add2RTln2_ = false; } - } -//==================================================================================================================== -// Initialization of a PDSS object using an -// input XML file. -/* - * - * This routine is a precursor to constructPDSSXML(XML_Node*) - * routine, which does most of the work. - * - * @param vptp_ptr Pointer to the Variable pressure %ThermoPhase object - * This object must have already been malloced. - * - * @param spindex Species index within the phase - * - * @param inputFile XML file containing the description of the - * phase - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ + void PDSS_IonsFromNeutral::constructPDSSFile(VPStandardStateTP* tp, size_t spindex, const std::string& inputFile, const std::string& id) { - if (inputFile.size() == 0) { throw CanteraError("PDSS_IonsFromNeutral::constructPDSSFile", "input file is null"); @@ -260,12 +209,12 @@ void PDSS_IonsFromNeutral::constructPDSSFile(VPStandardStateTP* tp, size_t spind constructPDSSXML(tp, spindex, *s, *fxml_phase, id); delete fxml; } -//======================================================================================================= + void PDSS_IonsFromNeutral::initThermoXML(const XML_Node& phaseNode, const std::string& id) { PDSS::initThermoXML(phaseNode, id); } -//======================================================================================================= + void PDSS_IonsFromNeutral::initThermo() { PDSS::initThermo(); @@ -274,10 +223,7 @@ void PDSS_IonsFromNeutral::initThermo() m_minTemp = m_spthermo->minTemp(m_spindex); m_maxTemp = m_spthermo->maxTemp(m_spindex); } -//======================================================================================================= -/* - * Return the molar enthalpy in units of J kmol-1 - */ + doublereal PDSS_IonsFromNeutral::enthalpy_mole() const { @@ -285,7 +231,7 @@ PDSS_IonsFromNeutral::enthalpy_mole() const doublereal RT = GasConstant * m_temp; return val * RT; } -//======================================================================================================= + doublereal PDSS_IonsFromNeutral::enthalpy_RT() const { @@ -297,11 +243,7 @@ PDSS_IonsFromNeutral::enthalpy_RT() const } return val; } -//======================================================================================================= -/* - * Calculate the internal energy in mks units of - * J kmol-1 - */ + doublereal PDSS_IonsFromNeutral::intEnergy_mole() const { @@ -309,18 +251,14 @@ PDSS_IonsFromNeutral::intEnergy_mole() const doublereal RT = GasConstant * m_temp; return val * RT; } -//======================================================================================================= -/* - * Calculate the entropy in mks units of - * J kmol-1 K-1 - */ + doublereal PDSS_IonsFromNeutral::entropy_mole() const { doublereal val = entropy_R(); return val * GasConstant; } -//======================================================================================================= + doublereal PDSS_IonsFromNeutral::entropy_R() const { @@ -335,11 +273,7 @@ PDSS_IonsFromNeutral::entropy_R() const } return val; } -//======================================================================================================= -/* - * Calculate the Gibbs free energy in mks units of - * J kmol-1 K-1. - */ + doublereal PDSS_IonsFromNeutral::gibbs_mole() const { @@ -347,7 +281,7 @@ PDSS_IonsFromNeutral::gibbs_mole() const doublereal RT = GasConstant * m_temp; return val * RT; } -//======================================================================================================= + doublereal PDSS_IonsFromNeutral::gibbs_RT() const { @@ -362,18 +296,14 @@ PDSS_IonsFromNeutral::gibbs_RT() const } return val; } -//======================================================================================================= -/* - * Calculate the constant pressure heat capacity - * in mks units of J kmol-1 K-1 - */ + doublereal PDSS_IonsFromNeutral::cp_mole() const { doublereal val = cp_R(); return val * GasConstant; } -//======================================================================================================= + doublereal PDSS_IonsFromNeutral::cp_R() const { @@ -385,7 +315,7 @@ PDSS_IonsFromNeutral::cp_R() const } return val; } -//======================================================================================================= + doublereal PDSS_IonsFromNeutral::molarVolume() const { @@ -397,24 +327,19 @@ PDSS_IonsFromNeutral::molarVolume() const } return val; } -//======================================================================================================= + doublereal PDSS_IonsFromNeutral::density() const { return (m_pres * m_mw / (GasConstant * m_temp)); } -/* - * Calculate the constant volume heat capacity - * in mks units of J kmol-1 K-1 - */ doublereal PDSS_IonsFromNeutral::cv_mole() const { throw CanteraError("PDSS_IonsFromNeutral::cv_mole()", "unimplemented"); return 0.0; } -//==================================================================================================================== doublereal PDSS_IonsFromNeutral::gibbs_RT_ref() const @@ -430,7 +355,7 @@ PDSS_IonsFromNeutral::gibbs_RT_ref() const } return val; } -//==================================================================================================================== + doublereal PDSS_IonsFromNeutral::enthalpy_RT_ref() const { neutralMoleculePhase_->getEnthalpy_RT_ref(DATA_PTR(tmpNM)); @@ -441,7 +366,7 @@ doublereal PDSS_IonsFromNeutral::enthalpy_RT_ref() const } return val; } -//==================================================================================================================== + doublereal PDSS_IonsFromNeutral::entropy_R_ref() const { neutralMoleculePhase_->getEntropy_R_ref(DATA_PTR(tmpNM)); @@ -455,7 +380,7 @@ doublereal PDSS_IonsFromNeutral::entropy_R_ref() const } return val; } -//==================================================================================================================== + doublereal PDSS_IonsFromNeutral::cp_R_ref() const { neutralMoleculePhase_->getCp_R_ref(DATA_PTR(tmpNM)); @@ -466,7 +391,7 @@ doublereal PDSS_IonsFromNeutral::cp_R_ref() const } return val; } -//==================================================================================================================== + doublereal PDSS_IonsFromNeutral::molarVolume_ref() const { neutralMoleculePhase_->getStandardVolumes_ref(DATA_PTR(tmpNM)); @@ -477,81 +402,64 @@ doublereal PDSS_IonsFromNeutral::molarVolume_ref() const } return val; } -//==================================================================================================================== -/* - * Calculate the pressure (Pascals), given the temperature and density - * Temperature: kelvin - * rho: density in kg m-3 - */ + doublereal PDSS_IonsFromNeutral::pressure() const { return m_pres; } -//==================================================================================================================== + void PDSS_IonsFromNeutral::setPressure(doublereal p) { m_pres = p; } -//==================================================================================================================== -// critical temperature doublereal PDSS_IonsFromNeutral::critTemperature() const { throw CanteraError("PDSS_IonsFromNeutral::critTemperature()", "unimplemented"); return 0.0; } -//==================================================================================================================== -// critical pressure + doublereal PDSS_IonsFromNeutral::critPressure() const { throw CanteraError("PDSS_IonsFromNeutral::critPressure()", "unimplemented"); return 0.0; } -//==================================================================================================================== -// critical density + doublereal PDSS_IonsFromNeutral::critDensity() const { throw CanteraError("PDSS_IonsFromNeutral::critDensity()", "unimplemented"); return 0.0; } -//==================================================================================================================== -/* - * Return the temperature - * - * Obtain the temperature from the owning VPStandardStateTP object - * if you can. - */ doublereal PDSS_IonsFromNeutral::temperature() const { + /* + * Obtain the temperature from the owning VPStandardStateTP object if you can. + */ m_temp = m_vpssmgr_ptr->temperature(); return m_temp; } -//==================================================================================================================== + void PDSS_IonsFromNeutral::setTemperature(doublereal temp) { m_temp = temp; } -//==================================================================================================================== void PDSS_IonsFromNeutral::setState_TP(doublereal temp, doublereal pres) { m_pres = pres; m_temp = temp; } -//==================================================================================================================== + void PDSS_IonsFromNeutral::setState_TR(doublereal temp, doublereal rho) { } -//==================================================================================================================== -// saturation pressure + doublereal PDSS_IonsFromNeutral::satPressure(doublereal t) { throw CanteraError("PDSS_IonsFromNeutral::satPressure()", "unimplemented"); /*NOTREACHED*/ return 0.0; } -//==================================================================================================================== } -//==================================================================================================================== diff --git a/src/thermo/PDSS_SSVol.cpp b/src/thermo/PDSS_SSVol.cpp index 6180e98eb..5a3158494 100644 --- a/src/thermo/PDSS_SSVol.cpp +++ b/src/thermo/PDSS_SSVol.cpp @@ -22,10 +22,6 @@ using namespace std; namespace Cantera { -/** - * Basic list of constructors and duplicators - */ - PDSS_SSVol::PDSS_SSVol(VPStandardStateTP* tp, size_t spindex) : PDSS(tp, spindex), volumeModel_(cSSVOLUME_CONSTANT), @@ -37,7 +33,6 @@ PDSS_SSVol::PDSS_SSVol(VPStandardStateTP* tp, size_t spindex) : TCoeff_[2] = 0.0; } - PDSS_SSVol::PDSS_SSVol(VPStandardStateTP* tp, size_t spindex, const std::string& inputFile, const std::string& id) : PDSS(tp, spindex), @@ -61,7 +56,6 @@ PDSS_SSVol::PDSS_SSVol(VPStandardStateTP* tp, size_t spindex, constructPDSSXML(tp, spindex, speciesNode, phaseRoot, spInstalled) ; } - PDSS_SSVol::PDSS_SSVol(const PDSS_SSVol& b) : PDSS(b), volumeModel_(cSSVOLUME_CONSTANT), @@ -74,9 +68,6 @@ PDSS_SSVol::PDSS_SSVol(const PDSS_SSVol& b) : *this = b; } -/* - * Assignment operator - */ PDSS_SSVol& PDSS_SSVol::operator=(const PDSS_SSVol& b) { if (&b == this) { @@ -93,28 +84,11 @@ PDSS_SSVol::~PDSS_SSVol() { } -//! Duplicator PDSS* PDSS_SSVol::duplMyselfAsPDSS() const { return new PDSS_SSVol(*this); } -/* - * constructPDSSXML: - * - * Initialization of a PDSS_SSVol object using an - * xml file. - * - * This routine is a precursor to initThermo(XML_Node*) - * routine, which does most of the work. - * - * @param infile XML file containing the description of the - * phase - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ void PDSS_SSVol::constructPDSSXML(VPStandardStateTP* tp, size_t spindex, const XML_Node& speciesNode, const XML_Node& phaseNode, bool spInstalled) @@ -155,30 +129,11 @@ void PDSS_SSVol::constructPDSSXML(VPStandardStateTP* tp, size_t spindex, "standardState model for species isn't constant_incompressible: " + speciesNode.name()); } std::string id = ""; - } - -/* - * constructPDSSFile(): - * - * Initialization of a PDSS_SSVol object using an - * xml file. - * - * This routine is a precursor to initThermo(XML_Node*) - * routine, which does most of the work. - * - * @param infile XML file containing the description of the - * phase - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ void PDSS_SSVol::constructPDSSFile(VPStandardStateTP* tp, size_t spindex, const std::string& inputFile, const std::string& id) { - if (inputFile.size() == 0) { throw CanteraError("PDSS_SSVol::initThermo", "input file is null"); @@ -254,7 +209,6 @@ PDSS_SSVol::intEnergy_mole() const return val * RT; } - doublereal PDSS_SSVol::entropy_mole() const { @@ -268,10 +222,6 @@ PDSS_SSVol::entropy_R() const return m_sss_R_ptr[m_spindex]; } -/** - * Calculate the Gibbs free energy in mks units of - * J kmol-1 K-1. - */ doublereal PDSS_SSVol::gibbs_mole() const { @@ -365,30 +315,24 @@ void PDSS_SSVol::calcMolarVolume() const } } - -/// critical temperature doublereal PDSS_SSVol::critTemperature() const { throw CanteraError("PDSS_SSVol::critTemperature()", "unimplemented"); return 0.0; } -/// critical pressure doublereal PDSS_SSVol::critPressure() const { throw CanteraError("PDSS_SSVol::critPressure()", "unimplemented"); return 0.0; } -/// critical density doublereal PDSS_SSVol::critDensity() const { throw CanteraError("PDSS_SSVol::critDensity()", "unimplemented"); return 0.0; } - - void PDSS_SSVol::setPressure(doublereal p) { m_pres = p; @@ -430,14 +374,12 @@ void PDSS_SSVol::setTemperature(doublereal temp) } } - void PDSS_SSVol::setState_TP(doublereal temp, doublereal pres) { m_pres = pres; setTemperature(temp); } - void PDSS_SSVol::setState_TR(doublereal temp, doublereal rho) { doublereal rhoStored = m_mw / m_constMolarVolume; @@ -448,7 +390,6 @@ void PDSS_SSVol::setState_TR(doublereal temp, doublereal rho) setTemperature(temp); } -/// saturation pressure doublereal PDSS_SSVol::satPressure(doublereal t) { return 1.0E-200; diff --git a/src/thermo/PDSS_Water.cpp b/src/thermo/PDSS_Water.cpp index 60db63ae9..0b9636d54 100644 --- a/src/thermo/PDSS_Water.cpp +++ b/src/thermo/PDSS_Water.cpp @@ -24,9 +24,6 @@ namespace Cantera { -/** - * Basic list of constructors and duplicators - */ PDSS_Water::PDSS_Water() : PDSS(), m_sub(0), @@ -67,7 +64,6 @@ PDSS_Water::PDSS_Water(VPStandardStateTP* tp, int spindex) : m_maxTemp = 10000.; } - PDSS_Water::PDSS_Water(VPStandardStateTP* tp, int spindex, const std::string& inputFile, const std::string& id) : PDSS(tp, spindex), @@ -113,8 +109,6 @@ PDSS_Water::PDSS_Water(VPStandardStateTP* tp, int spindex, m_maxTemp = 10000.; } - - PDSS_Water::PDSS_Water(const PDSS_Water& b) : PDSS(), m_sub(0), @@ -134,9 +128,6 @@ PDSS_Water::PDSS_Water(const PDSS_Water& b) : *this = b; } -/** - * Assignment operator - */ PDSS_Water& PDSS_Water::operator=(const PDSS_Water& b) { if (&b == this) { @@ -178,48 +169,15 @@ PDSS* PDSS_Water::duplMyselfAsPDSS() const return new PDSS_Water(*this); } -/* - * constructPDSSXML: - * - * Initialization of a Debye-Huckel phase using an - * xml file. - * - * This routine is a precursor to constructSet - * routine, which does most of the work. - * - * @param infile XML file containing the description of the - * phase - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ void PDSS_Water::constructPDSSXML(VPStandardStateTP* tp, int spindex, const XML_Node& phaseNode, const std::string& id) { constructSet(); } -/* - * constructPDSSFile(): - * - * Initialization of a Debye-Huckel phase using an - * xml file. - * - * This routine is a precursor to constructPDSSXML(XML_Node*) - * routine, which does most of the work. - * - * @param infile XML file containing the description of the - * phase - * - * @param id Optional parameter identifying the name of the - * phase. If none is given, the first XML - * phase element will be used. - */ void PDSS_Water::constructPDSSFile(VPStandardStateTP* tp, int spindex, const std::string& inputFile, const std::string& id) { - if (inputFile.size() == 0) { throw CanteraError("PDSS_Water::constructPDSSFile", "input file is null"); @@ -247,8 +205,6 @@ void PDSS_Water::constructPDSSFile(VPStandardStateTP* tp, int spindex, delete fxml; } - - void PDSS_Water::constructSet() { delete m_sub; @@ -395,12 +351,6 @@ doublereal PDSS_Water::molarVolume_ref() const return mv; } - -/** - * Calculate the pressure (Pascals), given the temperature and density - * Temperature: kelvin - * rho: density in kg m-3 - */ doublereal PDSS_Water::pressure() const { doublereal p = m_sub->pressure(); @@ -408,11 +358,10 @@ doublereal PDSS_Water::pressure() const return p; } - -// In this routine we must be sure to only find the water branch of the -// curve and not the gas branch void PDSS_Water::setPressure(doublereal p) { + // In this routine we must be sure to only find the water branch of the + // curve and not the gas branch doublereal T = m_temp; doublereal dens = m_dens; int waterState = WATER_LIQUID; @@ -420,7 +369,6 @@ void PDSS_Water::setPressure(doublereal p) waterState = WATER_SUPERCRIT; } - #ifdef DEBUG_HKM //printf("waterPDSS: set pres = %g t = %g, waterState = %d\n", // p, T, waterState); @@ -445,13 +393,6 @@ void PDSS_Water::setPressure(doublereal p) } } -// Return the volumetric thermal expansion coefficient. Units: 1/K. -/* - * The thermal expansion coefficient is defined as - * \f[ - * \beta = \frac{1}{v}\left(\frac{\partial v}{\partial T}\right)_P - * \f] - */ doublereal PDSS_Water::thermalExpansionCoeff() const { return m_sub->coeffThermExp(); @@ -478,19 +419,16 @@ doublereal PDSS_Water::isothermalCompressibility() const return m_sub->isothermalCompressibility(); } -/// critical temperature doublereal PDSS_Water::critTemperature() const { return m_sub->Tcrit(); } -/// critical pressure doublereal PDSS_Water::critPressure() const { return m_sub->Pcrit(); } -/// critical density doublereal PDSS_Water::critDensity() const { return m_sub->Rhocrit(); @@ -540,7 +478,6 @@ doublereal PDSS_Water::pref_safe(doublereal temp) const return OneAtm; } -// saturation pressure doublereal PDSS_Water::satPressure(doublereal t) { doublereal pp = m_sub->psat(t, WATER_LIQUID);