Table of Links
Abstract and 1. Introduction
2. Mathematical Description and 2.1. Numerical Algorithms for Nonlinear Equations
2.2. Globalization Strategies
2.3. Sensitivity Analysis
2.4. Matrix Coloring & Sparse Automatic Differentiation
3. Special Capabilities
3.1. Composable Building Blocks
3.2. Smart PolyAlgortihm Defaults
3.3. Non-Allocating Static Algorithms inside GPU Kernels
3.4. Automatic Sparsity Exploitation
3.5. Generalized Jacobian-Free Nonlinear Solvers using Krylov Methods
4. Results and 4.1. Robustness on 23 Test Problems
4.2. Initializing the Doyle-Fuller-Newman (DFN) Battery Model
4.3. Large Ill-Conditioned Nonlinear Brusselator System
5. Conclusion and References
4.2. Initializing the Doyle-Fuller-Newman (DFN) Battery Model
Initializing DAEs is a crucial step in the numerical solution process, as it ensures the consistency and well-posedness of the problem. Improper initialization can lead to convergence issues, inaccurate solutions, or even complete failure of the numerical solver. The initialization of DAEs involves determining consistent initial values for the differential and algebraic variables that satisfy the algebraic constraints at the initial time. This process is essential for ensuring that the numerical solution starts from a physically meaningful state and avoids violating the system constraints from the outset.
We generate a 32-dimensional DAE initialization problem for a Doyle-FullerNewman (DFN) battery model[15] [58, 59] from open-circuit voltage (OCV) charged at a high current [60, 59]. We benchmark the following methods:
• TrustRegion from NonlinearSolve.jl, NLsolve.jl, and MINPACK.
• NewtonRaphson from NonlinearSolve.jl, Sundials, and NLsolve.jl.
• Quasi-Newton Methods from NonlinearSolve.jl.
• LevenbergMarquardt from NonlinearSolve.jl and MINPACK.
In Figure 9, we show that all the tested NonlinearSolve.jl solvers (except QuasiNewton Methods[16]) solve the initialization problem. Sundials and MINPACK both are unable to solve the problem. NLsolve.jl successfully solves the problem, but their performance is consistently worse. Finally, we note that our polyalgorithm (without ever being tuned to this problem) successfully solves this problem.
[15] https://help.juliahub.com/batteries/stable/
[16] Quasi-Newton Methods are known to fail on this problem [60].
Authors:
(1) AVIK PAL, CSAIL MIT, Cambridge, MA;
(2) FLEMMING HOLTORF;
(3) AXEL LARSSON;
(4) TORKEL LOMAN;
(5) UTKARSH;
(6) FRANK SCHÄFER;
(7) QINGYU QU;
(8) ALAN EDELMAN;
(9) CHRIS RACKAUCKAS, CSAIL MIT, Cambridge, MA.