| Cantera 3.0.0

Loading...
Searching...
No Matches
LatticeSolidPhase.h
Go to the documentation of this file.
1/**
2 * @file LatticeSolidPhase.h Header for a simple thermodynamics model of a bulk
3 * solid phase derived from ThermoPhase, assuming an ideal solution model
4 * based on a lattice of solid atoms (see @ref thermoprops and class @link
5 * Cantera::LatticeSolidPhase LatticeSolidPhase@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_LATTICESOLID_H
12#define CT_LATTICESOLID_H
13
14#include "ThermoPhase.h"
15
16 namespace Cantera
17{
18
19//! A phase that is comprised of a fixed additive combination of other lattice
20//! phases
21/*!
22 * This is the main way %Cantera describes semiconductors and other solid
23 * phases. This ThermoPhase object calculates its properties as a sum over other
24 * LatticePhase objects. Each of the LatticePhase objects is a ThermoPhase
25 * object by itself.
26 *
27 * The results from this LatticeSolidPhase model reduces to the LatticePhase
28 * model when there is one lattice phase and the molar densities of the
29 * sublattice and the molar density within the LatticeSolidPhase have the same
30 * values.
31 *
32 * The mole fraction vector is redefined within the LatticeSolidPhase object.
33 * Each of the mole fractions sum to one on each of the sublattices. The
34 * routine getMoleFraction() and setMoleFraction() have been redefined to use
35 * this convention.
36 *
37 * ## Specification of Species Standard State Properties
38 *
39 * The standard state properties are calculated in the normal way for each of
40 * the sublattices. The normal way here means that a thermodynamic polynomial in
41 * temperature is developed. Also, a constant volume approximation for the
42 * pressure dependence is assumed. All of these properties are on a Joules per
43 * kmol of sublattice constituent basis.
44 *
45 * ## Specification of Solution Thermodynamic Properties
46 *
47 * The sum over the LatticePhase objects is carried out by weighting each
48 * LatticePhase object value with the molar density (kmol m-3) of its
49 * LatticePhase. Then the resulting quantity is divided by the molar density of
50 * the total compound. The LatticeSolidPhase object therefore only contains a
51 * listing of the number of LatticePhase object that comprises the solid, and it
52 * contains a value for the molar density of the entire mixture. This is the
53 * same thing as saying that
54 *
55 * @f[
56 * L_i = L^{solid} \theta_i
57 * @f]
58 *
59 * @f$ L_i @f$ is the molar volume of the ith lattice. @f$ L^{solid} @f$ is the
60 * molar volume of the entire solid. @f$ \theta_i @f$ is a fixed weighting
61 * factor for the ith lattice representing the lattice stoichiometric
62 * coefficient. For this object the @f$ \theta_i @f$ values are fixed.
63 *
64 * Let's take FeS2 as an example, which may be thought of as a combination of
65 * two lattices: Fe and S lattice. The Fe sublattice has a molar density of 1
66 * gmol cm-3. The S sublattice has a molar density of 2 gmol cm-3. We then
67 * define the LatticeSolidPhase object as having a nominal composition of FeS2,
68 * and having a molar density of 1 gmol cm-3. All quantities pertaining to the
69 * FeS2 compound will be have weights associated with the sublattices. The Fe
70 * sublattice will have a weight of 1.0 associated with it. The S sublattice
71 * will have a weight of 2.0 associated with it.
72 *
73 * ### Specification of Solution Density Properties
74 *
75 * Currently, molar density is not a constant within the object, even though the
76 * species molar volumes are a constant. The basic idea is that a swelling of
77 * one of the sublattices will result in a swelling of of all of the lattices.
78 * Therefore, the molar volumes of the individual lattices are not independent
79 * of one another.
80 *
81 * The molar volume of the Lattice solid is calculated from the following
82 * formula
83 *
84 * @f[
85 * V = \sum_i{ \theta_i V_i^{lattice}}
86 * @f]
87 *
88 * where @f$ V_i^{lattice} @f$ is the molar volume of the ith sublattice. This
89 * is calculated from the following standard formula.
90 *
91 * @f[
92 * V_i = \sum_k{ X_k V_k}
93 * @f]
94 *
95 * where k is a species in the ith sublattice.
96 *
97 * The mole fraction vector is redefined within the the LatticeSolidPhase object.
98 * Each of the mole fractions sum to one on each of the sublattices. The
99 * routine getMoleFraction() and setMoleFraction() have been redefined to use
100 * this convention.
101 *
102 * (This object is still under construction)
103 */
104 class LatticeSolidPhase : public ThermoPhase
105{
106 public:
107 //! Base empty constructor
108 LatticeSolidPhase() = default;
109
110 string type() const override {
111 return "compound-lattice";
112 }
113
114 //! String indicating the mechanical phase of the matter in this Phase.
115 /*!
116 * `LatticeSolid` phases only represent solids.
117 */
118 string phaseOfMatter() const override {
119 return "solid";
120 }
121
122 bool isCompressible() const override {
123 return false;
124 }
125
126 map<string, size_t> nativeState() const override {
127 return { {"T", 0}, {"P", 1}, {"X", 2} };
128 }
129
130 double minTemp(size_t k=npos) const override;
131 double maxTemp(size_t k=npos) const override;
132 double refPressure() const override;
133
134 //! This method returns the convention used in specification of the standard
135 //! state, of which there are currently two, temperature based, and variable
136 //! pressure based.
137 /*!
138 * All of the thermo is determined by slave ThermoPhase routines.
139 */
140 int standardStateConvention() const override {
141 return cSS_CONVENTION_SLAVE;
142 }
143
144 //! Return the Molar Enthalpy. Units: J/kmol.
145 /*!
146 * The molar enthalpy is determined by the following formula, where @f$
147 * \theta_n @f$ is the lattice stoichiometric coefficient of the nth lattice
148 *
149 * @f[
150 * \tilde h(T,P) = {\sum_n \theta_n \tilde h_n(T,P) }
151 * @f]
152 *
153 * @f$ \tilde h_n(T,P) @f$ is the enthalpy of the nth lattice.
154 *
155 * units J/kmol
156 */
157 double enthalpy_mole() const override;
158
159 //! Return the Molar Internal Energy. Units: J/kmol.
160 /*!
161 * The molar enthalpy is determined by the following formula, where @f$
162 * \theta_n @f$ is the lattice stoichiometric coefficient of the nth lattice
163 *
164 * @f[
165 * \tilde u(T,P) = {\sum_n \theta_n \tilde u_n(T,P) }
166 * @f]
167 *
168 * @f$ \tilde u_n(T,P) @f$ is the internal energy of the nth lattice.
169 *
170 * units J/kmol
171 */
172 double intEnergy_mole() const override;
173
174 //! Return the Molar Entropy. Units: J/kmol/K.
175 /*!
176 * The molar enthalpy is determined by the following formula, where @f$
177 * \theta_n @f$ is the lattice stoichiometric coefficient of the nth lattice
178 *
179 * @f[
180 * \tilde s(T,P) = \sum_n \theta_n \tilde s_n(T,P)
181 * @f]
182 *
183 * @f$ \tilde s_n(T,P) @f$ is the molar entropy of the nth lattice.
184 *
185 * units J/kmol/K
186 */
187 double entropy_mole() const override;
188
189 //! Return the Molar Gibbs energy. Units: J/kmol.
190 /*!
191 * The molar Gibbs free energy is determined by the following formula, where
192 * @f$ \theta_n @f$ is the lattice stoichiometric coefficient of the nth
193 * lattice
194 *
195 * @f[
196 * \tilde h(T,P) = {\sum_n \theta_n \tilde h_n(T,P) }
197 * @f]
198 *
199 * @f$ \tilde h_n(T,P) @f$ is the enthalpy of the nth lattice.
200 *
201 * units J/kmol
202 */
203 double gibbs_mole() const override;
204
205 //! Return the constant pressure heat capacity. Units: J/kmol/K
206 /*!
207 * The molar constant pressure heat capacity is determined by the following
208 * formula, where @f$ C_n @f$ is the lattice molar density of the nth
209 * lattice, and @f$ C_T @f$ is the molar density of the solid compound.
210 *
211 * @f[
212 * \tilde c_{p,n}(T,P) = \frac{\sum_n C_n \tilde c_{p,n}(T,P) }{C_T},
213 * @f]
214 *
215 * @f$ \tilde c_{p,n}(T,P) @f$ is the heat capacity of the nth lattice.
216 *
217 * units J/kmol/K
218 */
219 double cp_mole() const override;
220
221 //! Return the constant volume heat capacity. Units: J/kmol/K
222 /*!
223 * The molar constant volume heat capacity is determined by the following
224 * formula, where @f$ C_n @f$ is the lattice molar density of the nth
225 * lattice, and @f$ C_T @f$ is the molar density of the solid compound.
226 *
227 * @f[
228 * \tilde c_{v,n}(T,P) = \frac{\sum_n C_n \tilde c_{v,n}(T,P) }{C_T},
229 * @f]
230 *
231 * @f$ \tilde c_{v,n}(T,P) @f$ is the heat capacity of the nth lattice.
232 *
233 * units J/kmol/K
234 */
235 double cv_mole() const override {
236 return cp_mole();
237 }
238
239 //! Report the Pressure. Units: Pa.
240 /*!
241 * This method simply returns the stored pressure value.
242 */
243 double pressure() const override {
244 return m_press;
245 }
246
247 //! Set the pressure at constant temperature. Units: Pa.
248 /*!
249 * @param p Pressure (units - Pa)
250 */
251 void setPressure(double p) override;
252
253 //! Calculate the density of the solid mixture
254 /*!
255 * The formula for this is
256 *
257 * @f[
258 * \rho = \sum_n{ \rho_n \theta_n }
259 * @f]
260 *
261 * where @f$ \rho_n @f$ is the density of the nth sublattice
262 */
263 double calcDensity();
264
265 //! Set the mole fractions to the specified values, and then normalize them
266 //! so that they sum to 1.0 for each of the subphases
267 /*!
268 * On input, the mole fraction vector is assumed to sum to one for each of
269 * the sublattices. The sublattices are updated with this mole fraction
270 * vector. The mole fractions are also stored within this object, after they
271 * are normalized to one by dividing by the number of sublattices.
272 *
273 * @param x Input vector of mole fractions. There is no restriction on the
274 * sum of the mole fraction vector. Internally, this object will
275 * pass portions of this vector to the sublattices which assume
276 * that the portions individually sum to one. Length is m_kk.
277 */
278 void setMoleFractions(const double* const x) override;
279
280 //! Get the species mole fraction vector.
281 /*!
282 * On output the mole fraction vector will sum to one for each of the
283 * subphases which make up this phase.
284 *
285 * @param x On return, x contains the mole fractions. Must have a length
286 * greater than or equal to the number of species.
287 *
288 * @todo This method shadows but does not override Phase::getMoleFractions(). The
289 * LatticeSolidPhase class should be revised to avoid needing to override the
290 * methods for getting composition. See
291 * https://github.com/Cantera/cantera/issues/1310 for additional information.
292 */
293 void getMoleFractions(double* const x) const;
294
295 void setMassFractions(const double* const y) override {
296 throw NotImplementedError("LatticeSolidPhase::setMassFractions");
297 }
298
299 void setMassFractions_NoNorm(const double* const y) override {
300 throw NotImplementedError("LatticeSolidPhase::setMassFractions_NoNorm");
301 }
302
303 void getConcentrations(double* const c) const override {
304 throw NotImplementedError("LatticeSolidPhase::getConcentrations");
305 }
306
307 double concentration(size_t k) const override {
308 throw NotImplementedError("LatticeSolidPhase::concentration");
309 }
310
311 void setConcentrations(const double* const conc) override {
312 throw NotImplementedError("LatticeSolidPhase::setConcentrations");
313 }
314
315 Units standardConcentrationUnits() const override;
316
317 void getActivityConcentrations(double* c) const override;
318
319 void getActivityCoefficients(double* ac) const override;
320
321 //! Get the species chemical potentials. Units: J/kmol.
322 /*!
323 * This function returns a vector of chemical potentials of the species in
324 * solution at the current temperature, pressure and mole fraction of the
325 * solution.
326 *
327 * This returns the underlying lattice chemical potentials, as the units are
328 * kmol-1 of the sublattice species.
329 *
330 * @param mu Output vector of species chemical potentials. Length: m_kk.
331 * Units: J/kmol
332 */
333 void getChemPotentials(double* mu) const override;
334
335 //! Returns an array of partial molar enthalpies for the species in the
336 //! mixture.
337 /*!
338 * Units (J/kmol). For this phase, the partial molar enthalpies are equal to
339 * the pure species enthalpies
340 * @f[
341 * \bar h_k(T,P) = \hat h^{ref}_k(T) + (P - P_{ref}) \hat V^0_k
342 * @f]
343 * The reference-state pure-species enthalpies, @f$ \hat h^{ref}_k(T) @f$,
344 * at the reference pressure,@f$ P_{ref} @f$, are computed by the species
345 * thermodynamic property manager. They are polynomial functions of
346 * temperature.
347 * @see MultiSpeciesThermo
348 *
349 * @param hbar Output vector containing partial molar enthalpies.
350 * Length: m_kk.
351 */
352 void getPartialMolarEnthalpies(double* hbar) const override;
353
354 /**
355 * Returns an array of partial molar entropies of the species in the
356 * solution. Units: J/kmol/K. For this phase, the partial molar entropies
357 * are equal to the pure species entropies plus the ideal solution
358 * contribution.
359 * @f[
360 * \bar s_k(T,P) = \hat s^0_k(T) - R \ln(X_k)
361 * @f]
362 * The reference-state pure-species entropies,@f$ \hat s^{ref}_k(T) @f$, at
363 * the reference pressure, @f$ P_{ref} @f$, are computed by the species
364 * thermodynamic property manager. They are polynomial functions of
365 * temperature.
366 * @see MultiSpeciesThermo
367 *
368 * @param sbar Output vector containing partial molar entropies.
369 * Length: m_kk.
370 */
371 void getPartialMolarEntropies(double* sbar) const override;
372
373 /**
374 * Returns an array of partial molar Heat Capacities at constant pressure of
375 * the species in the solution. Units: J/kmol/K. For this phase, the partial
376 * molar heat capacities are equal to the standard state heat capacities.
377 *
378 * @param cpbar Output vector of partial heat capacities. Length: m_kk.
379 */
380 void getPartialMolarCp(double* cpbar) const override;
381
382 /**
383 * returns an array of partial molar volumes of the species in the solution.
384 * Units: m^3 kmol-1.
385 *
386 * For this solution, the partial molar volumes are equal to the constant
387 * species molar volumes.
388 *
389 * @param vbar Output vector of partial molar volumes. Length: m_kk.
390 */
391 void getPartialMolarVolumes(double* vbar) const override;
392
393 //! Get the array of standard state chemical potentials at unit activity for
394 //! the species at their standard states at the current *T* and *P* of the
395 //! solution.
396 /*!
397 * These are the standard state chemical potentials @f$ \mu^0_k(T,P) @f$.
398 * The values are evaluated at the current temperature and pressure of the
399 * solution.
400 *
401 * This returns the underlying lattice standard chemical potentials, as the
402 * units are kmol-1 of the sublattice species.
403 *
404 * @param mu0 Output vector of chemical potentials.
405 * Length: m_kk. Units: J/kmol
406 */
407 void getStandardChemPotentials(double* mu0) const override;
408
409 double standardConcentration(size_t k=0) const override;
410 double logStandardConc(size_t k=0) const override;
411
412 //! @name Thermodynamic Values for the Species Reference States
413 //! @{
414
415 void getGibbs_RT_ref(double* grt) const override;
416 void getGibbs_ref(double* g) const override;
417 //! @}
418
419 bool addSpecies(shared_ptr<Species> spec) override;
420
421 //! Add a lattice to this phase
422 void addLattice(shared_ptr<ThermoPhase> lattice);
423
424 //! Set the lattice stoichiometric coefficients, @f$ \theta_i @f$
425 void setLatticeStoichiometry(const Composition& comp);
426
427 void setParameters(const AnyMap& phaseNode,
428 const AnyMap& rootNode=AnyMap()) override;
429 void initThermo() override;
430 void getParameters(AnyMap& phaseNode) const override;
431 void getSpeciesParameters(const string& name, AnyMap& speciesNode) const override;
432
433 //! Set the Lattice mole fractions using a string
434 /*!
435 * @param n Integer value of the lattice whose mole fractions are being set
436 * @param x string containing Name:value pairs that will specify the mole
437 * fractions of species on a particular lattice
438 */
439 void setLatticeMoleFractionsByName(int n, const string& x);
440
441 void modifyOneHf298SS(const size_t k, const double Hf298New) override;
442 void resetHf298(const size_t k=npos) override;
443
444 protected:
445 //! Current value of the pressure
446 double m_press = -1.0;
447
448 //! Current value of the molar density
449 double m_molar_density = 0.0;
450
451 //! Vector of sublattice ThermoPhase objects
452 vector<shared_ptr<ThermoPhase>> m_lattice;
453
454 //! Vector of mole fractions
455 /*!
456 * Note these mole fractions sum to one when summed over all phases.
457 * However, this is not what's passed down to the lower m_lattice objects.
458 */
459 mutable vector<double> m_x;
460
461 //! Lattice stoichiometric coefficients
462 vector<double> theta_;
463
464 //! Temporary vector
465 mutable vector<double> tmpV_;
466
467 vector<size_t> lkstart_;
468
469 //! Root node of the AnyMap which contains this phase definition.
470 //! Used to look up the phase definitions for the constituent phases.
471 AnyMap m_rootNode;
472
473 private:
474 //! Update the reference thermodynamic functions
475 void _updateThermo() const;
476};
477}
478
479#endif
ThermoPhase.h
Header file for class ThermoPhase, the base class for phases with thermodynamic properties,...
Cantera::AnyMap
A map of string keys to values whose type can vary at runtime.
Definition AnyMap.h:427
Cantera::LatticeSolidPhase
A phase that is comprised of a fixed additive combination of other lattice phases.
Definition LatticeSolidPhase.h:105
Cantera::LatticeSolidPhase::m_lattice
vector< shared_ptr< ThermoPhase > > m_lattice
Vector of sublattice ThermoPhase objects.
Definition LatticeSolidPhase.h:452
Cantera::LatticeSolidPhase::setLatticeStoichiometry
void setLatticeStoichiometry(const Composition &comp)
Set the lattice stoichiometric coefficients, .
Definition LatticeSolidPhase.cpp:376
Cantera::LatticeSolidPhase::getStandardChemPotentials
void getStandardChemPotentials(double *mu0) const override
Get the array of standard state chemical potentials at unit activity for the species at their standar...
Definition LatticeSolidPhase.cpp:262
Cantera::LatticeSolidPhase::enthalpy_mole
double enthalpy_mole() const override
Return the Molar Enthalpy. Units: J/kmol.
Definition LatticeSolidPhase.cpp:63
Cantera::LatticeSolidPhase::logStandardConc
double logStandardConc(size_t k=0) const override
Natural logarithm of the standard concentration of the kth species.
Definition LatticeSolidPhase.cpp:140
Cantera::LatticeSolidPhase::m_rootNode
AnyMap m_rootNode
Root node of the AnyMap which contains this phase definition.
Definition LatticeSolidPhase.h:471
Cantera::LatticeSolidPhase::standardStateConvention
int standardStateConvention() const override
This method returns the convention used in specification of the standard state, of which there are cu...
Definition LatticeSolidPhase.h:140
Cantera::LatticeSolidPhase::getPartialMolarEnthalpies
void getPartialMolarEnthalpies(double *hbar) const override
Returns an array of partial molar enthalpies for the species in the mixture.
Definition LatticeSolidPhase.cpp:218
Cantera::LatticeSolidPhase::getChemPotentials
void getChemPotentials(double *mu) const override
Get the species chemical potentials. Units: J/kmol.
Definition LatticeSolidPhase.cpp:207
Cantera::LatticeSolidPhase::tmpV_
vector< double > tmpV_
Temporary vector.
Definition LatticeSolidPhase.h:465
Cantera::LatticeSolidPhase::pressure
double pressure() const override
Report the Pressure. Units: Pa.
Definition LatticeSolidPhase.h:243
Cantera::LatticeSolidPhase::isCompressible
bool isCompressible() const override
Return whether phase represents a compressible substance.
Definition LatticeSolidPhase.h:122
Cantera::LatticeSolidPhase::m_x
vector< double > m_x
Vector of mole fractions.
Definition LatticeSolidPhase.h:459
Cantera::LatticeSolidPhase::getSpeciesParameters
void getSpeciesParameters(const string &name, AnyMap &speciesNode) const override
Get phase-specific parameters of a Species object such that an identical one could be reconstructed a...
Definition LatticeSolidPhase.cpp:330
Cantera::LatticeSolidPhase::nativeState
map< string, size_t > nativeState() const override
Return a map of properties defining the native state of a substance.
Definition LatticeSolidPhase.h:126
Cantera::LatticeSolidPhase::setConcentrations
void setConcentrations(const double *const conc) override
Set the concentrations to the specified values within the phase.
Definition LatticeSolidPhase.h:311
Cantera::LatticeSolidPhase::getGibbs_ref
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...
Definition LatticeSolidPhase.cpp:280
Cantera::LatticeSolidPhase::setMassFractions
void setMassFractions(const double *const y) override
Set the mass fractions to the specified values and normalize them.
Definition LatticeSolidPhase.h:295
Cantera::LatticeSolidPhase::modifyOneHf298SS
void modifyOneHf298SS(const size_t k, const double Hf298New) override
Modify the value of the 298 K Heat of Formation of one species in the phase (J kmol-1)
Definition LatticeSolidPhase.cpp:427
Cantera::LatticeSolidPhase::theta_
vector< double > theta_
Lattice stoichiometric coefficients.
Definition LatticeSolidPhase.h:462
Cantera::LatticeSolidPhase::getParameters
void getParameters(AnyMap &phaseNode) const override
Store the parameters of a ThermoPhase object such that an identical one could be reconstructed using ...
Definition LatticeSolidPhase.cpp:310
Cantera::LatticeSolidPhase::type
string type() const override
String indicating the thermodynamic model implemented.
Definition LatticeSolidPhase.h:110
Cantera::LatticeSolidPhase::initThermo
void initThermo() override
Initialize the ThermoPhase object after all species have been set up.
Definition LatticeSolidPhase.cpp:295
Cantera::LatticeSolidPhase::setMoleFractions
void setMoleFractions(const double *const x) override
Set the mole fractions to the specified values, and then normalize them so that they sum to 1....
Definition LatticeSolidPhase.cpp:164
Cantera::LatticeSolidPhase::getActivityConcentrations
void getActivityConcentrations(double *c) const override
This method returns an array of generalized concentrations.
Definition LatticeSolidPhase.cpp:118
Cantera::LatticeSolidPhase::setPressure
void setPressure(double p) override
Set the pressure at constant temperature. Units: Pa.
Definition LatticeSolidPhase.cpp:145
Cantera::LatticeSolidPhase::getPartialMolarVolumes
void getPartialMolarVolumes(double *vbar) const override
returns an array of partial molar volumes of the species in the solution.
Definition LatticeSolidPhase.cpp:251
Cantera::LatticeSolidPhase::concentration
double concentration(size_t k) const override
Concentration of species k.
Definition LatticeSolidPhase.h:307
Cantera::LatticeSolidPhase::cv_mole
double cv_mole() const override
Return the constant volume heat capacity. Units: J/kmol/K.
Definition LatticeSolidPhase.h:235
Cantera::LatticeSolidPhase::getConcentrations
void getConcentrations(double *const c) const override
Get the species concentrations (kmol/m^3).
Definition LatticeSolidPhase.h:303
Cantera::LatticeSolidPhase::setLatticeMoleFractionsByName
void setLatticeMoleFractionsByName(int n, const string &x)
Set the Lattice mole fractions using a string.
Definition LatticeSolidPhase.cpp:412
Cantera::LatticeSolidPhase::m_press
double m_press
Current value of the pressure.
Definition LatticeSolidPhase.h:446
Cantera::LatticeSolidPhase::refPressure
double refPressure() const override
Returns the reference pressure in Pa.
Definition LatticeSolidPhase.cpp:58
Cantera::LatticeSolidPhase::minTemp
double minTemp(size_t k=npos) const override
Minimum temperature for which the thermodynamic data for the species or phase are valid.
Definition LatticeSolidPhase.cpp:26
Cantera::LatticeSolidPhase::intEnergy_mole
double intEnergy_mole() const override
Return the Molar Internal Energy. Units: J/kmol.
Definition LatticeSolidPhase.cpp:73
Cantera::LatticeSolidPhase::entropy_mole
double entropy_mole() const override
Return the Molar Entropy. Units: J/kmol/K.
Definition LatticeSolidPhase.cpp:83
Cantera::LatticeSolidPhase::getMoleFractions
void getMoleFractions(double *const x) const
Get the species mole fraction vector.
Definition LatticeSolidPhase.cpp:179
Cantera::LatticeSolidPhase::cp_mole
double cp_mole() const override
Return the constant pressure heat capacity. Units: J/kmol/K.
Definition LatticeSolidPhase.cpp:103
Cantera::LatticeSolidPhase::standardConcentrationUnits
Units standardConcentrationUnits() const override
Returns the units of the "standard concentration" for this phase.
Definition LatticeSolidPhase.cpp:113
Cantera::LatticeSolidPhase::getPartialMolarCp
void getPartialMolarCp(double *cpbar) const override
Returns an array of partial molar Heat Capacities at constant pressure of the species in the solution...
Definition LatticeSolidPhase.cpp:240
Cantera::LatticeSolidPhase::gibbs_mole
double gibbs_mole() const override
Return the Molar Gibbs energy. Units: J/kmol.
Definition LatticeSolidPhase.cpp:93
Cantera::LatticeSolidPhase::standardConcentration
double standardConcentration(size_t k=0) const override
Return the standard concentration for the kth species.
Definition LatticeSolidPhase.cpp:135
Cantera::LatticeSolidPhase::setMassFractions_NoNorm
void setMassFractions_NoNorm(const double *const y) override
Set the mass fractions to the specified values without normalizing.
Definition LatticeSolidPhase.h:299
Cantera::LatticeSolidPhase::addLattice
void addLattice(shared_ptr< ThermoPhase > lattice)
Add a lattice to this phase.
Definition LatticeSolidPhase.cpp:349
Cantera::LatticeSolidPhase::calcDensity
double calcDensity()
Calculate the density of the solid mixture.
Definition LatticeSolidPhase.cpp:154
Cantera::LatticeSolidPhase::addSpecies
bool addSpecies(shared_ptr< Species > spec) override
Add a Species to this Phase.
Definition LatticeSolidPhase.cpp:343
Cantera::LatticeSolidPhase::_updateThermo
void _updateThermo() const
Update the reference thermodynamic functions.
Definition LatticeSolidPhase.cpp:396
Cantera::LatticeSolidPhase::getGibbs_RT_ref
void getGibbs_RT_ref(double *grt) const override
Returns the vector of nondimensional Gibbs Free Energies of the reference state at the current temper...
Definition LatticeSolidPhase.cpp:272
Cantera::LatticeSolidPhase::getActivityCoefficients
void getActivityCoefficients(double *ac) const override
Get the array of non-dimensional molar-based activity coefficients at the current solution temperatur...
Definition LatticeSolidPhase.cpp:128
Cantera::LatticeSolidPhase::LatticeSolidPhase
LatticeSolidPhase()=default
Base empty constructor.
Cantera::LatticeSolidPhase::setParameters
void setParameters(const AnyMap &phaseNode, const AnyMap &rootNode=AnyMap()) override
Set equation of state parameters from an AnyMap phase description.
Definition LatticeSolidPhase.cpp:288
Cantera::LatticeSolidPhase::m_molar_density
double m_molar_density
Current value of the molar density.
Definition LatticeSolidPhase.h:449
Cantera::LatticeSolidPhase::resetHf298
void resetHf298(const size_t k=npos) override
Restore the original heat of formation of one or more species.
Definition LatticeSolidPhase.cpp:440
Cantera::LatticeSolidPhase::getPartialMolarEntropies
void getPartialMolarEntropies(double *sbar) const override
Returns an array of partial molar entropies of the species in the solution.
Definition LatticeSolidPhase.cpp:229
Cantera::LatticeSolidPhase::maxTemp
double maxTemp(size_t k=npos) const override
Maximum temperature for which the thermodynamic data for the species are valid.
Definition LatticeSolidPhase.cpp:42
Cantera::LatticeSolidPhase::phaseOfMatter
string phaseOfMatter() const override
String indicating the mechanical phase of the matter in this Phase.
Definition LatticeSolidPhase.h:118
Cantera::NotImplementedError
An error indicating that an unimplemented function has been called.
Definition ctexceptions.h:195
Cantera::Phase::name
string name() const
Return the name of the phase.
Definition Phase.cpp:20
Cantera::ThermoPhase
Base class for a phase with thermodynamic properties.
Definition ThermoPhase.h:390
Cantera::Units
A representation of the units associated with a dimensional quantity.
Definition Units.h:35
Cantera
Namespace for the Cantera kernel.
Definition AnyMap.cpp:564
Cantera::npos
const size_t npos
index returned by functions to indicate "no position"
Definition ct_defs.h:195
Cantera::cSS_CONVENTION_SLAVE
const int cSS_CONVENTION_SLAVE
Standard state thermodynamics is obtained from slave ThermoPhase objects.
Definition ThermoPhase.h:148
Cantera::Composition
map< string, double > Composition
Map from string names to doubles.
Definition ct_defs.h:184