The reference pressure (p0) must be species-specific, since for certain PDSS
classes (e.g. PDSS_Water) p0 is a function of temperature, while for other
classes (PDSS_ConstVol) it is a constant.
VPSSMgr_Water_ConstVol further assumed that the reference pressure for all
species was 1 atm, ignoring the setting in the PDSS object. Fixing this changed
test results for HMW_test_1 and HMW_test_3.
Added a test that specifically compares VPSSMgr_Water_ConstVol with
VPSSMgr_General.
This also adds the first test which instantiates a RedlichKwongMFTP object, and
removes some unused member variables and private methods from the class.
The following classes (and their children) will be non-copyable and
non-assignable after Cantera 2.3:
- ThermoPhase
- Kinetics
- Transport
- Species
- SpeciesThermoInterpType
- MultiSpeciesThermo
- VPSSMgr
- PDSS
- ResidJacEval
- RootFind
The new class is named MultiSpeciesThermo, so that (eventually) the name
SpeciesThermo can be used for the single-species class SpeciesThermoInterpType.
Currently, trivial wrappers for classes named SpeciesThermo and
GeneralSpeciesThermo to maintain backwards compatibiity for Cantera 2.3.
These headers should only include general functionality, i.e. base classes and
factory methods. Users working directly with derived types can include the
relevant headers directly.
Deprecate some top-level headers which are not really useful.
Using this instead of modifyHf298 to reset the thermo data to its original
state avoids round-off errors that otherwise make modifications to the
species thermo data irreversible.
This ensures that deprecated methods aren't being called anywhere in the test
suite, without having to manually scan the test output for warning messages.
Throwing an exception when a state variable is being set to NaN transforms some
reactor network integration errors from unrecoverable errors into recoverable
errors.
Since the Species object now stores its SpeciesThermoInterpType contents as a
shared_ptr, it is undesirable to have the Species constructor take this as a raw
pointer argument.
These objects do not need to know the index of the species within the phase, so
the new constructors do not take that as an argument.
For the NASA polynomial constructors, the order of the coefficients arrays in
the new constructors has been modified to match the conventional ordering of the
coefficients as written in thermo database files.
The specialized SpeciesThermo derived types offer no performance benefit now
that GeneralSpeciesThermo manages calculation of the temperature terms
efficiently.
This makes it easier to set the composition of a phase based on the composition
of another phase with a different set of species. The threshold argument allows
species with negligible concentrations to be skipped.
Deprecate the unused getMoleFractionsByName function that didn't return a
value.
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.