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