Cantera  3.1.0a1
MixtureFugacityTP.h
Go to the documentation of this file.
1 /**
2  * @file MixtureFugacityTP.h
3  * Header file for a derived class of ThermoPhase that handles
4  * non-ideal mixtures based on the fugacity models (see @ref thermoprops and
5  * class @link Cantera::MixtureFugacityTP MixtureFugacityTP@endlink).
6  */
7 
8 // This file is part of Cantera. See License.txt in the top-level directory or
9 // at https://cantera.org/license.txt for license and copyright information.
10 
11 #ifndef CT_MIXTUREFUGACITYTP_H
12 #define CT_MIXTUREFUGACITYTP_H
13 
14 #include "ThermoPhase.h"
15 
16 namespace Cantera
17 {
18 //! Various states of the Fugacity object. In general there can be multiple liquid
19 //! objects for a single phase identified with each species.
20 
21 #define FLUID_UNSTABLE -4
22 #define FLUID_UNDEFINED -3
23 #define FLUID_SUPERCRIT -2
24 #define FLUID_GAS -1
25 #define FLUID_LIQUID_0 0
26 #define FLUID_LIQUID_1 1
27 #define FLUID_LIQUID_2 2
28 #define FLUID_LIQUID_3 3
29 #define FLUID_LIQUID_4 4
30 #define FLUID_LIQUID_5 5
31 #define FLUID_LIQUID_6 6
32 #define FLUID_LIQUID_7 7
33 #define FLUID_LIQUID_8 8
34 #define FLUID_LIQUID_9 9
35 
36 /**
37  * @ingroup thermoprops
38  *
39  * This is a filter class for ThermoPhase that implements some preparatory steps
40  * for efficiently handling mixture of gases that whose standard states are
41  * defined as ideal gases, but which describe also non-ideal solutions. In
42  * addition a multicomponent liquid phase below the critical temperature of the
43  * mixture is also allowed. The main subclass is currently a mixture Redlich-
44  * Kwong class.
45  *
46  * Several concepts are introduced. The first concept is there are temporary
47  * variables for holding the species standard state values of Cp, H, S, G, and V
48  * at the last temperature and pressure called. These functions are not
49  * recalculated if a new call is made using the previous temperature and
50  * pressure.
51  *
52  * The other concept is that the current state of the mixture is tracked. The
53  * state variable is either GAS, LIQUID, or SUPERCRIT fluid. Additionally, the
54  * variable LiquidContent is used and may vary between 0 and 1.
55  *
56  * Typically, only one liquid phase is allowed to be formed within these
57  * classes. Additionally, there is an inherent contradiction between three phase
58  * models and the ThermoPhase class. The ThermoPhase class is really only meant
59  * to represent a single instantiation of a phase. The three phase models may be
60  * in equilibrium with multiple phases of the fluid in equilibrium with each
61  * other. This has yet to be resolved.
62  *
63  * This class is usually used for non-ideal gases.
64  */
66 {
67 public:
68  //! @name Constructors and Duplicators for MixtureFugacityTP
69  //! @{
70 
71  //! Constructor.
72  MixtureFugacityTP() = default;
73 
74  //! @}
75  //! @name Utilities
76  //! @{
77 
78  string type() const override {
79  return "MixtureFugacity";
80  }
81 
82  int standardStateConvention() const override;
83 
84  //! Set the solution branch to force the ThermoPhase to exist on one branch
85  //! or another
86  /*!
87  * @param solnBranch Branch that the solution is restricted to. the value
88  * -1 means gas. The value -2 means unrestricted. Values of zero or
89  * greater refer to species dominated condensed phases.
90  */
91  void setForcedSolutionBranch(int solnBranch);
92 
93  //! Report the solution branch which the solution is restricted to
94  /*!
95  * @return Branch that the solution is restricted to. the value -1 means
96  * gas. The value -2 means unrestricted. Values of zero or greater
97  * refer to species dominated condensed phases.
98  */
99  int forcedSolutionBranch() const;
100 
101  //! Report the solution branch which the solution is actually on
102  /*!
103  * @return Branch that the solution is restricted to. the value -1 means
104  * gas. The value -2 means superfluid.. Values of zero or greater refer
105  * to species dominated condensed phases.
106  */
107  int reportSolnBranchActual() const;
108 
109  //! @}
110  //! @name Molar Thermodynamic properties
111  //! @{
112 
113  double enthalpy_mole() const override;
114  double entropy_mole() const override;
115 
116  //! @}
117  //! @name Properties of the Standard State of the Species in the Solution
118  //!
119  //! Within MixtureFugacityTP, these properties are calculated via a common
120  //! routine, _updateStandardStateThermo(), which must be overloaded in
121  //! inherited objects. The values are cached within this object, and are not
122  //! recalculated unless the temperature or pressure changes.
123  //! @{
124 
125  //! Get the array of chemical potentials at unit activity.
126  /*!
127  * These are the standard state chemical potentials @f$ \mu^0_k(T,P)
128  * @f$. The values are evaluated at the current temperature and pressure.
129  *
130  * For all objects with the Mixture Fugacity approximation, we define the
131  * standard state as an ideal gas at the current temperature and pressure
132  * of the solution.
133  *
134  * @param mu Output vector of standard state chemical potentials.
135  * length = m_kk. units are J / kmol.
136  */
137  void getStandardChemPotentials(double* mu) const override;
138 
139  //! Get the nondimensional Enthalpy functions for the species at their
140  //! standard states at the current *T* and *P* of the solution.
141  /*!
142  * For all objects with the Mixture Fugacity approximation, we define the
143  * standard state as an ideal gas at the current temperature and pressure
144  * of the solution.
145  *
146  * @param hrt Output vector of standard state enthalpies.
147  * length = m_kk. units are unitless.
148  */
149  void getEnthalpy_RT(double* hrt) const override;
150 
151  //! Get the array of nondimensional Enthalpy functions for the standard
152  //! state species at the current *T* and *P* of the solution.
153  /*!
154  * For all objects with the Mixture Fugacity approximation, we define the
155  * standard state as an ideal gas at the current temperature and pressure of
156  * the solution.
157  *
158  * @param sr Output vector of nondimensional standard state entropies.
159  * length = m_kk.
160  */
161  void getEntropy_R(double* sr) const override;
162 
163  //! Get the nondimensional Gibbs functions for the species at their standard
164  //! states of solution at the current T and P of the solution.
165  /*!
166  * For all objects with the Mixture Fugacity approximation, we define the
167  * standard state as an ideal gas at the current temperature and pressure
168  * of the solution.
169  *
170  * @param grt Output vector of nondimensional standard state Gibbs free
171  * energies. length = m_kk.
172  */
173  void getGibbs_RT(double* grt) const override;
174 
175  //! Get the pure Gibbs free energies of each species. Species are assumed to
176  //! be in their standard states.
177  /*!
178  * This is the same as getStandardChemPotentials().
179  *
180  * @param[out] gpure Array of standard state Gibbs free energies. length =
181  * m_kk. units are J/kmol.
182  */
183  void getPureGibbs(double* gpure) const override;
184 
185  //! Returns the vector of nondimensional internal Energies of the standard
186  //! state at the current temperature and pressure of the solution for each
187  //! species.
188  /*!
189  * For all objects with the Mixture Fugacity approximation, we define the
190  * standard state as an ideal gas at the current temperature and pressure
191  * of the solution.
192  *
193  * @f[
194  * u^{ss}_k(T,P) = h^{ss}_k(T) - P * V^{ss}_k
195  * @f]
196  *
197  * @param urt Output vector of nondimensional standard state internal
198  * energies. length = m_kk.
199  */
200  void getIntEnergy_RT(double* urt) const override;
201 
202  //! Get the nondimensional Heat Capacities at constant pressure for the
203  //! standard state of the species at the current T and P.
204  /*!
205  * For all objects with the Mixture Fugacity approximation, we define the
206  * standard state as an ideal gas at the current temperature and pressure of
207  * the solution.
208  *
209  * @param cpr Output vector containing the the nondimensional Heat
210  * Capacities at constant pressure for the standard state of
211  * the species. Length: m_kk.
212  */
213  void getCp_R(double* cpr) const override;
214 
215  //! Get the molar volumes of each species in their standard states at the
216  //! current *T* and *P* of the solution.
217  /*!
218  * For all objects with the Mixture Fugacity approximation, we define the
219  * standard state as an ideal gas at the current temperature and pressure of
220  * the solution.
221  *
222  * units = m^3 / kmol
223  *
224  * @param vol Output vector of species volumes. length = m_kk.
225  * units = m^3 / kmol
226  */
227  void getStandardVolumes(double* vol) const override;
228  //! @}
229 
230  //! Set the temperature of the phase
231  /*!
232  * Currently this passes down to setState_TP(). It does not make sense to
233  * calculate the standard state without first setting T and P.
234  *
235  * @param temp Temperature (kelvin)
236  */
237  void setTemperature(const double temp) override;
238 
239  //! Set the internally stored pressure (Pa) at constant temperature and
240  //! composition
241  /*!
242  * Currently this passes down to setState_TP(). It does not make sense to
243  * calculate the standard state without first setting T and P.
244  *
245  * @param p input Pressure (Pa)
246  */
247  void setPressure(double p) override;
248 
249 protected:
250  void compositionChanged() override;
251 
252  //! Updates the reference state thermodynamic functions at the current T of
253  //! the solution.
254  /*!
255  * This function must be called for every call to functions in this class.
256  * It checks to see whether the temperature has changed and thus the ss
257  * thermodynamics functions for all of the species must be recalculated.
258  *
259  * This function is responsible for updating the following internal members:
260  *
261  * - m_h0_RT;
262  * - m_cp0_R;
263  * - m_g0_RT;
264  * - m_s0_R;
265  */
266  virtual void _updateReferenceStateThermo() const;
267 
268  //! Temporary storage - length = m_kk.
269  mutable vector<double> m_tmpV;
270 public:
271 
272  //! @name Thermodynamic Values for the Species Reference States
273  //!
274  //! There are also temporary variables for holding the species reference-
275  //! state values of Cp, H, S, and V at the last temperature and reference
276  //! pressure called. These functions are not recalculated if a new call is
277  //! made using the previous temperature. All calculations are done within the
278  //! routine _updateRefStateThermo().
279  //! @{
280 
281  void getEnthalpy_RT_ref(double* hrt) const override;
282  void getGibbs_RT_ref(double* grt) const override;
283 
284 protected:
285  //! Returns the vector of nondimensional Gibbs free energies of the
286  //! reference state at the current temperature of the solution and the
287  //! reference pressure for the species.
288  /*!
289  * @return Output vector contains the nondimensional Gibbs free energies
290  * of the reference state of the species
291  * length = m_kk, units = dimensionless.
292  */
293  const vector<double>& gibbs_RT_ref() const;
294 
295 public:
296  void getGibbs_ref(double* g) const override;
297  void getEntropy_R_ref(double* er) const override;
298  void getCp_R_ref(double* cprt) const override;
299  void getStandardVolumes_ref(double* vol) const override;
300 
301  //! @}
302  //! @name Initialization Methods - For Internal use
303  //!
304  //! The following methods are used in the process of constructing
305  //! the phase and setting its parameters from a specification in an
306  //! input file. They are not normally used in application programs.
307  //! To see how they are used, see importPhase().
308  //! @{
309  bool addSpecies(shared_ptr<Species> spec) override;
310  //! @}
311 
312 protected:
313  //! @name Special Functions for fugacity classes
314  //! @{
315 
316  //! Calculate the value of z
317  /*!
318  * @f[
319  * z = \frac{P v}{R T}
320  * @f]
321  *
322  * returns the value of z
323  */
324  double z() const;
325 
326  //! Calculate the deviation terms for the total entropy of the mixture from
327  //! the ideal gas mixture
328  /**
329  * Here we use the current state conditions
330  *
331  * @returns the change in entropy in units of J kmol-1 K-1.
332  */
333  virtual double sresid() const;
334 
335  //! Calculate the deviation terms for the total enthalpy of the mixture from
336  //! the ideal gas mixture
337  /**
338  * Here we use the current state conditions
339  *
340  * @returns the change in entropy in units of J kmol-1.
341  */
342  virtual double hresid() const;
343 
344  //! Estimate for the saturation pressure
345  /*!
346  * Note: this is only used as a starting guess for later routines that
347  * actually calculate an accurate value for the saturation pressure.
348  *
349  * @param TKelvin temperature in kelvin
350  * @return the estimated saturation pressure at the given temperature
351  */
352  virtual double psatEst(double TKelvin) const;
353 
354 public:
355  //! Estimate for the molar volume of the liquid
356  /*!
357  * Note: this is only used as a starting guess for later routines that
358  * actually calculate an accurate value for the liquid molar volume. This
359  * routine doesn't change the state of the system.
360  *
361  * @param TKelvin temperature in kelvin
362  * @param pres Pressure in Pa. This is used as an initial guess. If the
363  * routine needs to change the pressure to find a stable
364  * liquid state, the new pressure is returned in this
365  * variable.
366  * @returns the estimate of the liquid volume. If the liquid can't be
367  * found, this routine returns -1.
368  */
369  virtual double liquidVolEst(double TKelvin, double& pres) const;
370 
371  //! Calculates the density given the temperature and the pressure and a
372  //! guess at the density.
373  /*!
374  * Note, below T_c, this is a multivalued function. We do not cross the
375  * vapor dome in this. This is protected because it is called during
376  * setState_TP() routines. Infinite loops would result if it were not
377  * protected.
378  *
379  * @param TKelvin Temperature in Kelvin
380  * @param pressure Pressure in Pascals (Newton/m**2)
381  * @param phaseRequested int representing the phase whose density we are
382  * requesting. If we put a gas or liquid phase here, we will attempt to
383  * find a volume in that part of the volume space, only, in this
384  * routine. A value of FLUID_UNDEFINED means that we will accept
385  * anything.
386  * @param rhoguess Guessed density of the fluid. A value of -1.0 indicates
387  * that there is no guessed density
388  * @return We return the density of the fluid at the requested phase. If
389  * we have not found any acceptable density we return a -1. If we
390  * have found an acceptable density at a different phase, we
391  * return a -2.
392  */
393  virtual double densityCalc(double TKelvin, double pressure, int phaseRequested,
394  double rhoguess);
395 
396 protected:
397  //! Utility routine in the calculation of the saturation pressure
398  /*!
399  * @param TKelvin temperature (kelvin)
400  * @param pres pressure (Pascal)
401  * @param[out] densLiq density of liquid
402  * @param[out] densGas density of gas
403  * @param[out] liqGRT deltaG/RT of liquid
404  * @param[out] gasGRT deltaG/RT of gas
405  */
406  int corr0(double TKelvin, double pres, double& densLiq,
407  double& densGas, double& liqGRT, double& gasGRT);
408 
409 public:
410  //! Returns the Phase State flag for the current state of the object
411  /*!
412  * @param checkState If true, this function does a complete check to see
413  * where in parameters space we are
414  *
415  * There are three values:
416  * - WATER_GAS below the critical temperature but below the critical density
417  * - WATER_LIQUID below the critical temperature but above the critical density
418  * - WATER_SUPERCRIT above the critical temperature
419  */
420  int phaseState(bool checkState = false) const;
421 
422  //! Return the value of the density at the liquid spinodal point (on the
423  //! liquid side) for the current temperature.
424  /*!
425  * @returns the density with units of kg m-3
426  */
427  virtual double densSpinodalLiquid() const;
428 
429  //! Return the value of the density at the gas spinodal point (on the gas
430  //! side) for the current temperature.
431  /*!
432  * @returns the density with units of kg m-3
433  */
434  virtual double densSpinodalGas() const;
435 
436 public:
437  //! Calculate the saturation pressure at the current mixture content for the
438  //! given temperature
439  /*!
440  * @param TKelvin (input) Temperature (Kelvin)
441  * @param molarVolGas (return) Molar volume of the gas
442  * @param molarVolLiquid (return) Molar volume of the liquid
443  * @returns the saturation pressure at the given temperature
444  */
445  double calculatePsat(double TKelvin, double& molarVolGas, double& molarVolLiquid);
446 
447 public:
448  //! Calculate the saturation pressure at the current mixture content for the
449  //! given temperature
450  /*!
451  * @param TKelvin Temperature (Kelvin)
452  * @return The saturation pressure at the given temperature
453  */
454  double satPressure(double TKelvin) override;
455  void getActivityConcentrations(double* c) const override;
456 
457 protected:
458  //! Calculate the pressure and the pressure derivative given the temperature
459  //! and the molar volume
460  /*!
461  * Temperature and mole number are held constant
462  *
463  * @param TKelvin temperature in kelvin
464  * @param molarVol molar volume ( m3/kmol)
465  * @param presCalc Returns the pressure.
466  * @returns the derivative of the pressure wrt the molar volume
467  */
468  virtual double dpdVCalc(double TKelvin, double molarVol, double& presCalc) const;
469 
470  virtual void updateMixingExpressions();
471 
472  //! @}
473  //! @name Critical State Properties.
474  //! @{
475 
476  double critTemperature() const override;
477  double critPressure() const override;
478  double critVolume() const override;
479  double critCompressibility() const override;
480  double critDensity() const override;
481  virtual void calcCriticalConditions(double& pc, double& tc, double& vc) const;
482 
483  //! Solve the cubic equation of state
484  /*!
485  *
486  * Returns the number of solutions found. For the gas phase solution, it returns
487  * a positive number (1 or 2). If it only finds the liquid branch solution,
488  * it will return -1 or -2 instead of 1 or 2.
489  * If it returns 0, then there is an error.
490  * The cubic equation is solved using Nickalls' method @cite nickalls1993.
491  *
492  * @param T temperature (kelvin)
493  * @param pres pressure (Pa)
494  * @param a "a" parameter in the non-ideal EoS [Pa-m^6/kmol^2]
495  * @param b "b" parameter in the non-ideal EoS [m^3/kmol]
496  * @param aAlpha a*alpha (temperature dependent function for P-R EoS, 1 for R-K EoS)
497  * @param Vroot Roots of the cubic equation for molar volume (m3/kmol)
498  * @param an constant used in cubic equation
499  * @param bn constant used in cubic equation
500  * @param cn constant used in cubic equation
501  * @param dn constant used in cubic equation
502  * @param tc Critical temperature (kelvin)
503  * @param vc Critical volume
504  * @returns the number of solutions found
505  */
506  int solveCubic(double T, double pres, double a, double b,
507  double aAlpha, double Vroot[3], double an,
508  double bn, double cn, double dn, double tc, double vc) const;
509 
510  //! @}
511 
512  //! Storage for the current values of the mole fractions of the species
513  /*!
514  * This vector is kept up-to-date when some the setState functions are called.
515  */
516  vector<double> moleFractions_;
517 
518  //! Current state of the fluid
519  /*!
520  * There are three possible states of the fluid:
521  * - FLUID_GAS
522  * - FLUID_LIQUID
523  * - FLUID_SUPERCRIT
524  */
525  int iState_ = FLUID_GAS;
526 
527  //! Force the system to be on a particular side of the spinodal curve
528  int forcedState_ = FLUID_UNDEFINED;
529 
530  //! Temporary storage for dimensionless reference state enthalpies
531  mutable vector<double> m_h0_RT;
532 
533  //! Temporary storage for dimensionless reference state heat capacities
534  mutable vector<double> m_cp0_R;
535 
536  //! Temporary storage for dimensionless reference state Gibbs energies
537  mutable vector<double> m_g0_RT;
538 
539  //! Temporary storage for dimensionless reference state entropies
540  mutable vector<double> m_s0_R;
541 };
542 }
543 
544 #endif
Header file for class ThermoPhase, the base class for phases with thermodynamic properties,...
This is a filter class for ThermoPhase that implements some preparatory steps for efficiently handlin...
int iState_
Current state of the fluid.
int reportSolnBranchActual() const
Report the solution branch which the solution is actually on.
double enthalpy_mole() const override
Molar enthalpy. Units: J/kmol.
int standardStateConvention() const override
This method returns the convention used in specification of the standard state, of which there are cu...
MixtureFugacityTP()=default
Constructor.
vector< double > m_g0_RT
Temporary storage for dimensionless reference state Gibbs energies.
double critPressure() const override
Critical pressure (Pa).
double critDensity() const override
Critical density (kg/m3).
void getEntropy_R(double *sr) const override
Get the array of nondimensional Enthalpy functions for the standard state species at the current T an...
vector< double > m_h0_RT
Temporary storage for dimensionless reference state enthalpies.
void getGibbs_ref(double *g) const override
Returns the vector of the Gibbs function of the reference state at the current temperature of the sol...
void getStandardChemPotentials(double *mu) const override
Get the array of chemical potentials at unit activity.
double critTemperature() const override
Critical temperature (K).
void getCp_R(double *cpr) const override
Get the nondimensional Heat Capacities at constant pressure for the standard state of the species at ...
virtual double densSpinodalLiquid() const
Return the value of the density at the liquid spinodal point (on the liquid side) for the current tem...
virtual void _updateReferenceStateThermo() const
Updates the reference state thermodynamic functions at the current T of the solution.
string type() const override
String indicating the thermodynamic model implemented.
double satPressure(double TKelvin) override
Calculate the saturation pressure at the current mixture content for the given temperature.
vector< double > m_tmpV
Temporary storage - length = m_kk.
void getActivityConcentrations(double *c) const override
This method returns an array of generalized concentrations.
int solveCubic(double T, double pres, double a, double b, double aAlpha, double Vroot[3], double an, double bn, double cn, double dn, double tc, double vc) const
Solve the cubic equation of state.
double critCompressibility() const override
Critical compressibility (unitless).
void setPressure(double p) override
Set the internally stored pressure (Pa) at constant temperature and composition.
const vector< double > & gibbs_RT_ref() const
Returns the vector of nondimensional Gibbs free energies of the reference state at the current temper...
void getStandardVolumes_ref(double *vol) const override
Get the molar volumes of the species reference states at the current T and P_ref of the solution.
virtual double densSpinodalGas() const
Return the value of the density at the gas spinodal point (on the gas side) for the current temperatu...
void getPureGibbs(double *gpure) const override
Get the pure Gibbs free energies of each species.
double calculatePsat(double TKelvin, double &molarVolGas, double &molarVolLiquid)
Calculate the saturation pressure at the current mixture content for the given temperature.
vector< double > moleFractions_
Storage for the current values of the mole fractions of the species.
void getEnthalpy_RT(double *hrt) const override
Get the nondimensional Enthalpy functions for the species at their standard states at the current T a...
void getEntropy_R_ref(double *er) const override
Returns the vector of nondimensional entropies of the reference state at the current temperature of t...
void setTemperature(const double temp) override
Set the temperature of the phase.
vector< double > m_s0_R
Temporary storage for dimensionless reference state entropies.
virtual double dpdVCalc(double TKelvin, double molarVol, double &presCalc) const
Calculate the pressure and the pressure derivative given the temperature and the molar volume.
void getGibbs_RT(double *grt) const override
Get the nondimensional Gibbs functions for the species at their standard states of solution at the cu...
double entropy_mole() const override
Molar entropy. Units: J/kmol/K.
virtual double densityCalc(double TKelvin, double pressure, int phaseRequested, double rhoguess)
Calculates the density given the temperature and the pressure and a guess at the density.
double critVolume() const override
Critical volume (m3/kmol).
virtual double psatEst(double TKelvin) const
Estimate for the saturation pressure.
void getCp_R_ref(double *cprt) const override
Returns the vector of nondimensional constant pressure heat capacities of the reference state at the ...
void getStandardVolumes(double *vol) const override
Get the molar volumes of each species in their standard states at the current T and P of the solution...
virtual double sresid() const
Calculate the deviation terms for the total entropy of the mixture from the ideal gas mixture.
void getIntEnergy_RT(double *urt) const override
Returns the vector of nondimensional internal Energies of the standard state at the current temperatu...
int forcedState_
Force the system to be on a particular side of the spinodal curve.
virtual double liquidVolEst(double TKelvin, double &pres) const
Estimate for the molar volume of the liquid.
int forcedSolutionBranch() const
Report the solution branch which the solution is restricted to.
void compositionChanged() override
Apply changes to the state which are needed after the composition changes.
vector< double > m_cp0_R
Temporary storage for dimensionless reference state heat capacities.
int corr0(double TKelvin, double pres, double &densLiq, double &densGas, double &liqGRT, double &gasGRT)
Utility routine in the calculation of the saturation pressure.
void setForcedSolutionBranch(int solnBranch)
Set the solution branch to force the ThermoPhase to exist on one branch or another.
bool addSpecies(shared_ptr< Species > spec) override
Add a Species to this Phase.
virtual double hresid() const
Calculate the deviation terms for the total enthalpy of the mixture from the ideal gas mixture.
void getGibbs_RT_ref(double *grt) const override
Returns the vector of nondimensional Gibbs Free Energies of the reference state at the current temper...
double z() const
Calculate the value of z.
int phaseState(bool checkState=false) const
Returns the Phase State flag for the current state of the object.
void getEnthalpy_RT_ref(double *hrt) const override
Returns the vector of nondimensional enthalpies of the reference state at the current temperature of ...
virtual double pressure() const
Return the thermodynamic pressure (Pa).
Definition: Phase.h:580
Base class for a phase with thermodynamic properties.
Definition: ThermoPhase.h:390
Namespace for the Cantera kernel.
Definition: AnyMap.cpp:564