Expand description
Jacobian approximation and handling utilities for ODE solvers
This module provides tools for computing, updating, and reusing Jacobian matrices in implicit ODE solvers. It implements various approximation strategies, reuse logic, and specialized techniques for different problem types.
Re-exports§
pub use crate::ode::utils::common::finite_difference_jacobian;
Structs§
- Jacobian
Manager - Manages Jacobian computation, updates, and reuse
- Newton
Parameters - Newton solver parameters
- Newton
Result - Result of a Newton solve
- Parallel
Jacobian Strategy - Struct to manage parallel Jacobian computation strategy
Enums§
- Jacobian
Strategy - Strategy for Jacobian approximation
- Jacobian
Structure - Structure of the Jacobian matrix
Functions§
- adaptive_
jacobian - Jacobian strategy that uses autodiff when available and falls back to finite differences when not
- autodiff_
jacobian - Fallback implementation when autodiff feature is not enabled
- block_
update - Performs a block-update of the Jacobian using block structure
- broyden_
update - Update the Jacobian using Broyden’s method (rank-1 update) J_{k+1} = J_k + (df - J_k * dy) * dy^T / (dy^T * dy)
- compute_
banded_ jacobian - Computes Jacobian for a banded system with specified number of lower and upper diagonals
- compute_
colored_ jacobian - Group variables based on their interactions to minimize function evaluations
- compute_
diagonal_ jacobian - Computes Jacobian for a system with diagonal or block-diagonal structure
- compute_
jacobian - Compute Jacobian using finite differences (for compatibility)
- generate_
banded_ coloring - Generate a simple coloring for a banded matrix
- is_
autodiff_ available - Check if autodiff is available
- modified_
newton_ solve - Modified Newton solve that reuses the same Jacobian for multiple iterations
- newton_
solve - Solve a nonlinear system F(x) = 0 using Newton’s method
- parallel_
finite_ difference_ jacobian - Compute Jacobian matrix using parallel finite differences
- parallel_
sparse_ jacobian - Compute sparse Jacobian matrix in parallel using coloring
- should_
use_ parallel_ jacobian - Determine if parallel Jacobian computation should be used