Adds ReactorNet::reinitialize, which skips all one-time initialization and
re-uses the same CVODES integrator. The Reactor::syncState() method is
introduced for applying new initial conditions for individual Reactor objects.
This approach increases efficiency when solving many similar problems with short
integration times, for example when being used as the chemistry term integrator
in an operator-split CFD code.
This creates a single implementation of the calculation of the contributions of
walls and surface chemistry to the governing equations for all reactor types.
This reflects how the function is usually used. The old signature is now
deprecated, as is the extra argument for transfering "ownership" to the
ReactorNet object.
The threshold for printing species is a new, optional parameter to the
'report' function. If any species are excluded, the total number of
minor species and their aggregate mass and mole fraction are printed.
Use "if (DEBUG_MODE_ENABLED)" instead of "#ifdef DEBUG_MODE". This makes
it easier to see the flow control logic, and the compiler will optimize
out the always-false conditionals when DEBUG_MODE_ENABLED is 0, so there
isn't any speed penalty.
Now the complete XML file is storred within the ThermPhase object starting with the root node.
This is needed for later processing of kinetics and transport mechanisms when the ThermoPhase
file is duplicated and the original file is deleted.
xml() is now a const function, and still returns the same pointer.
setXMLdata() is a new function will stores the xml data.
The descendants either calculate molar properties from nondimensonal properties
or vice versa. Add two derived classes to PDSS to implement these behaviors, and
have the leaf classes derive from whichever one of these makes sense.
Formerly getExchangeCurrentQuantities() is now
updateExchangeCurrentQuantities(). This method updates things like
m_StandardConc for computing reaction rates.
Formerly applyExchangeCurrentDensityFormulation() is now
convertExchangeCurrentDensityFormulation(). This method converts
rate expressions from A/m2 to kmol/m2/s.
Eliminates the need for redundant implementations in all the derived
classes. Also, make the return value a "const char*" to eliminate the dangerous
cast.
ThermoPhase already provides an implementation of these methods that raises
an exception to indicate that the method is unimplemented. Therefore,
derived classes which do not implement a method do not need to do this.