Secant Newton Algorithm
The Secant Newton algorithm is a quasi-Newton method that uses the two-term update formula to approximate the inverse of the Jacobian matrix. It provides an alternative to the standard Newton method with potentially better performance for certain problem types.
Description
The Secant Newton algorithm: - Builds an approximation to the Jacobian matrix using the secant update formula - Updates the geometry and internal forces based on the displacement increment - Repeats until convergence is achieved - Can control the tangent matrix used for iterations and increments
Parameters
Parameter |
Type |
Description |
---|---|---|
|
str |
Tangent matrix to use for iterations: “current”, “initial”, or “noTangent” (default: “current”) |
|
str |
Tangent matrix to use for increments: “current”, “initial”, or “noTangent” (default: “current”) |
|
int |
Maximum dimension for the Secant approximation (default: 3) |
Usage Example
# Create a Femora instance
# Create a Secant Newton algorithm with default settings
fm.analysis.algorithm.create_algorithm("SecantNewton")
# Create a Secant Newton algorithm with custom settings
fm.analysis.algorithm.create_algorithm(
"SecantNewton",
tang_iter="initial",
tang_incr="current",
max_dim=5
)
Notes
The Secant Newton algorithm can be more efficient than standard Newton for problems where the tangent is expensive to compute
It builds an approximation to the Jacobian matrix using secant updates
The convergence rate may be slower than standard Newton but each iteration may be less expensive
The
max_dim
parameter controls the trade-off between accuracy and computational costA larger
max_dim
value generally leads to better convergence but uses more memory