SciML/NonlinearSolve.jl

High-performance and differentiation-enabled nonlinear solvers (Newton methods), bracketed rootfinding (bisection, Falsi), with sparsity and Newton-Krylov support.

What it solves

NonlinearSolve.jl provides high-performance and robust tools for finding the roots of systems of nonlinear equations, which is a fundamental requirement for many scientific and engineering simulations.

How it works

It implements a suite of root-finding algorithms natively in Julia using a unified API. The library leverages several advanced techniques to handle different problem scales:

  • Automatic Selection: It can automatically choose the best algorithm based on runtime analysis.
  • GPU Optimization: It uses static array kernels to improve performance on GPUs for smaller problems.
  • Large-Scale Handling: For massive problems, it utilizes sparse automatic differentiation and Jacobian-free Krylov methods.

Who it’s for

It is designed for researchers and practitioners in scientific computing, engineering, and modeling who need to solve complex nonlinear systems efficiently.

Highlights

  • Unified API for a diverse range of solver specifications.
  • Support for both standard and bracketing methods.
  • High-performance implementations that compete with established tools like PETSc SNES and Sundials KINSOL.
  • Native Julia implementation allowing for deep integration with the SciML ecosystem.

Related

  • Project
  • Project
  • Project
  • Project
  • Project