## 6. Numerical algorithm

A incremental-iterative algorithm, also called predictor-corrector method, is used to solve this problem. A stage is broken down into increments and for each increment a corrector phase is applied.

### 6.1. Transformation to residual form and derivative computation

The static nonlinear problem exposed by the model abstraction layer of B2000++ is:

{ f int u λ = f ext u λ u = g ( v , λ ) h ( u , λ ) = 0

After imposing the reduction, the problem becomes:

f int g v λ λ = f ext g v λ λ

h g v λ λ = 0

The potential energy of the unconstrained problem noted Π u λ is defined by this first-order variation.

u Π u λ = f int u λ - f ext u λ

Thus we have:

v Π v λ = v T g v λ f int g v λ λ f ext g v λ λ

To impose the constraint, define Lagrange multipliers Λ to form the Lagrangian:

v Λ λ = Π v λ + Λ T h g v λ λ

The first-order derivatives are:

v v Λ λ = v T g v λ f int g v λ λ - f ext g v λ λ + u T h g v λ λ Λ

Λ v Λ λ = h g v λ λ

λ v Λ λ = c v Λ λ

where c ( v , Λ , λ ) is the increment constraint condition that defines the increment control strategy.

The second-order derivatives are:

v v v Λ λ = v T g v λ u f int g v λ λ - u f ext g v λ λ v g v λ + v v T g v λ u f int g v λ λ - u f ext g v λ λ + v v T h g v λ λ Λ

v Λ v Λ λ = v T g v λ u T h g v λ λ

v λ v Λ λ = v T g v λ u f int g v λ λ - u f ext g v λ λ λ g v λ + λ f int g v λ λ - λ f ext g v λ λ + v λ T g v λ f int g v λ λ - f ext g v λ λ + u λ T h g v λ λ Λ

Λ v v Λ λ = u h g v λ λ v g v λ

Λ Λ v Λ λ = 0

Λ λ v Λ λ = u h g v λ λ λ g v λ + λ h g v λ λ

### 6.2. Implemented increment constraint strategies

Five increment constraint strategies can by used with this solver. A geometric representation of these for a single-degree-of-freedom problem can by found in the following figure.

### 6.3. Implemented correction strategies

The correction strategy is of the Newton-iteration type, optionally augmented with an acceleration method and a line search algorithm.