Newton Line Search Algorithm

The Newton Line Search algorithm enhances the Newton-Raphson method by introducing a line search to determine the optimal step size. This can improve convergence when the standard Newton method struggles.

Description

The Newton Line Search algorithm: - Uses the Newton-Raphson method to determine the search direction - Performs a line search to find the optimal step size - Updates the geometry and internal forces based on the displacement increment - Repeats until convergence is achieved - Offers multiple line search strategies to adapt to different problem characteristics

Parameters

Parameter

Type

Description

type_search

str

Line search algorithm type: “Bisection”, “Secant”, “RegulaFalsi”, or “InitialInterpolated” (default: “InitialInterpolated”)

tol

float

Tolerance for search (default: 0.8)

max_iter

int

Maximum number of iterations to try (default: 10)

min_eta

float

Minimum η value (default: 0.1)

max_eta

float

Maximum η value (default: 10.0)

Usage Example

# Create a Femora instance


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

# Create a Newton Line Search algorithm with custom settings
fm.analysis.algorithm.create_algorithm(
    "NewtonLineSearch",
    type_search="Bisection",
    tol=0.5,
    max_iter=20,
    min_eta=0.05,
    max_eta=5.0
)

Notes

  • The Newton Line Search algorithm can be more robust than standard Newton for difficult problems

  • It may require more computational effort per iteration, but often requires fewer iterations

  • Different search types may be more effective for different problem types

  • The “InitialInterpolated” search type is generally a good starting choice

  • The tolerance parameter controls the line search accuracy (smaller values are more accurate but may require more iterations)