1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! # diffsol-nl
//!
//! Time-unaware non-linear solver traits and implementations for
//! [diffsol](https://github.com/martinjrobins/diffsol).
//!
//! This crate provides the non-linear operator and solver abstractions used by
//! diffsol, together with a Newton implementation built on top of the linear
//! solvers provided by [`diffsol_la`].
/// Convergence testing for iterative non-linear solvers.
///
/// This module defines the [Convergence] struct and [ConvergenceStatus] enum used
/// to test for convergence (and divergence) of the Newton iteration.
/// Error types and handling.
///
/// This module defines the [NlError] enum for the non-linear solver layer, which
/// wraps solver-specific errors ([NonLinearSolverError]) as well as linear-algebra
/// errors from [`diffsol_la`].
/// Line search implementations for globalising the Newton iteration.
///
/// This module defines the [LineSearch] trait and provides the [NoLineSearch] and
/// [BacktrackingLineSearch] implementations.
/// The Newton non-linear solver.
///
/// This module provides [NewtonNonlinearSolver], an implementation of the
/// [NonLinearSolver] trait using Newton's method, as well as the standalone
/// [newton_iteration] function.
/// The [NonLinearOp] and [NonLinearOpJacobian] traits describing a time-unaware
/// non-linear operator `F(x)` and its Jacobian `J(x)`.
/// Non-linear solver traits.
///
/// This module defines the [NonLinearSolver] trait for solving `F(x) = 0`.
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;