NB. PVODE has been superseded by SUNDIALS.


PVODE actually refers to a trio of closely related solvers:

  • PVODE, for systems of ordinary differential equations,
  • KINSOL, for systems of nonlinear algebraic equations, and
  • IDA, for systems of differential-algebraic equations.
These solvers have some code modules in common, primarily a module of vector kernels, and a generic linear system solver based on a Scaled Preconditioned GMRES method.

PVODE is a solver for large systems of ordinary differential equations on parallel machines. It contains methods for the solution of both stiff and non-stiff initial value problems. Integration methods include the variable coefficient forms of the Adams and Backward Differentiation Formula methods. The linear systems that must be solved during the implicit time stepping are solved with iterative, preconditioned Krylov solvers. The user can either supply a preconditioner or use one that is included in the PVODE package.

PVODE is an extension of the sequential package known as CVODE which has been widely distributed and used. CVODE is available from Netlib. Both PVODE and CVODE are written in C but are callable from Fortran. The parallelization of CVODE to PVODE was accomplished through the modification of the vector kernels, allowing them to operate on vectors that have been distributed across processors. The message passing calls are made through MPI.

Two of the four original CVODE methods are currently available in PVODE: the nonstiff method and the stiff method with iterative solution of the linear systems (the dense and banded direct solvers from CVODE are not included in PVODE). Parallel preconditioners are also being developed for various major system classes. The initial release of PVODE includes the first such preconditioner which is a block-banded preconditioner based on domain decomposition.

A closely related solver called KINSOL has also been developed for systems of nonlinear algebraic equations. It uses inexact Newton methods with line search strategies for accelerated convergence. KINSOL exists in both a serial and a parallel version, by virtue of serial and parallel versions of the vector module.

The third member of the trio, IDA, is also closely related to the CVODE/PVODE pair. It addresses systems of differential-algebraic equations, and uses Backward Differentiation Formula methods. IDA also exists in both serial and parallel versions. The serial version includes both direct and iterative (GMRES) methods for the linear systems, while the parallel version includes only the GMRES method.


The PVODE trio is most useful for solving large differential and nonlinear algebraic systems that arise in a variety of applications. Important DOE applications include chemical kinetics, atmospheric chemistry, semiconductors, and structural or mechanical systems. It has not yet been widely used outside of groups with direct ties to the developers.

PVODE, KINSOL, and IDA are all being used for the solution of 3D Boltzmann transport equations. For this type of application, the problem size can exceed 600 million unknowns.

A beta release of PVODE with KINSOL is being used in the ParFlow groundwater flow model to solve a nonlinear pressure equation. The ParFlow Project applies high performance computing techniques to the three-dimensional modeling of fluid flow and chemical transport through heterogeneous porous media to enable more realistic simulations of subsurface contaminant migration. These simulations are
used to improve the design, analysis, and management of engineered remediation strategies.

PVODE with KINSOL has also been used in the Tokamak Edge Plasma modeling effort UEDGE. The UEDGE project aims to provide a better understanding of plasma edge physics which could help to resolve several major issues such as core confinement and prevention of core fuel dilution.


PVODE was developed in the Center for Applied Scientific Computing (CASC), at the Lawrence Livermore National Laboratory, beginning with a parallel extension to the popular CVODE package for the solution of large systems of ordinary differential equations. Its principal developers were Alan Hindmarsh and Allan Taylor.

Tools News Project Search Home