September 2022 | DAVID J. GARDNER, DANIEL R. REYNOLDS, CAROL S. WOODWARD and CODY J. BALOS
The SUite of Nonlinear and DIfferential/ALgebraic equation Solvers (SUNDIALS) has been redesigned to enhance flexibility in using application-specific and third-party algebraic solvers and data structures. The redesign introduced new linear and nonlinear solver classes, enhanced the vector class, and created modern Fortran interfaces. These changes were made "behind-the-scenes," with minimal user interface changes and no reduction in solver capabilities or performance. The redesign allows SUNDIALS users to more easily utilize external solver libraries and create highly customized solvers, enabling greater flexibility on extreme-scale, heterogeneous computational architectures.
SUNDIALS includes six packages: CVODE, CVODES, IDA, IDAS, ARKODE, and KINSOL. CVODE solves stiff and nonstiff ODEs, while IDA solves DAEs and implicit ODEs. ARKODE targets linearly implicit ODEs, and KINSOL solves nonlinear systems. The redesign of SUNDIALS focused on object-oriented design to ensure adaptability to new machines and programming environments, allowing users to construct architecture-aware and problem-specific data structures and solvers. The design principles included minimizing assumptions about data layouts, defining interfaces for user-provided data structures, ensuring package evolution, and producing sustainable code.
The redesign included enhanced vector structures, new vector operations, and a "many-vector" implementation to support heterogeneous computational architectures. The vector class now supports various parallelism models, including OpenMP, CUDA, and MPI. The many-vector implementation enables combining different independent vector instances into a single vector, facilitating data partitioning and multiphysics applications.
The SUNLinearSolver class was redesigned to support problem-specific and third-party linear solvers, with optional routines for setup, scaling, and preconditioning. The SUNNonlinearSolver class provides an interface for supplying problem-specific and third-party nonlinear solvers. The redesign of SUNDIALS has improved flexibility, ease of use, and performance, enabling users to leverage external solvers and data structures for complex simulations. The new infrastructure allows for efficient integration with other libraries and supports a wide range of solvers and data structures, enhancing the overall capabilities of SUNDIALS.The SUite of Nonlinear and DIfferential/ALgebraic equation Solvers (SUNDIALS) has been redesigned to enhance flexibility in using application-specific and third-party algebraic solvers and data structures. The redesign introduced new linear and nonlinear solver classes, enhanced the vector class, and created modern Fortran interfaces. These changes were made "behind-the-scenes," with minimal user interface changes and no reduction in solver capabilities or performance. The redesign allows SUNDIALS users to more easily utilize external solver libraries and create highly customized solvers, enabling greater flexibility on extreme-scale, heterogeneous computational architectures.
SUNDIALS includes six packages: CVODE, CVODES, IDA, IDAS, ARKODE, and KINSOL. CVODE solves stiff and nonstiff ODEs, while IDA solves DAEs and implicit ODEs. ARKODE targets linearly implicit ODEs, and KINSOL solves nonlinear systems. The redesign of SUNDIALS focused on object-oriented design to ensure adaptability to new machines and programming environments, allowing users to construct architecture-aware and problem-specific data structures and solvers. The design principles included minimizing assumptions about data layouts, defining interfaces for user-provided data structures, ensuring package evolution, and producing sustainable code.
The redesign included enhanced vector structures, new vector operations, and a "many-vector" implementation to support heterogeneous computational architectures. The vector class now supports various parallelism models, including OpenMP, CUDA, and MPI. The many-vector implementation enables combining different independent vector instances into a single vector, facilitating data partitioning and multiphysics applications.
The SUNLinearSolver class was redesigned to support problem-specific and third-party linear solvers, with optional routines for setup, scaling, and preconditioning. The SUNNonlinearSolver class provides an interface for supplying problem-specific and third-party nonlinear solvers. The redesign of SUNDIALS has improved flexibility, ease of use, and performance, enabling users to leverage external solvers and data structures for complex simulations. The new infrastructure allows for efficient integration with other libraries and supports a wide range of solvers and data structures, enhancing the overall capabilities of SUNDIALS.