Skip to main content

Module integrate

Module integrate 

Source
Expand description

Numerical integration and ODE solvers for solvr.

This module provides Runtime-first numerical methods for:

  • Quadrature: Numerical integration of functions (definite integrals)
  • ODE Solvers: Initial value problem solvers for ordinary differential equations
  • BVP Solvers: Boundary value problem solvers

§Architecture

All algorithms implement the IntegrationAlgorithms trait and use Tensor<R> for data, enabling GPU acceleration and batch operations.

§Quadrature Methods

§ODE Solvers

§Explicit Methods (Non-Stiff)

  • RK23: Bogacki-Shampine 2(3) - Low accuracy, fast
  • RK45: Dormand-Prince 4(5) - General purpose (default)
  • DOP853: Dormand-Prince 8(5,3) - High accuracy

§Implicit Methods (Stiff)

  • BDF: Backward Differentiation Formula (orders 1-5)
  • Radau: Radau IIA order 5 for very stiff problems
  • LSODA: Automatic stiff/non-stiff switching

§Symplectic Methods (Hamiltonian Systems)

  • Verlet: Störmer-Verlet for energy conservation
  • Leapfrog: N-body simulations

§BVP Solvers

§Example

use solvr::integrate::IntegrationAlgorithms;
// Tensor-based integration
let result = client.trapezoid(&y, &x)?;

Re-exports§

pub use error::IntegrateError;
pub use error::IntegrateResult;
pub use ode::BDFOptions;
pub use ode::BVPOptions;
pub use ode::DAEOptions;
pub use ode::DAEResultTensor;
pub use ode::DAEVariableType;
pub use ode::EventDirection;
pub use ode::EventOptions;
pub use ode::EventRecord;
pub use ode::EventSpec;
pub use ode::LSODAOptions;
pub use ode::ODEMethod;
pub use ode::ODEOptions;
pub use ode::ODEResultWithEvents;
pub use ode::RadauOptions;
pub use ode::SymplecticOptions;
pub use impl_generic::ode::ODEResultTensor;
pub use impl_generic::ode::rk45_with_events_impl;
pub use impl_generic::ode::solve_ivp_impl;
pub use sensitivity::AdjointSensitivityAlgorithms;
pub use sensitivity::Checkpoint;
pub use sensitivity::CheckpointManager;
pub use sensitivity::CheckpointStrategy;
pub use sensitivity::SensitivityOptions;
pub use sensitivity::SensitivityResult;
pub use sensitivity::adjoint_sensitivity_impl;

Modules§

error
Error types for numerical integration operations.
impl_generic
Generic implementations of integration algorithms.
ode
Ordinary differential equation (ODE) solvers.
sensitivity
Adjoint sensitivity analysis for ODE solvers.

Structs§

BVPResult
Result of boundary value problem (BVP) solver.
EventFn
Wrapper for closure-based event functions.
EventSet
Collection of event functions with their specifications.
MonteCarloOptions
Options for Monte Carlo integration.
MonteCarloResult
Result of Monte Carlo integration.
NQuadOptions
Options for n-dimensional adaptive quadrature (dblquad, tplquad, nquad).
QMCOptions
Options for Quasi-Monte Carlo integration.
QuadOptions
Options for adaptive quadrature.
QuadResult
Result of adaptive quadrature.
RombergOptions
Options for Romberg integration.
SymplecticResult
Result of symplectic integration.
TanhSinhOptions
Options for tanh-sinh (double exponential) quadrature.

Enums§

MonteCarloMethod
Method for Monte Carlo integration.
QMCSequence
Low-discrepancy sequence type for QMC integration.

Traits§

EventFunction
Trait for event functions used in ODE integration.
IntegrationAlgorithms
Trait for integration algorithms that work across all Runtime backends.