- cvodes code now support multiple precisions (sundials may be compiled with float, double or long double)
- Fix CSE in native code-generation
- Support for "jtimes" (jacobian times vector) for use with iterative solvers
- NativeSys now uses latest AnyODE
- Fix CSE in native code-generation
- Updated (upper) requirements of pycvodes, pygslodeiv2, pyodeint (v0.12.0 will again require latest versions)
- Relax a few native tests
- Further fixes to only require C++11
- Change C++ requirement to C++11
- Bumpy AnyODE to version 14
- Bump AnyODE to version 13
- Bump AnyODE to version 12
- Certain gcc versions giving trouble with
std::abs
, switching to C'sfabs
.
- chained_parameter_variation now also available as a method.
- Changed install_requirements in setup.py to be less minimalistic.
- Improved install instructions.
- Introduced ODESys.numpy to allow user to used a patched numpy module. (e.g. for quantitites)
- Make sure nonlinear_invariants are copied in SymbolicSys.from_other.
- Harden a intermittently failing test (dict ordering)
- to_arrays now accepts a kwarg 'reshape'
- New (convenience) methods for SymbolicSys:
- from_other_new_params
- from_other_new_params_by_name
- Fixes to to_arrays (in combination with as_autonomous & from_other)
- chained_parameter_variation got a new parameter: npoints
- latex_names in plotting are now assumed not to be wrapped in $$.
- Using new upstream pycvodes-0.9.0 (new ABI for native_sys['cvode'])
- Optimized away bottleneck for back transforming data.
- Fix for scalar bounds in SymbolicSys
- Softer bounds checking
- with_jtimes (pycvodes >= 0.8.3)
- Bump AnyODE
- Added SymbolicSys.as_autonomous()
- SymbolicSys arg "params" now need to be
True
to induce deduction.
- Copy pyx to cache dir prior to cythonize
- Address
indep
by name - Bumpy AnyODE
- Support for max_invariant_violations
- Expose special settings
- Fix dropping units
- Fix bug in PartiallySolvedSystem when passing linear_invariants to constructor.
- New function
core.integrate_chained
for use with TransformedSys. - Calls to
f(x, y[:], p[:])
now carries y0 in p[np:np+ny] (also applies to jac, etc.) - Renamed OdeSys to ODESys (OdeSys left as a deprecated alias)
- New arguments to ODESys: dep_by_name, par_by_name, param_names, latex_names, latex_param_names
- New kwargs: first_step_{cb,expr,factory} in ODESys, SymbolicSys & SymbolicSys.from_callback respectively.
- SymbolicSys.jacobian_singular() returns bool (uses cse and LUdecomposition raising ValueError)
- New module: .results
- Generate (multi-threaded) C++ code (against pyodeint, pycvodes, pygslodeiv2)
- OdeSys.internal_* -> OdeSys._internal
- depend on package
sym
for symbolic backend
- minor fixes
- from_callback now respects backend paramter (e.g.
math
orsympy
)
- Added SymbolicSys.analytic_stiffness
- Allow chaining pre-/post-processors in TransformedSys
- Make PartiallySolvedSys more general (allow use dependent variable)
- Better choice of first_step when not specified (still arbitrary though)
- Documentation fixes
- SymbolicSys got a new classmethod: from_other
- OdeSys.solve() changed signature: first arg "solver" moved to kwargs and renamed "integrator". Default of None assumed (inspects $PYODESYS_INTEGRATOR)
- OdeSys.integrate_* renamed
_integrate_*
(only for internal use). - Info dict from integrate() keys renamed (for consistency with pyneqsys):
- nrhs -> nfev
- njac -> njev
- internal_xout (new)
- internal_yout (new)
- SymbolicSys not available directly from pyodesys (but from pyodesys.symbolic)
- OdeSys.integrate_* documented as private (internal).
- symbolic.PartiallySolvedSystem added
- multiple (chained) pre and postprocessors supported
- stiffness may be inspected retroactively (ratio biggest/smallest eigenvalue of the jacobian matrix).
- OdeSys.integrate* methods now return a tuple: (xout, yout, info-dict) currently there are no guarantees about the exact contents of the info-dict.
- signature of callbacks of rhs and jac in OdeSys are now:
- (t, y_arr, param_arr) -> f_arr
- two new methods: adaptive and predefined (incl. tests)
- Support roots
- Refactor plot_result (interpolation now available)
- Make Matrix class optional
- Added force_predefined kwarg to integrate()
- Fix bug in symmetricsys().from_callback()
- New upstream versions of pyodeint, pycvodes and pygslodeiv2
- Tweak tests of pycvodes backend for new upstream
- New example
- New OdeSys class factory: symmetricsys for symmetric transformations
- Breaking change (for consistency with symneqsys): (lband, uband) -> band
- New convenience method: OdeSys.plot_result
- added util.check_transforms
- Variable transformations supported
- Only require sympy, numpy and scipy in requirements.txt
- support for scipy, pyodeint, pygslodeiv2, pycvodes