Cantera  2.3.0
MargulesVPSSTP.h
Go to the documentation of this file.
1 /**
2  * @file MargulesVPSSTP.h (see \ref thermoprops and class \link
3  * Cantera::MargulesVPSSTP MargulesVPSSTP\endlink).
4  */
5 
6 // This file is part of Cantera. See License.txt in the top-level directory or
7 // at http://www.cantera.org/license.txt for license and copyright information.
8 
9 #ifndef CT_MARGULESVPSSTP_H
10 #define CT_MARGULESVPSSTP_H
11 
12 #include "GibbsExcessVPSSTP.h"
13 
14 namespace Cantera
15 {
16 
17 //! MargulesVPSSTP is a derived class of GibbsExcessVPSSTP that employs the
18 //! Margules approximation for the excess Gibbs free energy
19 /*!
20  * MargulesVPSSTP derives from class GibbsExcessVPSSTP which is derived from
21  * VPStandardStateTP, and overloads the virtual methods defined there with ones
22  * that use expressions appropriate for the Margules Excess Gibbs free energy
23  * approximation.
24  *
25  * The independent unknowns are pressure, temperature, and mass fraction.
26  *
27  * ## Specification of Species Standard State Properties
28  *
29  * All species are defined to have standard states that depend upon both the
30  * temperature and the pressure. The Margules approximation assumes symmetric
31  * standard states, where all of the standard state assume that the species are
32  * in pure component states at the temperature and pressure of the solution. I
33  * don't think it prevents, however, some species from being dilute in the
34  * solution.
35  *
36  * ## Specification of Solution Thermodynamic Properties
37  *
38  * The molar excess Gibbs free energy is given by the following formula which is
39  * a sum over interactions *i*. Each of the interactions are binary interactions
40  * involving two of the species in the phase, denoted, *Ai* and *Bi*. This is
41  * the generalization of the Margules formulation for a phase that has more than
42  * 2 species.
43  *
44  * \f[
45  * G^E = \sum_i \left( H_{Ei} - T S_{Ei} \right)
46  * \f]
47  * \f[
48  * H^E_i = n X_{Ai} X_{Bi} \left( h_{o,i} + h_{1,i} X_{Bi} \right)
49  * \f]
50  * \f[
51  * S^E_i = n X_{Ai} X_{Bi} \left( s_{o,i} + s_{1,i} X_{Bi} \right)
52  * \f]
53  *
54  * where n is the total moles in the solution.
55  *
56  * The activity of a species defined in the phase is given by an excess Gibbs
57  * free energy formulation.
58  *
59  * \f[
60  * a_k = \gamma_k X_k
61  * \f]
62  *
63  * where
64  *
65  * \f[
66  * R T \ln( \gamma_k )= \frac{d(n G^E)}{d(n_k)}\Bigg|_{n_i}
67  * \f]
68  *
69  * Taking the derivatives results in the following expression
70  *
71  * \f[
72  * R T \ln( \gamma_k )= \sum_i \left( \left( \delta_{Ai,k} X_{Bi} + \delta_{Bi,k} X_{Ai} - X_{Ai} X_{Bi} \right)
73  * \left( g^E_{o,i} + g^E_{1,i} X_{Bi} \right) +
74  * \left( \delta_{Bi,k} - X_{Bi} \right) X_{Ai} X_{Bi} g^E_{1,i} \right)
75  * \f]
76  * where
77  * \f$ g^E_{o,i} = h_{o,i} - T s_{o,i} \f$ and
78  * \f$ g^E_{1,i} = h_{1,i} - T s_{1,i} \f$ and where
79  * \f$ X_k \f$ is the mole fraction of species *k*.
80  *
81  * This object inherits from the class VPStandardStateTP. Therefore, the
82  * specification and calculation of all standard state and reference state
83  * values are handled at that level. Various functional forms for the standard
84  * state are permissible. The chemical potential for species *k* is equal to
85  *
86  * \f[
87  * \mu_k(T,P) = \mu^o_k(T, P) + R T \ln(\gamma_k X_k)
88  * \f]
89  *
90  * The partial molar entropy for species *k* is given by
91  *
92  * \f[
93  * \tilde{s}_k(T,P) = s^o_k(T,P) - R \ln( \gamma_k X_k )
94  * - R T \frac{d \ln(\gamma_k) }{dT}
95  * \f]
96  *
97  * The partial molar enthalpy for species *k* is given by
98  *
99  * \f[
100  * \tilde{h}_k(T,P) = h^o_k(T,P) - R T^2 \frac{d \ln(\gamma_k)}{dT}
101  * \f]
102  *
103  * The partial molar volume for species *k* is
104  *
105  * \f[
106  * \tilde V_k(T,P) = V^o_k(T,P) + R T \frac{d \ln(\gamma_k) }{dP}
107  * \f]
108  *
109  * The partial molar Heat Capacity for species *k* is
110  *
111  * \f[
112  * \tilde{C}_{p,k}(T,P) = C^o_{p,k}(T,P) - 2 R T \frac{d \ln( \gamma_k )}{dT}
113  * - R T^2 \frac{d^2 \ln(\gamma_k) }{{dT}^2}
114  * \f]
115  *
116  * ## %Application within Kinetics Managers
117  *
118  * \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k / C^s_k, \f$ where
119  * \f$ C^s_k \f$ is a standard concentration defined below and \f$ a_k \f$ are
120  * activities used in the thermodynamic functions. These activity (or
121  * generalized) concentrations are used by kinetics manager classes to compute
122  * the forward and reverse rates of elementary reactions. The activity
123  * concentration,\f$ C^a_k \f$,is given by the following expression.
124  *
125  * \f[
126  * C^a_k = C^s_k X_k = \frac{P}{R T} X_k
127  * \f]
128  *
129  * The standard concentration for species *k* is independent of *k* and equal to
130  *
131  * \f[
132  * C^s_k = C^s = \frac{P}{R T}
133  * \f]
134  *
135  * For example, a bulk-phase binary gas reaction between species j and k,
136  * producing a new gas species l would have the following equation for its rate
137  * of progress variable, \f$ R^1 \f$, which has units of kmol m-3 s-1.
138  *
139  * \f[
140  * R^1 = k^1 C_j^a C_k^a = k^1 (C^s a_j) (C^s a_k)
141  * \f]
142  * where
143  * \f[
144  * C_j^a = C^s a_j \mbox{\quad and \quad} C_k^a = C^s a_k
145  * \f]
146  *
147  * \f$ C_j^a \f$ is the activity concentration of species j, and \f$ C_k^a \f$
148  * is the activity concentration of species k. \f$ C^s \f$ is the standard
149  * concentration. \f$ a_j \f$ is the activity of species j which is equal to the
150  * mole fraction of j.
151  *
152  * The reverse rate constant can then be obtained from the law of microscopic
153  * reversibility and the equilibrium expression for the system.
154  *
155  * \f[
156  * \frac{a_j a_k}{ a_l} = K_a^{o,1} = \exp(\frac{\mu^o_l - \mu^o_j - \mu^o_k}{R T} )
157  * \f]
158  *
159  * \f$ K_a^{o,1} \f$ is the dimensionless form of the equilibrium constant,
160  * associated with the pressure dependent standard states \f$ \mu^o_l(T,P) \f$
161  * and their associated activities, \f$ a_l \f$, repeated here:
162  *
163  * \f[
164  * \mu_l(T,P) = \mu^o_l(T, P) + R T \log(a_l)
165  * \f]
166  *
167  * We can switch over to expressing the equilibrium constant in terms of the
168  * reference state chemical potentials
169  *
170  * \f[
171  * K_a^{o,1} = \exp(\frac{\mu^{ref}_l - \mu^{ref}_j - \mu^{ref}_k}{R T} ) * \frac{P_{ref}}{P}
172  * \f]
173  *
174  * The concentration equilibrium constant, \f$ K_c \f$, may be obtained by
175  * changing over to activity concentrations. When this is done:
176  *
177  * \f[
178  * \frac{C^a_j C^a_k}{ C^a_l} = C^o K_a^{o,1} = K_c^1 =
179  * \exp(\frac{\mu^{ref}_l - \mu^{ref}_j - \mu^{ref}_k}{R T} ) * \frac{P_{ref}}{RT}
180  * \f]
181  *
182  * %Kinetics managers will calculate the concentration equilibrium constant, \f$
183  * K_c \f$, using the second and third part of the above expression as a
184  * definition for the concentration equilibrium constant.
185  *
186  * For completeness, the pressure equilibrium constant may be obtained as well
187  *
188  * \f[
189  * \frac{P_j P_k}{ P_l P_{ref}} = K_p^1 = \exp(\frac{\mu^{ref}_l - \mu^{ref}_j - \mu^{ref}_k}{R T} )
190  * \f]
191  *
192  * \f$ K_p \f$ is the simplest form of the equilibrium constant for ideal gases.
193  * However, it isn't necessarily the simplest form of the equilibrium constant
194  * for other types of phases; \f$ K_c \f$ is used instead because it is
195  * completely general.
196  *
197  * The reverse rate of progress may be written down as
198  * \f[
199  * R^{-1} = k^{-1} C_l^a = k^{-1} (C^o a_l)
200  * \f]
201  *
202  * where we can use the concept of microscopic reversibility to write the
203  * reverse rate constant in terms of the forward reate constant and the
204  * concentration equilibrium constant, \f$ K_c \f$.
205  *
206  * \f[
207  * k^{-1} = k^1 K^1_c
208  * \f]
209  *
210  * \f$k^{-1} \f$ has units of s-1.
211  *
212  * @ingroup thermoprops
213  */
215 {
216 public:
217  MargulesVPSSTP();
218 
219  //! Construct and initialize a MargulesVPSSTP ThermoPhase object directly
220  //! from an XML input file
221  /*!
222  * Working constructors
223  *
224  * The two constructors below are the normal way the phase initializes
225  * itself. They are shells that call the routine initThermo(), with a
226  * reference to the XML database to get the info for the phase.
227  *
228  * @param inputFile Name of the input file containing the phase XML data
229  * to set up the object
230  * @param id ID of the phase in the input file. Defaults to the
231  * empty string.
232  */
233  MargulesVPSSTP(const std::string& inputFile, const std::string& id = "");
234 
235  //! Construct and initialize a MargulesVPSSTP ThermoPhase object directly
236  //! from an XML database
237  /*!
238  * @param phaseRef XML phase node containing the description of the phase
239  * @param id id attribute containing the name of the phase.
240  * (default is the empty string)
241  */
242  MargulesVPSSTP(XML_Node& phaseRef, const std::string& id = "");
243 
244  MargulesVPSSTP(const MargulesVPSSTP& b);
245  MargulesVPSSTP& operator=(const MargulesVPSSTP& b);
246  virtual ThermoPhase* duplMyselfAsThermoPhase() const;
247 
248  virtual std::string type() const {
249  return "Margules";
250  }
251 
252  //! @name Molar Thermodynamic Properties
253  //! @{
254 
255  virtual doublereal enthalpy_mole() const;
256  virtual doublereal entropy_mole() const;
257  virtual doublereal cp_mole() const;
258  virtual doublereal cv_mole() const;
259 
260  /**
261  * @}
262  * @name Activities, Standard States, and Activity Concentrations
263  *
264  * The activity \f$a_k\f$ of a species in solution is related to the
265  * chemical potential by \f[ \mu_k = \mu_k^0(T) + \hat R T \log a_k. \f] The
266  * quantity \f$\mu_k^0(T,P)\f$ is the chemical potential at unit activity,
267  * which depends only on temperature and pressure.
268  * @{
269  */
270 
271  virtual void getLnActivityCoefficients(doublereal* lnac) const;
272 
273  //@}
274  /// @name Partial Molar Properties of the Solution
275  //@{
276 
277  virtual void getChemPotentials(doublereal* mu) const;
278 
279  //! Returns an array of partial molar enthalpies for the species in the
280  //! mixture.
281  /*!
282  * Units (J/kmol)
283  *
284  * For this phase, the partial molar enthalpies are equal to the standard
285  * state enthalpies modified by the derivative of the molality-based
286  * activity coefficient wrt temperature
287  *
288  * \f[
289  * \bar h_k(T,P) = h^o_k(T,P) - R T^2 \frac{d \ln(\gamma_k)}{dT}
290  * \f]
291  *
292  * @param hbar Vector of returned partial molar enthalpies
293  * (length m_kk, units = J/kmol)
294  */
295  virtual void getPartialMolarEnthalpies(doublereal* hbar) const;
296 
297  //! Returns an array of partial molar entropies for the species in the
298  //! mixture.
299  /*!
300  * Units (J/kmol)
301  *
302  * For this phase, the partial molar enthalpies are equal to the standard
303  * state enthalpies modified by the derivative of the activity coefficient
304  * wrt temperature
305  *
306  * \f[
307  * \bar s_k(T,P) = s^o_k(T,P) - R T^2 \frac{d \ln(\gamma_k)}{dT}
308  * - R \ln( \gamma_k X_k)
309  * - R T \frac{d \ln(\gamma_k) }{dT}
310  * \f]
311  *
312  * @param sbar Vector of returned partial molar entropies
313  * (length m_kk, units = J/kmol/K)
314  */
315  virtual void getPartialMolarEntropies(doublereal* sbar) const;
316 
317  //! Returns an array of partial molar entropies for the species in the
318  //! mixture.
319  /*!
320  * Units (J/kmol)
321  *
322  * For this phase, the partial molar enthalpies are equal to the standard
323  * state enthalpies modified by the derivative of the activity coefficient
324  * wrt temperature
325  *
326  * \f[
327  * ???????????????
328  * \bar s_k(T,P) = s^o_k(T,P) - R T^2 \frac{d \ln(\gamma_k)}{dT}
329  * - R \ln( \gamma_k X_k)
330  * - R T \frac{d \ln(\gamma_k) }{dT}
331  * ???????????????
332  * \f]
333  *
334  * @param cpbar Vector of returned partial molar heat capacities
335  * (length m_kk, units = J/kmol/K)
336  */
337  virtual void getPartialMolarCp(doublereal* cpbar) const;
338 
339  virtual void getPartialMolarVolumes(doublereal* vbar) const;
340 
341  //! Get the array of temperature second derivatives of the log activity
342  //! coefficients
343  /*!
344  * units = 1/Kelvin
345  *
346  * @param d2lnActCoeffdT2 Output vector of temperature 2nd derivatives of
347  * the log Activity Coefficients. length = m_kk
348  */
349  virtual void getd2lnActCoeffdT2(doublereal* d2lnActCoeffdT2) const;
350 
351  virtual void getdlnActCoeffdT(doublereal* dlnActCoeffdT) const;
352 
353  /// @}
354  /// @name Initialization The following methods are used in the process of
355  /// constructing the phase and setting its parameters from a
356  /// specification in an input file. They are not normally used in
357  /// application programs. To see how they are used, see importPhase()
358  /// @{
359 
360  virtual void initThermo();
361  virtual void initThermoXML(XML_Node& phaseNode, const std::string& id);
362 
363  //! @}
364  //! @name Derivatives of Thermodynamic Variables needed for Applications
365  //! @{
366 
367  virtual void getdlnActCoeffds(const doublereal dTds, const doublereal* const dXds, doublereal* dlnActCoeffds) const;
368  virtual void getdlnActCoeffdlnX_diag(doublereal* dlnActCoeffdlnX_diag) const;
369  virtual void getdlnActCoeffdlnN_diag(doublereal* dlnActCoeffdlnN_diag) const;
370  virtual void getdlnActCoeffdlnN(const size_t ld, doublereal* const dlnActCoeffdlnN);
371 
372  //@}
373 
374 private:
375  //! Process an XML node called "binaryNeutralSpeciesParameters"
376  /*!
377  * This node contains all of the parameters necessary to describe the
378  * Margules model for a particular binary interaction. This function reads
379  * the XML file and writes the coefficients it finds to an internal data
380  * structures.
381  *
382  * @param xmlBinarySpecies Reference to the XML_Node named "binaryNeutralSpeciesParameters"
383  * containing the binary interaction
384  */
385  void readXMLBinarySpecies(XML_Node& xmlBinarySpecies);
386 
387  //! Resize internal arrays within the object that depend upon the number of
388  //! binary Margules interaction terms
389  /*!
390  * @param num Number of binary Margules interaction terms
391  */
392  void resizeNumInteractions(const size_t num);
393 
394  //! Initialize lengths of local variables after all species have been
395  //! identified.
396  void initLengths();
397 
398  //! Update the activity coefficients
399  /*!
400  * This function will be called to update the internally stored natural
401  * logarithm of the activity coefficients
402  */
403  void s_update_lnActCoeff() const;
404 
405  //! Update the derivative of the log of the activity coefficients wrt T
406  /*!
407  * This function will be called to update the internally stored derivative
408  * of the natural logarithm of the activity coefficients wrt temperature.
409  */
410  void s_update_dlnActCoeff_dT() const;
411 
412  //! Update the derivative of the log of the activity coefficients wrt
413  //! log(mole fraction)
414  /*!
415  * This function will be called to update the internally stored derivative
416  * of the natural logarithm of the activity coefficients wrt logarithm of
417  * the mole fractions.
418  */
419  void s_update_dlnActCoeff_dlnX_diag() const;
420 
421  //! Update the derivative of the log of the activity coefficients wrt
422  //! log(moles) - diagonal only
423  /*!
424  * This function will be called to update the internally stored diagonal
425  * entries for the derivative of the natural logarithm of the activity
426  * coefficients wrt logarithm of the moles.
427  */
428  void s_update_dlnActCoeff_dlnN_diag() const;
429 
430  //! Update the derivative of the log of the activity coefficients wrt
431  //! log(moles_m)
432  /*!
433  * This function will be called to update the internally stored derivative
434  * of the natural logarithm of the activity coefficients wrt logarithm of
435  * the mole number of species
436  */
437  void s_update_dlnActCoeff_dlnN() const;
438 
439 protected:
440  //! number of binary interaction expressions
442 
443  //! Enthalpy term for the binary mole fraction interaction of the
444  //! excess Gibbs free energy expression
446 
447  //! Enthalpy term for the ternary mole fraction interaction of the
448  //! excess Gibbs free energy expression
450 
451  //! Enthalpy term for the quaternary mole fraction interaction of the
452  //! excess Gibbs free energy expression
454 
455  //! Entropy term for the binary mole fraction interaction of the
456  //! excess Gibbs free energy expression
458 
459  //! Entropy term for the ternary mole fraction interaction of the
460  //! excess Gibbs free energy expression
462 
463  //! Entropy term for the quaternary mole fraction interaction of the
464  //! excess Gibbs free energy expression
466 
467  //! Enthalpy term for the binary mole fraction interaction of the
468  //! excess Gibbs free energy expression
470 
471  //! Enthalpy term for the ternary mole fraction interaction of the
472  //! excess Gibbs free energy expression
474 
475  //! Enthalpy term for the quaternary mole fraction interaction of the
476  //! excess Gibbs free energy expression
478 
479  //! Entropy term for the binary mole fraction interaction of the
480  //! excess Gibbs free energy expression
482 
483  //! Entropy term for the ternary mole fraction interaction of the
484  //! excess Gibbs free energy expression
486 
487  //! Entropy term for the quaternary mole fraction interaction of the
488  //! excess Gibbs free energy expression
490 
491  //! vector of species indices representing species A in the interaction
492  /*!
493  * Each Margules excess Gibbs free energy term involves two species, A and
494  * B. This vector identifies species A.
495  */
496  std::vector<size_t> m_pSpecies_A_ij;
497 
498  //! vector of species indices representing species B in the interaction
499  /*!
500  * Each Margules excess Gibbs free energy term involves two species, A and
501  * B. This vector identifies species B.
502  */
503  std::vector<size_t> m_pSpecies_B_ij;
504 
505  //! form of the Margules interaction expression
506  /*!
507  * Currently there is only one form.
508  */
510 
511  //! form of the temperature dependence of the Margules interaction expression
512  /*!
513  * Currently there is only one form -> constant wrt temperature.
514  */
516 };
517 
518 }
519 
520 #endif
int formMargules_
form of the Margules interaction expression
virtual ThermoPhase * duplMyselfAsThermoPhase() const
Duplication routine for objects which inherit from ThermoPhase.
vector_fp m_VSE_c_ij
Entropy term for the ternary mole fraction interaction of the excess Gibbs free energy expression...
virtual void getLnActivityCoefficients(doublereal *lnac) const
Get the array of non-dimensional molar-based ln activity coefficients at the current solution tempera...
void readXMLBinarySpecies(XML_Node &xmlBinarySpecies)
Process an XML node called "binaryNeutralSpeciesParameters".
vector_fp m_VSE_d_ij
Entropy term for the quaternary mole fraction interaction of the excess Gibbs free energy expression...
vector_fp m_HE_b_ij
Enthalpy term for the binary mole fraction interaction of the excess Gibbs free energy expression...
vector_fp m_VHE_d_ij
Enthalpy term for the quaternary mole fraction interaction of the excess Gibbs free energy expression...
virtual doublereal cp_mole() const
Molar heat capacity at constant pressure. Units: J/kmol/K.
virtual void initThermoXML(XML_Node &phaseNode, const std::string &id)
Import and initialize a ThermoPhase object using an XML tree.
std::vector< size_t > m_pSpecies_A_ij
vector of species indices representing species A in the interaction
vector_fp m_HE_d_ij
Enthalpy term for the quaternary mole fraction interaction of the excess Gibbs free energy expression...
Class XML_Node is a tree-based representation of the contents of an XML file.
Definition: xml.h:97
virtual void getdlnActCoeffdlnX_diag(doublereal *dlnActCoeffdlnX_diag) const
Get the array of ln mole fraction derivatives of the log activity coefficients - diagonal component o...
size_t numBinaryInteractions_
number of binary interaction expressions
virtual void getdlnActCoeffdlnN_diag(doublereal *dlnActCoeffdlnN_diag) const
Get the array of log species mole number derivatives of the log activity coefficients.
virtual void getdlnActCoeffdlnN(const size_t ld, doublereal *const dlnActCoeffdlnN)
Get the array of derivatives of the log activity coefficients with respect to the log of the species ...
void s_update_dlnActCoeff_dlnX_diag() const
Update the derivative of the log of the activity coefficients wrt log(mole fraction) ...
void resizeNumInteractions(const size_t num)
Resize internal arrays within the object that depend upon the number of binary Margules interaction t...
void initLengths()
Initialize lengths of local variables after all species have been identified.
void s_update_dlnActCoeff_dT() const
Update the derivative of the log of the activity coefficients wrt T.
Base class for a phase with thermodynamic properties.
Definition: ThermoPhase.h:93
vector_fp m_SE_d_ij
Entropy term for the quaternary mole fraction interaction of the excess Gibbs free energy expression...
virtual void getd2lnActCoeffdT2(doublereal *d2lnActCoeffdT2) const
Get the array of temperature second derivatives of the log activity coefficients. ...
virtual void getPartialMolarVolumes(doublereal *vbar) const
Return an array of partial molar volumes for the species in the mixture.
virtual void getdlnActCoeffds(const doublereal dTds, const doublereal *const dXds, doublereal *dlnActCoeffds) const
Get the change in activity coefficients wrt changes in state (temp, mole fraction, etc) along a line in parameter space or along a line in physical space.
virtual void getChemPotentials(doublereal *mu) const
Get the species chemical potentials. Units: J/kmol.
virtual void getPartialMolarEntropies(doublereal *sbar) const
Returns an array of partial molar entropies for the species in the mixture.
vector_fp m_SE_b_ij
Entropy term for the binary mole fraction interaction of the excess Gibbs free energy expression...
void s_update_dlnActCoeff_dlnN_diag() const
Update the derivative of the log of the activity coefficients wrt log(moles) - diagonal only...
void s_update_lnActCoeff() const
Update the activity coefficients.
Header for intermediate ThermoPhase object for phases which employ Gibbs excess free energy based for...
void s_update_dlnActCoeff_dlnN() const
Update the derivative of the log of the activity coefficients wrt log(moles_m)
virtual doublereal cv_mole() const
Molar heat capacity at constant volume. Units: J/kmol/K.
vector_fp m_VHE_b_ij
Enthalpy term for the binary mole fraction interaction of the excess Gibbs free energy expression...
vector_fp m_VSE_b_ij
Entropy term for the binary mole fraction interaction of the excess Gibbs free energy expression...
std::vector< size_t > m_pSpecies_B_ij
vector of species indices representing species B in the interaction
vector_fp m_VHE_c_ij
Enthalpy term for the ternary mole fraction interaction of the excess Gibbs free energy expression...
std::vector< double > vector_fp
Turn on the use of stl vectors for the basic array type within cantera Vector of doubles.
Definition: ct_defs.h:157
virtual void getPartialMolarCp(doublereal *cpbar) const
Returns an array of partial molar entropies for the species in the mixture.
virtual std::string type() const
String indicating the thermodynamic model implemented.
virtual void getdlnActCoeffdT(doublereal *dlnActCoeffdT) const
Get the array of temperature derivatives of the log activity coefficients.
vector_fp m_SE_c_ij
Entropy term for the ternary mole fraction interaction of the excess Gibbs free energy expression...
MargulesVPSSTP is a derived class of GibbsExcessVPSSTP that employs the Margules approximation for th...
vector_fp m_HE_c_ij
Enthalpy term for the ternary mole fraction interaction of the excess Gibbs free energy expression...
virtual doublereal entropy_mole() const
Molar entropy. Units: J/kmol/K.
int formTempModel_
form of the temperature dependence of the Margules interaction expression
virtual void getPartialMolarEnthalpies(doublereal *hbar) const
Returns an array of partial molar enthalpies for the species in the mixture.
Namespace for the Cantera kernel.
Definition: application.cpp:29
virtual doublereal enthalpy_mole() const
Molar enthalpy. Units: J/kmol.