Throwing an exception when a state variable is being set to NaN transforms some
reactor network integration errors from unrecoverable errors into recoverable
errors.
If any of the reaction orders differ from the corresponding stoichiometric
coefficients, the reaction needs to be handled as the general case, instead of
just when the orders are non-integral.
This also modifies the test to explicitly test each of the equilibrium solvers,
so that failures in any one solver aren't hidden by the fact that a different
solver works for a particular initial condition.
The old version of this test didn't actually check any meaninful results. The
ChemEquil and VCS solvers are both able to solve this problem, but the
MultiPhase solver currently fails. Also, the BasisOptimize function may fail
depending on the order that the elements are specified in the input file.
XML_Node::build will make that node the root node (i.e. the 'ctml' node)
of the tree, instead of giving that node a child node containing the actual
root node.
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.
Implements the radiation model of Liu & Rogg (1991). Optically thin limit,
gray-gas approximation using Planck mean absorption coefficients. Considers
emissions from CO2 and H2O, with the temperature-dependent absorption
coefficients calculated using polynomial fits to results from RADCAL
(Grosshandler, 1993).
In Python 3, attempting to convert some mechanisms would give errors like the
following:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 348:
invalid start byte
Allow non-reactant orders for electrochemical reactions
Allow negative orders specifically requested, e.g. by setting the
'negative_orders' option in the CTI definition of the reaction.