In particular, this fixes paths for Linux distros that put Python modules in
'lib64/pythonX.Y/site-packages'.
Also fixes the reported installation path for the Python module on Windows.
Almost every class derived from SpeciesThermoInterpType used the same
implementation of the minTemp, maxTemp, refPressure, and speciesIndex,
so it makes more sense to just implement these in the base class.
This corrects the behavior in cases where the correct temperature is below the
nominal minimum temperature for the phase.
Add test cases for this and analogous cases for the maximum temperature and
setState_HPorUV.
Fixes Issue 151.
The failures were caused when attempting to restore the tolerance vectors, which
have a value for each species. Since these tolerances are usually the same for
all species, the last value in the array can be used to extend the array to the
required length.
Also add some tests for this feature.
Like IdealGasReactor, this formulation uses the temperature as a state variable
to improve performance for the common use case of reactors containing ideal gas
mixtures.
This formulation of the reactor governing equations, with temperature as a state
variable, works better for ideal gas mixtures. This way, most of the Jacobian
components are derivatives at constant temperature, eliminating the need to
recompute the temperature-dependent part of the rate expressions when computing
these entries.
Expanding the time derivative of the total internal energy only works for ideal
phases, so for the more general case it is necessary to keep the internal energy
as the state variable and use an iterative method for setting the state.
Avoid an O(N) lookup for the thermo info for each species. Using an
unordered_map would be even better, but there's no portable way to do that
without Boost.
Instead of searching the XML tree for nodes where the "id" attribute matches,
require that the domains occur in order from left to right (corresponding to how
they are saved).
Fixes Issue 164.
The array 'c' is only long enough to hold the thermo parameters filled in
by the StatMech class, so it's necessary to make sure the type is correct
first and abort if it's not, rather than calling reportParams first and
corrupting the stack.
Previously, only the critical properties of PureFluidPhase objects could be
accessed, but there are other ThermoPhase classes (specifically,
RedlichKwongMFTP) which overload the critTemperature, critPressure, and
critDensity functions.