Newton Algorithm

The Newton algorithm implements the Newton-Raphson method to solve the nonlinear residual equation. It is one of the most commonly used algorithms in structural analysis due to its quadratic convergence rate when close to the solution.

Description

The Newton algorithm: - Uses the current tangent stiffness matrix to solve for the displacement increment - Updates the geometry and internal forces based on the displacement increment - Repeats until convergence is achieved - Can optionally use initial stiffness or switch between initial and current stiffness

Parameters

Parameter

Type

Description

initial

bool

If True, uses the initial stiffness matrix for all iterations (default: False)

initial_then_current

bool

If True, uses initial stiffness on first step and then current stiffness (default: False)

Usage Example

# Create a Femora instance


# Create a Newton algorithm with default settings
fm.analysis.algorithm.create_algorithm("Newton")

# Create a Newton algorithm using initial stiffness
fm.analysis.algorithm.create_algorithm("Newton", initial=True)

# Create a Newton algorithm that switches from initial to current stiffness
fm.analysis.algorithm.create_algorithm("Newton", initial_then_current=True)

Notes

  • The Newton algorithm is generally the most efficient algorithm for well-behaved problems

  • It requires the computation of the tangent stiffness matrix at each iteration

  • It may fail to converge if the initial guess is too far from the solution

  • The initial and initial_then_current options are mutually exclusive