Scale the default atol (1e-15) by the total mole number of the reactor
to maintain accuracy even for very large / very small reactors.
Co-authored-by: OpenAI Codex <codex@openai.com>
Specify RPATH for test binaries to avoid needing to set LD_LIBRARY_PATH
or DYLD_LIBRARY_PATH.
For GTest tests, add relative paths to data and test/data directories
to allow running these directly from the repository root directory.
Unit tests cover 'clib' from within C++ googletest code
- port test-clib to google tests
- rename pre-existing version to test-clib-demo
- add tests indirectly probing SharedCabinet
- add tests for Solution access routines
- add tests for ctonedim
- Adds a check for surfaces
- adds updateState and updatePreconditioner in proper locations
- Fixes documentation and makes other formatting changes
- Adds utilities tests and expected failures tests for the preconditioner
Adds PreconditionerBase and derives AdaptivePreconditioner from this
base class. PreconditionerBase is intended to be an abstract class so
other types of preconditioners can be extended. AdaptivePreconditioner
is a specific type of preconditioning based on a tolerance.
The preconditioned integrator works with all Sundials versions supported
by Cantera.
The ILUT algorithm is used to limit fill-in when factorizing the preconditioner.
Adds access to CVODES integrator statistics in C++ and Python
Adds reactor classes "IdealGasConstPressureMoleReactor" and "IdealGasMoleReactor"
that use a mole-based state vector to increase the sparsity of the preconditioner.
It specifically changes the application of the phase and kinetics
objects to the reactor by using "insert" instead of setKineticMgr and
setThermoMgr. It also changes the initial pressure to use a built in
constant in cantera.
This commit changes the former test to use Reactor classes in lieu of IdealGasConstPressureReactor classes because it is the base class. It also changes some of the comparisons between the two reactor objects.
I adapted the example ./interfaces/cython/cantera/test_reactor.py::test_equilibrium_HP to C++ and performed the reactor initialization with an arbitrary value to show that it no longer creates a segmentation fault and also still integrates successfully in a network post individual initialization. I added this to it's own folder called zeroD because I could not find C++ instances of Reactor tests elsewhere.