CHANGELOG

All notable user-facing changes to the dae-cpp project are documented in this page.

v2.1.1

New

Version 2.1.x allows the user to define the shape (structure) of the Jacobian matrix. I.e., instead of providing analytic Jacobian (or not providing it at all, which is slow if the system is large enough), the user can specify the positions of non-zero elements in the Jacobian. The solver will use automatic differentiation for the specified elements only. This works nearly as fast as analytic Jacobian without requiring the user to differentiate the vector function manually.

  • Fixed bug when the solver could not recover from divergence and could not redo the last time step correctly
  • Type dual_type deprecated but supported, added state_value instead as it is clearer
  • Added recover_from_linsolver_failure solver option (true by default). Now the solver will try to recover from the linear solver failure (e.g., on the matrix decomposition step) by rolling back and decreasing the time step.

v2.1.0

  • Added daecpp::JacobianMatrixShape and daecpp::VectorFunctionElements helper classes to define the Jacobian matrix shape and the vector function
  • Added daecpp::JacobianCompare class that helps the user to compare the user-defined Jacobian (either defined explicitly or using Jacobian shape) with the one computed automatically from the system RHS
  • Added Jacobian shape and Jacobian compare examples
  • Updated autodiff to v1.1.2
  • Updated Eigen (commit from 28th March 2024, see issue #52)
  • Updated googletest from v.1.14.x to v1.15.2
  • Added integration test that uses Jacobian derived from the given shape
  • Added unit tests for all new classes (daecpp::JacobianMatrixShape, daecpp::VectorFunctionElements, daecpp::JacobianCompare)
  • Minor solver updates

v2.0.1

  • Added Flame Propagation example (stiff equation)
  • Added daecpp::dual_type for automatic differentiation of the vector function (used in Flame Propagation example)
  • Added integration test based on the “Flame Propagation” example
  • Updated build instructions

v2.0.0

Redesigned version of the library. Consider this version as a public beta. Please report any bugs using GitHub issues.


v1.1

Retired

Version 1.x has been archived in the legacy branch of the repository.

  • Tweaked the DAE solver
  • Added more examples

v1.0

Retired

First working version of the DAE solver.