The specialized SpeciesThermo derived types offer no performance benefit now
that GeneralSpeciesThermo manages calculation of the temperature terms
efficiently.
Compute the temperature polynomial only once for each parameterization type. By
doing this, we essentially get performance parity with the specialized
SpeciesThermo types (NasaThermo, ShomateThermo, SimpleThermo).
The formula used was not consistent with the standard formulation for
coverage-dependent reaction rates, which uses 10 as the base for the
temperature-independent term with the coverage in the exponential (see
Eq. 11.113 of Kee et al.).
The impact of this change should be minor, as most coverage-dependent reaction
rates appear not to use this term of the parameterization.
Phase::addElements(string name, ...) is the single entry point for adding
elements. It always perform the uniqueness check, and can do the extra
additional work required to add elements to a phase that already has species,
removing the need for "freezing" the phase's elements. Parsing the XML tree for
elements is now handled in "installElements". The variant element-adding methods
are deprecated.
Unlike the normal case for CallbackError, where the error message is visible
when it is re-raised in Python, errors occuring during reactor network
integration aren't necessarily terminal, so they can't simply be re-raised after
returning to Python. But we still want to display the information they contain,
so we need to extract that information from the Python exception objects in the
what() function that is called by cvodes_rhs.
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.
For those cases where the number of atoms in a molecule precludes certain
geometries, check to make sure that that the geometry flag is set
appropriately.
Failures in 'integrate' and 'advance' now include the error text provided by
CVodes directly, rather than just the numerical error code. This is especially
helpful in cases where the direct output from CVodes to stderr is lost
(e.g. when running from the Matlab GUI).