The ValueCache class is intended to standardize the method for implementing
value caching in Cantera, and to reduce the need to introduce additional member
variables to store cached variables and the thermodynamic state at which the
cached values were computed.
The initial usage is to replace the use of the m_tlast variable in IdealGasPhase
as an example.
Rarefied gas dynamics is an import application area for Sandia, and
it represents a potentially important development direction for Cantera.
These classes provide inroads into that area.
HMWSoln: avoid recomputing lambdas if ionic strength hasn't changed.
MaskellSolidSolnPhase: Avoid recomputing activity coefficients if
r and T haven't changed.
Fix sign error in chemical potentials and update
activity coefficients accordingly.
Correct implementation of getActivityConcentrations()
Additional unit tests.
Based on Maskell, Shaw, and Tye, Electrochimica Acta 28(2) 225-230 1983.
Includes unit tests checking calculation of the chemical potential values
and parsing of the mixing enthalpy parameter from an XML file.
When instantiating a phase from a .cti file, do the conversion in memory,
without writing the XML representation to disk. This eliminates the unrequrested
XML files that Cantera normally generates, and also avoids errors when running
Cantera from a directory where the user does not have write permissons.
This violates basic paradigm of what the user inputs the user gets.
If this is necessary, this needs to be a cpp utility program that is run before the main simulation.
Change the variable named *species* to be named *component*. This
better matches the utility of this variable, since it can be used to
retrieve any of the state variables. Also, update the corresponding
documentation.
The name 'H' can mean either the species by that name or the entahlpy
of the reactor, in the case of ConstPressureReactor, and the previous
behavior always returned the index of the enthalpy.
This changes the behavior to preferentially return the species, and
adds alternative names for reactor state variables that are less
likely to generate namespace collisions: 'mass', 'volume',
'int_energy', 'enthalpy', 'temperature', 'distance', 'velocity'. The
single character names are still supported.
Resolves Issue 193.