Cantera  2.1.2
FixedChemPotSSTP.h
Go to the documentation of this file.
1 /**
2  * @file FixedChemPotSSTP.h
3  * Header file for the FixedChemPotSSTP class, which represents a fixed-composition
4  * incompressible substance with a constant chemical potential (see \ref thermoprops and
5  * class \link Cantera::FixedChemPotSSTP FixedChemPotSSTP\endlink)
6  */
7 
8 /*
9  * Copyright (2005) Sandia Corporation. Under the terms of
10  * Contract DE-AC04-94AL85000 with Sandia Corporation, the
11  * U.S. Government retains certain rights in this software.
12  */
13 
14 #ifndef CT_FIXEDCHEMPOTSSTP_H
15 #define CT_FIXEDCHEMPOTSSTP_H
16 
17 #include "mix_defs.h"
18 #include "SingleSpeciesTP.h"
19 #include "SpeciesThermo.h"
20 
21 namespace Cantera
22 {
23 
24 //! Class %FixedChemPotSSTP represents a stoichiometric (fixed
25 //! composition) incompressible substance.
26 /*!
27  * This class internally changes the independent degree of freedom from
28  * density to pressure. This is necessary because the phase is
29  * incompressible. It uses a zero volume approximation.
30  *
31  * <b> Specification of Species Standard %State Properties </b>
32  *
33  * This class inherits from SingleSpeciesTP.
34  * It uses a single value for the chemical potential which is assumed to be constant
35  * with respect to temperature and pressure.
36  *
37  * The reference state thermodynamics is inherited from SingleSpeciesTP. However,
38  * it's only used to set the initial chemical potential to the value
39  * of the chemical potential at the starting conditions. Thereafter,
40  * it is ignored.
41  *
42  * For a zero volume material, the internal energy and the enthalpy are
43  * equal to the chemical potential. The entropy, the heat capacity, and the molar volume
44  * are equal to zero.
45  *
46  * <b> Specification of Solution Thermodynamic Properties </b>
47  *
48  * All solution properties are obtained from the standard state
49  * species functions, since there is only one species in the phase.
50  *
51  * <b> Application within %Kinetics Managers </b>
52  *
53  * The standard concentration is equal to 1.0. This means that the
54  * kinetics operator works on an (activities basis). Since this
55  * is a stoichiometric substance, this means that the concentration
56  * of this phase drops out of kinetics expressions.
57  *
58  * An example of a reaction using this is a sticking coefficient
59  * reaction of a substance in an ideal gas phase on a surface with a bulk phase
60  * species in this phase. In this case, the rate of progress for this
61  * reaction, \f$ R_s \f$, may be expressed via the following equation:
62  * \f[
63  * R_s = k_s C_{gas}
64  * \f]
65  * where the units for \f$ R_s \f$ are kmol m-2 s-1. \f$ C_{gas} \f$ has units
66  * of kmol m-3. Therefore, the kinetic rate constant, \f$ k_s \f$, has
67  * units of m s-1. Nowhere does the concentration of the bulk phase
68  * appear in the rate constant expression, since it's a stoichiometric
69  * phase, and the activity is always equal to 1.0.
70  *
71  * <b> Instantiation of the Class </b>
72  *
73  * This phase may be instantiated by calling the default ThermoFactory routine
74  * for %Cantera. This new %FixedChemPotSSTP object must then have a standalone xml file
75  * description an example of which is given below.
76  *
77  * It may also be created by the following code snippets. The code
78  * includes the special member function setChemicalPotential( chempot), which
79  * sets the chemical potential to a specific value in J / kmol.
80  *
81  * @code
82  * sprintf(file_ID,"%s#Li(Fixed)", iFile);
83  * XML_Node *xm = get_XML_NameID("phase", file_ID, 0);
84  * FixedChemPotSSTP *LiFixed = new FixedChemPotSSTP(*xm);
85  // Set the chemical potential to -2.3E7 J/kmol
86  * LiFixed->setChemicalPotential(-2.3E7.)
87  * @endcode
88  *
89  * or by the following call to importPhase():
90  *
91  * @code
92  * sprintf(file_ID,"%s#NaCl(S)", iFile);
93  * XML_Node *xm = get_XML_NameID("phase", file_ID, 0);
94  * FixedChemPotSSTP solid;
95  * importPhase(*xm, &solid);
96  * @endcode
97  *
98  * The phase may also be created by a special constructor so that element
99  * potentials may be set. The constructor takes the name of the element and
100  * the value of the element chemical potential. An example is given below.
101  *
102  * @code
103  * FixedChemPotSSTP *LiFixed = new FixedChemPotSSTP("Li", -2.3E7);
104  * @endcode
105  *
106  * <b> XML Example </b>
107  *
108  * The phase model name for this is called FixedChemPot. It must be supplied
109  * as the model attribute of the thermo XML element entry.
110  *
111  * @code
112  * <?xml version="1.0"?>
113  * <ctml>
114  * <validate reactions="yes" species="yes"/>
115  *
116  * <!-- phase NaCl(S) -->
117  * <phase dim="3" id="LiFixed">
118  * <elementArray datasrc="elements.xml">
119  * Li
120  * </elementArray>
121  * <speciesArray datasrc="#species_Li(Fixed)">
122  * LiFixed
123  * </speciesArray>
124  * <thermo model="FixedChemPot">
125  * <chemicalPotential units="J/kmol"> -2.3E7 </chemicalPotential>
126  * </thermo>
127  * <transport model="None"/>
128  * <kinetics model="none"/>
129  * </phase>
130  *
131  * <!-- species definitions -->
132  * <speciesData id="species_Li(Fixed)">
133  * <species name="LiFixed">
134  * <atomArray> Li:1 </atomArray>
135  * <thermo>
136  * <Shomate Pref="1 bar" Tmax="1075.0" Tmin="250.0">
137  * <floatArray size="7">
138  * 50.72389, 6.672267, -2.517167,
139  * 10.15934, -0.200675, -427.2115,
140  * 130.3973
141  * </floatArray>
142  * </Shomate>
143  * </thermo>
144  * </species>
145  * </speciesData>
146  * </ctml>
147  * @endcode
148  *
149  * The model attribute, "FixedChemPot", on the thermo element
150  * identifies the phase as being a FixedChemPotSSTP object.
151  *
152  * @ingroup thermoprops
153  */
155 {
156 public:
157  //! Default constructor for the FixedChemPotSSTP class
159 
160  //! Construct and initialize a FixedChemPotSSTP ThermoPhase object
161  //! directly from an ASCII input file
162  /*!
163  * @param infile name of the input file
164  * @param id name of the phase id in the file.
165  * If this is blank, the first phase in the file is used.
166  */
167  FixedChemPotSSTP(const std::string& infile, std::string id = "");
168 
169  //! Construct and initialize a FixedChemPotSSTP ThermoPhase object
170  //! directly from an XML database
171  /*!
172  * @param phaseRef XML node pointing to a FixedChemPotSSTP description
173  * @param id Id of the phase.
174  */
175  FixedChemPotSSTP(XML_Node& phaseRef, const std::string& id = "");
176 
177  //! Copy constructor
178  /*!
179  * @param right Object to be copied
180  */
181  FixedChemPotSSTP(const FixedChemPotSSTP& right);
182 
183  //! Special constructor for the FixecChemPotSSTP class setting an element chemical
184  //! potential directly
185  /*!
186  * This will create a %FixedChemPotSSTP consisting of a single species with the
187  * stoichiometry of one of the specified atom. It will have a chemical potential
188  * that is given by the second argument.
189  *
190  * @param Ename String name of the element
191  * @param chemPot Value of the chemical potential of that element (J/kmol)
192  */
193  FixedChemPotSSTP(const std::string& Ename, doublereal chemPot);
194 
195  //! Assignment operator
196  /*!
197  * @param right Object to be copied
198  */
200 
201  //! Duplication function
202  /*!
203  * This virtual function is used to create a duplicate of the
204  * current phase. It's used to duplicate the phase when given
205  * a ThermoPhase pointer to the phase.
206  *
207  * @return It returns a ThermoPhase pointer.
208  */
210 
211  /**
212  * Equation of state flag.
213  *
214  * Returns the value cStoichSubstance, defined in mix_defs.h.
215  */
216  virtual int eosType() const;
217 
218  //! @}
219  //! @name Mechanical Equation of State
220  //! @{
221 
222  //! Report the Pressure. Units: Pa.
223  /*!
224  * For an incompressible substance, the density is independent
225  * of pressure. This method simply returns the stored
226  * pressure value.
227  */
228  virtual doublereal pressure() const;
229 
230  //! Set the pressure at constant temperature. Units: Pa.
231  /*!
232  * For an incompressible substance, the density is
233  * independent of pressure. Therefore, this method only
234  * stores the specified pressure value. It does not
235  * modify the density.
236  *
237  * @param p Pressure (units - Pa)
238  */
239  virtual void setPressure(doublereal p);
240 
241  //! Returns the isothermal compressibility. Units: 1/Pa.
242  /*!
243  * The isothermal compressibility is defined as
244  * \f[
245  * \kappa_T = -\frac{1}{v}\left(\frac{\partial v}{\partial P}\right)_T
246  * \f]
247  */
248  virtual doublereal isothermalCompressibility() const;
249 
250  //! Return the volumetric thermal expansion coefficient. Units: 1/K.
251  /*!
252  * The thermal expansion coefficient is defined as
253  * \f[
254  * \beta = \frac{1}{v}\left(\frac{\partial v}{\partial T}\right)_P
255  * \f]
256  */
257  virtual doublereal thermalExpansionCoeff() const ;
258 
259  /**
260  * @}
261  * @name Activities, Standard States, and Activity Concentrations
262  *
263  * This section is largely handled by parent classes, since there
264  * is only one species. Therefore, the activity is equal to one.
265  * @{
266  */
267 
268  //! This method returns an array of generalized concentrations
269  /*!
270  * \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
271  * C^0_k, \f$ where \f$ C^0_k \f$ is a standard concentration
272  * defined below and \f$ a_k \f$ are activities used in the
273  * thermodynamic functions. These activity (or generalized)
274  * concentrations are used
275  * by kinetics manager classes to compute the forward and
276  * reverse rates of elementary reactions.
277  *
278  * For a stoichiometric substance, there is
279  * only one species, and the generalized concentration is 1.0.
280  *
281  * @param c Output array of generalized concentrations. The
282  * units depend upon the implementation of the
283  * reaction rate expressions within the phase.
284  */
285  virtual void getActivityConcentrations(doublereal* c) const;
286 
287  //! Return the standard concentration for the kth species
288  /*!
289  * The standard concentration \f$ C^0_k \f$ used to normalize
290  * the activity (i.e., generalized) concentration.
291  * This phase assumes that the kinetics operator works on an
292  * dimensionless basis. Thus, the standard concentration is
293  * equal to 1.0.
294  *
295  * @param k Optional parameter indicating the species. The default
296  * is to assume this refers to species 0.
297  * @return
298  * Returns The standard Concentration as 1.0
299  */
300  virtual doublereal standardConcentration(size_t k=0) const;
301 
302  //! Natural logarithm of the standard concentration of the kth species.
303  /*!
304  * @param k index of the species (defaults to zero)
305  */
306  virtual doublereal logStandardConc(size_t k=0) const;
307 
308  //! Get the array of chemical potentials at unit activity for the species
309  //! at their standard states at the current <I>T</I> and <I>P</I> of the solution.
310  /*!
311  * For a stoichiometric substance, there is no activity term in
312  * the chemical potential expression, and therefore the
313  * standard chemical potential and the chemical potential
314  * are both equal to the molar Gibbs function.
315  *
316  * These are the standard state chemical potentials \f$ \mu^0_k(T,P)
317  * \f$. The values are evaluated at the current
318  * temperature and pressure of the solution
319  *
320  * @param mu0 Output vector of chemical potentials.
321  * Length: m_kk.
322  */
323  virtual void getStandardChemPotentials(doublereal* mu0) const;
324 
325  //! Returns the units of the standard and generalized concentrations.
326  /*!
327  * Note they have the same units, as their
328  * ratio is defined to be equal to the activity of the kth
329  * species in the solution, which is unitless.
330  *
331  * This routine is used in print out applications where the
332  * units are needed. Usually, MKS units are assumed throughout
333  * the program and in the XML input files.
334  *
335  * The base %ThermoPhase class assigns the default quantities
336  * of (kmol/m3) for all species.
337  * Inherited classes are responsible for overriding the default
338  * values if necessary.
339  *
340  * @param uA Output vector containing the units:
341  *
342  * uA[0] = kmol units - default = 1
343  * uA[1] = m units - default = -nDim(), the number of spatial
344  * dimensions in the Phase class.
345  * uA[2] = kg units - default = 0;
346  * uA[3] = Pa(pressure) units - default = 0;
347  * uA[4] = Temperature units - default = 0;
348  * uA[5] = time units - default = 0
349  *
350  * @param k species index. Defaults to 0.
351  * @param sizeUA output int containing the size of the vector.
352  * Currently, this is equal to 6.
353  * @deprecated
354  */
355  virtual void getUnitsStandardConc(doublereal* uA, int k = 0,
356  int sizeUA = 6) const;
357 
358  //@}
359  /// @name Partial Molar Properties of the Solution
360  /// These properties are handled by the parent class, SingleSpeciesTP
361  //@{
362 
363  //! Get the species partial molar volumes. Units: m^3/kmol.
364  /*!
365  * This is the phase molar volume. \f$ V(T,P) = V_o(T,P) \f$.
366  *
367  * set to zero.
368  *
369  * @param vbar On return, contains the molar volume of the single species
370  * and the phase. Units are m^3 / kmol. Length = 1
371  */
372  void getPartialMolarVolumes(doublereal* vbar) const;
373 
374  //@}
375  /// @name Properties of the Standard State of the Species in the Solution
376  //@{
377 
378  //! Get the nondimensional Enthalpy functions for the species
379  //! at their standard states at the current <I>T</I> and <I>P</I> of the solution.
380  /*!
381  * @param hrt Output vector of nondimensional standard state enthalpies.
382  * Length: m_kk.
383  */
384  virtual void getEnthalpy_RT(doublereal* hrt) const;
385 
386  //! Get the array of nondimensional Entropy functions for the
387  //! standard state species at the current <I>T</I> and <I>P</I> of the solution.
388  /*!
389  * @param sr Output vector of nondimensional standard state entropies.
390  * Length: m_kk.
391  */
392  virtual void getEntropy_R(doublereal* sr) const;
393 
394  //! Get the nondimensional Gibbs functions for the species
395  //! in their standard states at the current <I>T</I> and <I>P</I> of the solution.
396  /*!
397  * @param grt Output vector of nondimensional standard state gibbs free energies
398  * Length: m_kk.
399  */
400  virtual void getGibbs_RT(doublereal* grt) const;
401 
402  //! Get the nondimensional Heat Capacities at constant
403  //! pressure for the species standard states
404  //! at the current <I>T</I> and <I>P</I> of the solution
405  /*!
406  * @param cpr Output vector of nondimensional standard state heat capacities
407  * Length: m_kk.
408  */
409  virtual void getCp_R(doublereal* cpr) const;
410 
411  //! Returns the vector of nondimensional Internal Energies of the standard
412  //! state species at the current <I>T</I> and <I>P</I> of the solution
413  /*!
414  * For an incompressible,
415  * stoichiometric substance, the molar internal energy is
416  * independent of pressure. Since the thermodynamic properties
417  * are specified by giving the standard-state enthalpy, the
418  * term \f$ P_{ref} \hat v\f$ is subtracted from the specified reference molar
419  * enthalpy to compute the standard state molar internal energy.
420  *
421  * @param urt output vector of nondimensional standard state
422  * internal energies of the species. Length: m_kk.
423  */
424  virtual void getIntEnergy_RT(doublereal* urt) const;
425 
426  //! Get the molar volumes of each species in their standard
427  //! states at the current <I>T</I> and <I>P</I> of the solution.
428  /*
429  * units = m^3 / kmol
430  *
431  * We set this to zero
432  *
433  * @param vbar On output this contains the standard volume of the species
434  * and phase (m^3/kmol). Vector of length 1
435  */
436  virtual void getStandardVolumes(doublereal* vbar) const;
437 
438  //@}
439  /// @name Thermodynamic Values for the Species Reference States
440  //@{
441 
442  //! Returns the vector of nondimensional
443  //! internal Energies of the reference state at the current temperature
444  //! of the solution and the reference pressure for each species.
445  /*!
446  * @param urt Output vector of nondimensional reference state internal
447  * energies of the species. Length: m_kk
448  */
449  virtual void getIntEnergy_RT_ref(doublereal* urt) const;
450 
451  //@}
452  /// @name Thermodynamic Values for the Species Reference State
453  ///
454 
455  /*!
456  * Returns the vector of nondimensional
457  * enthalpies of the reference state at the current temperature
458  * of the solution and the reference pressure for the species.
459  *
460  * This function is resolved in this class. It is assumed that the m_spthermo species thermo
461  * pointer is populated and yields the reference state.
462  *
463  * @param hrt Output vector containing the nondimensional reference state enthalpies
464  * Length: m_kk.
465  */
466  virtual void getEnthalpy_RT_ref(doublereal* hrt) const;
467 
468  /*!
469  * Returns the vector of nondimensional
470  * enthalpies of the reference state at the current temperature
471  * of the solution and the reference pressure for the species.
472  *
473  * This function is resolved in this class. It is assumed that the m_spthermo species thermo
474  * pointer is populated and yields the reference state.
475  *
476  * @param grt Output vector containing the nondimensional reference state
477  * Gibbs Free energies. Length: m_kk.
478  */
479  virtual void getGibbs_RT_ref(doublereal* grt) const;
480 
481  /*!
482  * Returns the vector of the
483  * gibbs function of the reference state at the current temperature
484  * of the solution and the reference pressure for the species.
485  * units = J/kmol
486  *
487  * This function is resolved in this class. It is assumed that the m_spthermo species thermo
488  * pointer is populated and yields the reference state.
489  *
490  * @param g Output vector containing the reference state
491  * Gibbs Free energies. Length: m_kk. Units: J/kmol.
492  */
493  virtual void getGibbs_ref(doublereal* g) const;
494 
495  /*!
496  * Returns the vector of nondimensional
497  * entropies of the reference state at the current temperature
498  * of the solution and the reference pressure for each species.
499  *
500  * This function is resolved in this class. It is assumed that the m_spthermo species thermo
501  * pointer is populated and yields the reference state.
502  *
503  * @param er Output vector containing the nondimensional reference state
504  * entropies. Length: m_kk.
505  */
506  virtual void getEntropy_R_ref(doublereal* er) const;
507 
508  /*!
509  * Returns the vector of nondimensional
510  * constant pressure heat capacities of the reference state
511  * at the current temperature of the solution
512  * and reference pressure for each species.
513  *
514  * This function is resolved in this class. It is assumed that the m_spthermo species thermo
515  * pointer is populated and yields the reference state.
516  *
517  * @param cprt Output vector of nondimensional reference state
518  * heat capacities at constant pressure for the species.
519  * Length: m_kk
520  */
521  virtual void getCp_R_ref(doublereal* cprt) const;
522 
523  /*
524  * @internal Initialize. This method is provided to allow
525  * subclasses to perform any initialization required after all
526  * species have been added. For example, it might be used to
527  * resize internal work arrays that must have an entry for
528  * each species. The base class implementation does nothing,
529  * and subclasses that do not require initialization do not
530  * need to overload this method. When importing a CTML phase
531  * description, this method is called just prior to returning
532  * from function importPhase.
533  *
534  * @see importCTML.cpp
535  */
536  virtual void initThermo();
537 
538  virtual void initThermoXML(XML_Node& phaseNode, const std::string& id);
539 
540  //! Set the equation of state parameters
541  /*!
542  * @internal
543  * @param n number of parameters = 1
544  * @param c array of \a n coefficients
545  * c[0] = density of phase [ kg/m3 ]
546  * @deprecated Use setChemicalPotential()
547  */
548  virtual void setParameters(int n, doublereal* const c);
549 
550  //! Get the equation of state parameters in a vector
551  /*!
552  * @internal
553  *
554  * @param n number of parameters
555  * @param c array of \a n coefficients
556  *
557  * For this phase:
558  * - n = 1
559  * - c[0] = density of phase [ kg/m3 ]
560  * @deprecated Use getChemPotentials()
561  */
562  virtual void getParameters(int& n, doublereal* const c) const;
563 
564  //! Set equation of state parameter values from XML entries.
565  /*!
566  * This method is called by function importPhase() in
567  * file importCTML.cpp when processing a phase definition in
568  * an input file. It should be overloaded in subclasses to set
569  * any parameters that are specific to that particular phase
570  * model. Note, this method is called before the phase is
571  * initialized with elements and/or species.
572  *
573  * For this phase, the chemical potential is set
574  *
575  * @param eosdata An XML_Node object corresponding to
576  * the "thermo" entry for this phase in the input file.
577  *
578  * eosdata points to the thermo block, and looks like this:
579  *
580  * @code
581  * <phase id="stoichsolid" >
582  * <thermo model="FixedChemPot">
583  * <chemicalPotential units="J/kmol"> -2.7E7 </chemicalPotential>
584  * </thermo>
585  * </phase>
586  * @endcode
587  */
588  virtual void setParametersFromXML(const XML_Node& eosdata);
589 
590  //! Function to set the chemical potential directly
591  /*!
592  * @param chemPot Value of the chemical potential (units J/kmol)
593  */
594  void setChemicalPotential(doublereal chemPot);
595 
596 protected:
597  //! Value of the chemical potential of the bath species
598  /*!
599  * units are J/kmol
600  */
601  doublereal chemPot_;
602 };
603 
604 }
605 
606 #endif
virtual void getGibbs_RT_ref(doublereal *grt) const
virtual void getEntropy_R_ref(doublereal *er) const
doublereal chemPot_
Value of the chemical potential of the bath species.
virtual void getGibbs_ref(doublereal *g) const
virtual void getEntropy_R(doublereal *sr) const
Get the array of nondimensional Entropy functions for the standard state species at the current T and...
virtual void getGibbs_RT(doublereal *grt) const
Get the nondimensional Gibbs functions for the species in their standard states at the current T and ...
virtual void setParametersFromXML(const XML_Node &eosdata)
Set equation of state parameter values from XML entries.
Class XML_Node is a tree-based representation of the contents of an XML file.
Definition: xml.h:100
virtual void initThermoXML(XML_Node &phaseNode, const std::string &id)
Import and initialize a ThermoPhase object using an XML tree.
virtual doublereal logStandardConc(size_t k=0) const
Natural logarithm of the standard concentration of the kth species.
Virtual base class for the calculation of multiple-species thermodynamic reference-state property man...
virtual void setPressure(doublereal p)
Set the pressure at constant temperature. Units: Pa.
Class FixedChemPotSSTP represents a stoichiometric (fixed composition) incompressible substance...
virtual void getStandardChemPotentials(doublereal *mu0) const
Get the array of chemical potentials at unit activity for the species at their standard states at the...
ThermoPhase * duplMyselfAsThermoPhase() const
Duplication function.
Base class for a phase with thermodynamic properties.
Definition: ThermoPhase.h:101
virtual doublereal standardConcentration(size_t k=0) const
Return the standard concentration for the kth species.
FixedChemPotSSTP & operator=(const FixedChemPotSSTP &right)
Assignment operator.
virtual void getCp_R(doublereal *cpr) const
Get the nondimensional Heat Capacities at constant pressure for the species standard states at the cu...
virtual void getIntEnergy_RT(doublereal *urt) const
Returns the vector of nondimensional Internal Energies of the standard state species at the current T...
virtual int eosType() const
Equation of state flag.
FixedChemPotSSTP()
Default constructor for the FixedChemPotSSTP class.
virtual void getActivityConcentrations(doublereal *c) const
This method returns an array of generalized concentrations.
virtual void getParameters(int &n, doublereal *const c) const
Get the equation of state parameters in a vector.
virtual void getEnthalpy_RT_ref(doublereal *hrt) const
virtual void getEnthalpy_RT(doublereal *hrt) const
Get the nondimensional Enthalpy functions for the species at their standard states at the current T a...
Header for the SingleSpeciesTP class, which is a filter class for ThermoPhase, that eases the constru...
void setChemicalPotential(doublereal chemPot)
Function to set the chemical potential directly.
virtual void getCp_R_ref(doublereal *cprt) const
virtual void getIntEnergy_RT_ref(doublereal *urt) const
Returns the vector of nondimensional internal Energies of the reference state at the current temperat...
void getPartialMolarVolumes(doublereal *vbar) const
Get the species partial molar volumes. Units: m^3/kmol.
virtual doublereal thermalExpansionCoeff() const
Return the volumetric thermal expansion coefficient. Units: 1/K.
virtual doublereal pressure() const
Report the Pressure. Units: Pa.
virtual void setParameters(int n, doublereal *const c)
Set the equation of state parameters.
virtual doublereal isothermalCompressibility() const
Returns the isothermal compressibility. Units: 1/Pa.
virtual void getStandardVolumes(doublereal *vbar) const
Get the molar volumes of each species in their standard states at the current T and P of the solution...
The SingleSpeciesTP class is a filter class for ThermoPhase.
virtual void getUnitsStandardConc(doublereal *uA, int k=0, int sizeUA=6) const
Returns the units of the standard and generalized concentrations.