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, addedstate_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
anddaecpp::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
tov1.1.2
- Updated Eigen (commit from 28th March 2024, see issue #52)
- Updated
googletest
fromv.1.14.x
tov1.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.