Previously, accessing an ExtensibleRate object from a Reaction object
would create a new wrapper object rather than providing access to the
"original" object that is used by the ReactionRateDelegator, and this
wrapper object would not behave the same as the original object except
for methods that passed through via the Delegator.
Now, we return the underlying object, ensuring consistency. This requires
more complex memory management because the ExtensibleRate/Delegator pair
form a reference cycle that can be attached to other objects either from
the C++ or the Python side.
`test_net_rop_ddCi` was updated to use and account for reaction orders
appropriately. Many updates to docstrings and comments. Typo fixes.
usesCoverageDependence was also implemented in a more generic manner
so it can be extended to other reaction types.
The indexing has been fixed and works with multiple surfaces correctly avoiding
non-interacting phases. Tests were added to compare simple surface jacobians, gas
phase jacobians, and single reactions. Removed surface contribution to energy
equation terms as these contributions are not currently included in the system
of equations and caus spurious entries.
Updating documentation, notation, renaming, etc. It also fixes some
bugs that were founded. It finally adds a couple of methods to specify
if a surface has certain reaction types
This commit updates the way the Jacobian is translated to the reactor
jacobian and fixes the bug that causes difference by a factor of area
and volume. A test is added to compare two reactors with various bulk
phases and different orders of the phases.
The corrections cause the matrices to become much more dense which
greatly dimishes improvements due to sparsity. It also adds routines
to scale the derivatives by appropriate terms based on the phase.
MoleReactors have varying orders of magnitude in comparsion to mass fraction
based Reactors. Tolerances that are too tight based on the state vector
cause test failures. This commit inherits the test and modifies tolerances
appropriately.
`_ddN` was used for concentration based derivatives now. Missing
derivatives for surface chemistry were added which required some
refactoring of mole reactor interfaces and updates to those derivatives.
Some documentation was added and some of the requested PR changes were
handled.