SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers

IDAS is a package for the solution of differential-algebraic equation (DAE) systems in the form F(t,y,y’,p)=0 with sensitivity analysis capabilities (both forward and adjoint modes).

IDAS is a superset of IDA and hence all options available to IDA (with the exception of the FIDA interface module) are also available for IDAS.

Depending on the number of model parameters and the number of functional outputs, one of two sensitivity methods is more appropriate. The forward sensitivity analysis (FSA) method is mostly suitable when the gradients of many outputs (for example the entire solution vector) with respect to relatively few parameters are needed. In this approach, the model is differentiated with respect to each parameter in turn to yield an additional system of the same size as the original one, the result of which is the solution sensitivity. The gradient of any output function depending on the solution can then be directly obtained from these sensitivities by applying the chain rule of differentiation.

The adjoint sensitivity analysis (ASA) method is more practical than the forward approach when the number of parameters is large and the gradients of only few output functionals are needed. In this approach, the solution sensitivities need not be computed explicitly. Instead, for each output functional of interest, an additional system, adjoint to the original one, is formed and solved. The solution of the adjoint system can then be used to evaluate the gradient of the output functional with respect to any set of model parameters.

The FSA module in IDAS offers the choice between a simultaneous corrector method and a staggered corrector method. The ASA module provides the infrastructure required for the backward integration in time of systems of differential-algebraic equations dependent on the solution of the original DAEs. It employs a checkpointing scheme for efficient interpolation of forward solutions during the backward integration.

See Software page for download.


idas release history

What’s new in v1.3.0?

  • New features and/or enhancements
    • Two new NVECTOR modules added: for Hypre ParVector and PETSc.
    • In vector API, added new required function, N_VGetVectorID.
    • Upgrades to sparse solver interfaces; now support CSR matrix type with KLU solver.
    • Example codes were changed from using NV_DATA macro to using N_VGetArrayPointer_* when using the native vectors shipped with SUNDIALS.
    • In interpolation routines for backward problems, added logic to bypass sensitivity interpolation if input sensitivity argument is NULL.
    • Changed each **FreeB() to type int; added return(0) to each.  
    • Added optional input function IDASetMaxBacksIC to limit number of linesearch backtrack operations in IDACalcIC.  User guides amended accordingly.
    • Added idasRoberts_FSA_klu.c, idasRoberts_FSA_sps.c, idasRoberts_ASAi_klu.c, and idasRoberts_ASAi_sps.c sensitivity analysis examples using sparse direct solvers.  Also added idasFoodWeb_bnd_omp.c and idasFoobWeb_kry_omp.c OpenMp examples.
    • Minor corrections and additions to User Guide, including removal of references to specific NVECTOR names in usage skeletons.
    • Updated to return integers from linear solver and preconditioner ‘free’ functions.
  • Bug fixes
    • Fixed memory leak in banded preconditioner interface.
    • Fixed some examples w.r.t. switch to new macro/function names SUNRexp etc.
    • Various minor fixes to installation-related files.
    • Corrected name N_VCloneEmptyVectorArray to N_VCloneVectorArrayEmpty in all documentation files.

What’s new in v1.2.0?

  • New features
    • Added interface to the sparse direct solver KLU.
    • Added interface to SuperLU_MT.
  • Bug fixes
    • Fixed minor bug in IDARootfind involving rootdir input.
    • Fixed line setting smu in IDALapackBand.
  • Changes to user interface
    • Added user Jacobian option functions IDADlsSetDenseJacFnBS and IDADlsSetBandJacFnBS.
  • Changes to documentation
    • Added paragraphs on IDAAdjReInit and IDAGetAdjY.
  • Changes related to the build system
    • Dropped support and documentation of the Autotools mode of installation.

What’s new in v1.1.0?

  • Bug fixes
    • fixed major logic errors in integration of backward problems.
    • linear solver memory set to zero after being created.
    • linear solver memory is freed on an error return.
    • memory leak fixed in two IDASp***Free functions.
    • added missing vector pointer setting in IDASensLineSrch.
    • in IDACompleteStep, fixed conditionals on loading divided difference arrays for a possible order increase.
  • Changes to user interface
    • Problem size and related integers (bandwidth parameters etc.) all have type long int, except for those in user calls specifying BLAS/LAPACK routines.
    • index ‘which’ changed from type long int to int.

What’s new in v1.0.0?

  • Initial release.