Skip to content

Latest commit

 

History

History
101 lines (55 loc) · 4.62 KB

File metadata and controls

101 lines (55 loc) · 4.62 KB
graph LR
    AbstractSolver["AbstractSolver"]
    RungeKutta["RungeKutta"]
    SRK["SRK"]
    VeryChord["VeryChord"]
    Dopri8["Dopri8"]
    KenCarp3["KenCarp3"]
    FosterLangevinSRK["FosterLangevinSRK"]
    Tsit5["Tsit5"]
    RungeKutta -- "inherits from" --> AbstractSolver
    SRK -- "inherits from" --> AbstractSolver
    Dopri8 -- "inherits from" --> AbstractSolver
    KenCarp3 -- "inherits from" --> AbstractSolver
    FosterLangevinSRK -- "inherits from" --> AbstractSolver
    Tsit5 -- "inherits from" --> RungeKutta
    RungeKutta -- "delegates to" --> VeryChord
    KenCarp3 -- "delegates to" --> VeryChord
Loading

CodeBoardingDemoContact

Details

The Numerical Solvers subsystem in diffrax is designed to provide a modular and extensible framework for solving differential equations using various numerical integration techniques. It adheres to the "Strategy Pattern" by defining a common AbstractSolver interface, allowing different concrete solver implementations to be plugged in. The subsystem also incorporates internal root-finding capabilities for implicit methods, demonstrating a clear separation of concerns.

AbstractSolver

The foundational abstract base class that defines the common interface and contract for all numerical solvers within the diffrax library. It ensures consistency across different integration methods.

Related Classes/Methods:

RungeKutta

Implements the general framework for explicit and implicit Runge-Kutta methods, providing the core logic for stage calculations and step progression.

Related Classes/Methods:

SRK

Implements the general framework for Stratonovich Runge-Kutta methods, specifically tailored for solving Stochastic Differential Equations (SDEs).

Related Classes/Methods:

VeryChord

An iterative root-finding algorithm used internally by implicit numerical solvers to solve non-linear equations that arise during the integration step.

Related Classes/Methods:

Dopri8

A specific, high-order (8th order) adaptive Runge-Kutta method, known for its efficiency and accuracy in solving Ordinary Differential Equations (ODEs).

Related Classes/Methods:

KenCarp3

A specific implicit Runge-Kutta method, often used for stiff differential equations where explicit methods are unstable or inefficient.

Related Classes/Methods:

FosterLangevinSRK

A specialized Stratonovich Runge-Kutta solver, likely optimized for specific types of stochastic differential equations, such as those encountered in Langevin dynamics.

Related Classes/Methods:

Tsit5

A specific adaptive Runge-Kutta method (5th order), balancing accuracy and performance for general ODEs.

Related Classes/Methods: