paint-brush
Initializing the Doyle-Fuller-Newman (DFN) Battery Modelby@linearization
New Story

Initializing the Doyle-Fuller-Newman (DFN) Battery Model

by Linearization TechnologyMarch 28th, 2025
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Initializing DAEs is a crucial step in the numerical solution process, as it ensures the consistency and well-posedness of the problem.
featured image - Initializing the Doyle-Fuller-Newman (DFN) Battery Model
Linearization Technology HackerNoon profile picture
0-item

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:


Fig. 11: Brusselator 2D Scaling for Jacobian-Free Solvers: NonlinearSolve.jl integrates with LinearSolve.jl to support Jacobian-Free Krylov Solvers, which can be set by passing linsolve = KrylovJL_∗ which can be GMRES, CG, LSMR, etc. to the solvers. Using Krylov Methods automatically prevents the Jacobian materialization, a major cost in Figure 10. Additionally, preconditioning the linear solve can help accelerate the overall root finding.


• 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.


This paper is available on arxiv under CC BY 4.0 DEED license.


[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.