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

tang_iter

str

Tangent matrix to use for iterations: “current”, “initial”, or “noTangent” (default: “current”)

tang_incr

str

Tangent matrix to use for increments: “current”, “initial”, or “noTangent” (default: “current”)

max_dim

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 cost

  • A larger max_dim value generally leads to better convergence but uses more memory