I was chatting to Claude about limiting and trust regions after talking about trust regions with @oscardssmith, and it seems to have stumbled upon some interesting research on model-informed trust regions. Claude report below:
What kind of problems is it mostly used for? Please describe.
Circuit simulation (SPICE-class), and more broadly any nonlinear system where a subset of variables have extreme nonlinearities with known structure. The canonical case is the PN junction diode equation I = Iₛ·exp(V/Vₜ), where a single unconstrained Newton step can overshoot by tens of volts and overflow IEEE doubles. Every SPICE simulator solves this with ad-hoc "device limiting" — per-variable step clamping baked into the device model — but this makes the residual history-dependent and inconsistent with the Jacobian, breaking compatibility with line search, trust region, and continuation methods. Sandia's Xyce team documented this extensively (SAND2004-2283). Reservoir simulation has the same class of problem with S-shaped flux functions.
Describe the algorithm you'd like
An extension to the trust region framework where the problem (or a callback) provides per-variable trust region bounds and regime boundaries, rather than the solver applying a single scalar radius to ||s||.
Concretely: the NonlinearFunction or problem metadata would accept an optional callback like trust_region_hints(x_current) -> (max_step::Vector, boundaries::Vector, bound_vars::Vector). Each device/subsystem declares things like "variable i needs |Δxᵢ| ≤ 52mV when xᵢ > 0.6V" or "don't cross the boundary at xᵢ = Vth in one step." The solver constructs per-variable box constraints within the trust region iteration. If a Newton step crosses a declared boundary, it's chopped back to that boundary.
The standard trust region ratio test (actual vs predicted reduction) still governs radius adaptation, but the radius can never exceed model-provided bounds. This is stateless, Jacobian-consistent, and composes with existing globalization — unlike traditional SPICE limiting.
Other implementations to know about
No existing implementation for circuit simulation, but the reservoir simulation community has built and proven this exact concept:
- Wang & Tchelepi (JCP, 2013) divide the S-shaped flux function into trust regions at inflection points. Newton steps crossing a boundary are chopped back. They proved unconditional convergence for single-cell problems and achieved >10× iteration reduction on SPE-10 benchmarks.
- Voskov et al. (Geoenergy Sci. Eng., 2023) extended this to compositional flows with adaptive boundary detection via directional derivatives — relevant when analytical boundary enumeration is impractical.
- Xyce/Sandia's PCNR (Aadithya, Keiter & Mei, Springer 2020) is a related but different approach: it reformulates SPICE limiting as a predictor-corrector scheme with augmented unknowns, restoring Jacobian consistency. It solves the same problem but as a circuit-specific construction rather than a general solver feature.
References
- Wang, X. & Tchelepi, H.A. (2013). "Trust-region based solver for nonlinear transport in heterogeneous porous media." J. Comput. Phys. 253:114-137. https://doi.org/10.1016/j.jcp.2013.07.001
- Jenny, P., Tchelepi, H.A. & Lee, S.H. (2009). "Unconditionally convergent nonlinear solver for hyperbolic conservation laws with S-shaped flux functions." J. Comput. Phys. 228(20):7497-7512. https://doi.org/10.1016/j.jcp.2009.06.032
- Aadithya, K.V., Keiter, E.R. & Mei, T. (2020). "Predictor/Corrector Newton-Raphson (PCNR)." In Scientific Computing in Electrical Engineering (SCEE 2018), Math in Industry vol. 32, Springer. https://doi.org/10.1007/978-3-030-44101-2_19
- Keiter, E.R. et al. (2004). Xyce Mathematical Formulation. SAND2004-2283, Sandia National Laboratories. https://xyce.sandia.gov/files/xyce/Xyce_Math_Formulation.pdf
- Voskov, D. et al. (2023). "Nonlinear solver based on trust region approximation for CO₂ utilization and storage in subsurface reservoir." Geoenergy Sci. Eng. https://doi.org/10.1016/j.geoen.2023.211744
I was chatting to Claude about limiting and trust regions after talking about trust regions with @oscardssmith, and it seems to have stumbled upon some interesting research on model-informed trust regions. Claude report below:
What kind of problems is it mostly used for? Please describe.
Circuit simulation (SPICE-class), and more broadly any nonlinear system where a subset of variables have extreme nonlinearities with known structure. The canonical case is the PN junction diode equation I = Iₛ·exp(V/Vₜ), where a single unconstrained Newton step can overshoot by tens of volts and overflow IEEE doubles. Every SPICE simulator solves this with ad-hoc "device limiting" — per-variable step clamping baked into the device model — but this makes the residual history-dependent and inconsistent with the Jacobian, breaking compatibility with line search, trust region, and continuation methods. Sandia's Xyce team documented this extensively (SAND2004-2283). Reservoir simulation has the same class of problem with S-shaped flux functions.
Describe the algorithm you'd like
An extension to the trust region framework where the problem (or a callback) provides per-variable trust region bounds and regime boundaries, rather than the solver applying a single scalar radius to ||s||.
Concretely: the
NonlinearFunctionor problem metadata would accept an optional callback liketrust_region_hints(x_current) -> (max_step::Vector, boundaries::Vector, bound_vars::Vector). Each device/subsystem declares things like "variable i needs |Δxᵢ| ≤ 52mV when xᵢ > 0.6V" or "don't cross the boundary at xᵢ = Vth in one step." The solver constructs per-variable box constraints within the trust region iteration. If a Newton step crosses a declared boundary, it's chopped back to that boundary.The standard trust region ratio test (actual vs predicted reduction) still governs radius adaptation, but the radius can never exceed model-provided bounds. This is stateless, Jacobian-consistent, and composes with existing globalization — unlike traditional SPICE limiting.
Other implementations to know about
No existing implementation for circuit simulation, but the reservoir simulation community has built and proven this exact concept:
References