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
IntegrationAlgorithms::trapezoid- Trapezoidal rule with tensor supportIntegrationAlgorithms::simpson- Simpson’s rule with tensor supportIntegrationAlgorithms::fixed_quad- Gaussian quadrature with tensor functionsIntegrationAlgorithms::quad- Adaptive Gauss-Kronrod quadratureIntegrationAlgorithms::romberg- Romberg integration via Richardson extrapolationIntegrationAlgorithms::tanh_sinh- Double-exponential for endpoint singularitiesIntegrationAlgorithms::monte_carlo- Monte Carlo integrationIntegrationAlgorithms::qmc_quad- Quasi-Monte Carlo with Sobol/HaltonIntegrationAlgorithms::dblquad- Double integralsIntegrationAlgorithms::nquad- N-dimensional adaptive quadrature
§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
IntegrationAlgorithms::solve_bvp- Two-point BVP via collocation
§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.
- Event
Set - Collection of event functions with their specifications.
- Monte
Carlo Options - Options for Monte Carlo integration.
- Monte
Carlo Result - Result of Monte Carlo integration.
- NQuad
Options - Options for n-dimensional adaptive quadrature (dblquad, tplquad, nquad).
- QMCOptions
- Options for Quasi-Monte Carlo integration.
- Quad
Options - Options for adaptive quadrature.
- Quad
Result - Result of adaptive quadrature.
- Romberg
Options - Options for Romberg integration.
- Symplectic
Result - Result of symplectic integration.
- Tanh
Sinh Options - Options for tanh-sinh (double exponential) quadrature.
Enums§
- Monte
Carlo Method - Method for Monte Carlo integration.
- QMCSequence
- Low-discrepancy sequence type for QMC integration.
Traits§
- Event
Function - Trait for event functions used in ODE integration.
- Integration
Algorithms - Trait for integration algorithms that work across all Runtime backends.