- Support PyPy
- Avoid over-counting None references
- update AnyODE (fix refcounting bug)
- Support Sundials-6.x
- Avoid using deprecated C-API in CPython 3.9+
- Allow use of jtimes_setup from CVodes (currently only from C++).
- Fix in bundled AnyODE
- Reorganized pycvodes.config
- Python compatibility fix
- Update setup.py
- Require sundials 5.1.0
- stab_lim_det
- Expose set_max_steps_between_jac
- Fix parallel adaptive wrt ew_ele array (triple pointer -> double pointer).
- Add compile time option "PYCVODES_CLIP_TO_CONSTRAINTS" (currently defaults to 0). To handle polynomial interpolatino from sundials giving negative values even when using positive constraints.
- Support for sundials>=4.0.0
- Fix signature in header
- Fix syntax error in header file
- Add support for constraints when using sundials>=3.2.0
- Bug fix in adaptive (gh-92 by @spcornelius)
- Add REAL_TYPE, INDEX_TYPE variables to _config.py
- Bug fix (const qualifier, cf. #84)
- New python signature: t is now a NumPy scalar
- New AnyODE version
- Macro USE_LAPACK renamed (with inverted logic) to PYCVODES_NO_LAPACK
- New Macro: PYCVODES_NO_KLU (for compiling with LAPACK but without KLU)
- Enhanced _config.py
- Support for sparse jacobian
- Support for constraints in sundials 3.2.0
- Fix to setup.py
- Determine compilation options by attempt in sdist
- More robust
pycvodes.config
.
- Bug fix in adaptive (gh-93 by @spcornelius)
- LAPACK now optional
- Builds on Windows
- Optionally return error weights and estimated local errors (kwarg:
ew_ele=True
)
- Bump to AnyODE 14
- Only require C++14
- Build related changes.
- More robust deducation of sundials version.
- New AnyODE version (13)
- Better compile-time inspection of sundials version
- Work aroud for sundials/lapack inconsistency wrt. dgbtrf
- Exposed quadrature integration (quads and get_nquads)
- Bumped AnyODE version (12)
- More timing data (time spent in rhs, jac & preconditioners)
- Bump AnyODE version
- variable tidx exposed in simple_adaptive
- adaptive integration now reallocs its own space (allows direct transfer of ownership to e.g. numpy arrays)
- Setting the environment variable ANYODE_VERBOSITY to 0 now silences errors & warnings.
- Add jtimes=False default option in simple_{adaptive,predefined}
- Added
record_steps
option.
- Explicit use of std::make_unique from the C++14 standard.
- Use new (templated) AnyODE.
- Fix back-stepping logic in adaptive.
- return nreached in parallel predefined
- Return atol & rtol in info dict
- Fix 'success' in info dict when return_on_error & return_on_root are both true.
- Add return_on_error to cvodes_anyode_parallel
- Use environment variable ANYODE_NUM_THREADS
- support for record_rhs_xvals/record_jac_xvals/record_order/record_fpe
- Address VisibleDeprecationWarning from numpy ndarray.reshape
- get_dx_max_cb (callback to calculate dx_max)
- dx0cb
- atol may now be vector even from Python
- New kwarg for autonomous systems: autorestart=<int>, helps when h/t ~= machine epsilon
- New kwarg for
adaptive
: return_on_error, useful to take a fixed number of steps. - New non-public module: _config (stores choice of lapack for now)
- adaptive in cvodes_cxx now return starting point when x0 >= xend (was CV_ILL_INPUT)
- Bug-fix in get_integrator, dx_min and dx_max were ignored.
- Refactored to use AnyODE base class (share code with pyodeint & pygslodeiv2)
- C++ wrapper API:
- banded_padded_jac_cmaj -> banded_jac_cmaj
- allow callbacks to indicate recoverable errors.
- Better sdist
- Better const correctness and other improvements in C++ wrapper
- More robust setup.py
- Added 'time_wall' output from integration.
- Added 'roots_output' to info dict of predefined
- kwarg 'iterative' changed to 'iter_type' and 'linear_solver'
- sparse option dropped
- more flexible C++ interface
- pycvodes.get_include() useful for other projects linking against sundials (cvodes)
- Better debugging (preserve back-trace from calling rhs() and jac())
- Changes to info dict: rename 'nrhs' -> 'nfev', 'njac' -> 'njev', added 'cpu_time', 'success'
- Added support for root finding.
- Allow user to set maximum number of steps (previously only CVode's default of 500 was used).
- Improved derivative handling (for interpolation).
- Added option to make output from adaptive more sparse.
- Added support for (first) derivative in output
- Min and max step now allowed to be set
- New function signature: integrate_predefined and integrate_adaptive now
also return an info dict containing
nrhs
andnjac
containing number of calls to each function made during last integration. - Expose
pycvodes.steppers
tuple. - check_callbable and check_indexing kwargs now defaults to False
- Added lband, uband kwargs (compatible with scipy's signature)
- Initial release