Backward Euler
📐 Definition
Section titled “📐 Definition”For with timestep , backward Euler computes from
typically via a nonlinear solve each step.
Domain and Codomain
Section titled “Domain and Codomain”Applies to states (or function spaces) with Lipschitz to ensure well-posed implicit solves. Output remains in the same space after solving the implicit equation.
⚙️ Key Properties
Section titled “⚙️ Key Properties”Order and Local Error
Section titled “Order and Local Error”Backward Euler is first-order accurate in time, with local truncation error .
Linear Stability (Test Equation)
Section titled “Linear Stability (Test Equation)”For the linear test equation ,
The method is A-stable and strongly damping for , making it effective on stiff dissipative dynamics.
Implicit Solve Requirement
Section titled “Implicit Solve Requirement”Each step requires solving a nonlinear (or linearized) system for ; fixed-point iteration and Newton-type solvers are common choices.
🎯 Special Cases and Limits
Section titled “🎯 Special Cases and Limits”For linear drift with forcing , the update satisfies
As , the scheme converges to the exact flow; for large on stiff stable , the method damps high-frequency modes without oscillation.
🔗 Related Functions
Section titled “🔗 Related Functions”Forward Euler avoids implicit solves but is only conditionally stable; Crank–Nicolson raises the order while retaining implicitness; fixed-point iteration is a common solver for the implicit step.
Usage in Oakfield
Section titled “Usage in Oakfield”Oakfield exposes backward Euler as an implicit built-in integrator implemented via fixed-point iteration:
- Integrator name:
backward_euler(Lua:sim.sim_create_context_integrator(ctx, "backward_euler", {...})). - Solve strategy: uses a simple Picard/fixed-point loop with an explicit Euler prediction as the initial guess and a residual check against the integrator tolerance (no Jacobians/Newton).
- Adaptive fallback: when
adaptive = true, Oakfield reducesdtacross a small number of attempts if the fixed-point solve does not converge. - Complex + stochastic support: works for complex primary fields and applies stochastic increments after the implicit update when enabled.
Historical Foundations
Section titled “Historical Foundations”📜 Origins
Section titled “📜 Origins”Implicit variants of Euler’s time stepping appear naturally when the drift is evaluated at the next time level to improve stability on dissipative dynamics.
🔬 Stiffness and Stability
Section titled “🔬 Stiffness and Stability”20th-century stability theory (notably Dahlquist’s work) formalized why backward Euler is robust on stiff problems and helped establish A-stability as a guiding design principle for implicit methods.
📚 References
Section titled “📚 References”- Hairer, Nørsett, Wanner, Solving Ordinary Differential Equations II
- Ascher & Petzold, Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations