Arc-Length Control#
The ArcLength static integrator is particularly useful for tracing the response of a structure across limit points, where the solution may exhibit snap-through or snap-back behavior [2].
- Model.integrator("ArcLength", s, alpha, det=False, exp=0.0, iterScale=1.0)
Examples#
The following snippets demonstrate the syntax for configuring the ArcLength integrator. A complete example that reproduces the work presented in [1] is available here.
import sees.openseespy as ops
model = ops.Model(ndm=2, ndf=3)
...
model.integrator("ArcLength", 1, det=True, exp=0.5)
integrator ArcLength 1 -det -exp 0.5
integrator ArcLength 1 -exp 0.5
Theory#
The arc-length control method is a continuation method that appends the following constraint equation to the static residual given in Static:
where
Recall the linearized static residual
and define \(d\hat{\boldsymbol{u}}\) and \(d\bar{\boldsymbol{u}}\) by
so that
Implementation#
The arc-length control method is implemented with a distinct increment and iteration phase.
Increment#
During load incrementation the iteration is \(i=1\) and the following assumption is taken:
Thus the constraint equation simplifies to
where \(d \lambda\) from the previous time \((n-1)\) is used to determine the sign; if it was positive then the new \(d \lambda_{(1)}\) is assumed positive, otherwise negative.
Iterations#
During iterations (ie \(i>1\)) the constraint equation is expressed in terms of the linearization direction \(d\boldsymbol{u}\):
which expands to
assuming the constraint equation was solved at \(i-1\) then one has \(\Delta \boldsymbol{u}_{(i)} \cdot \Delta \boldsymbol{u}_{(i)} + \alpha^2 \Delta \lambda^2_{(i)} = \Delta s^2\), and the constraint for the current iteration simplifies to
Substituting the decomposed representation for \(d \boldsymbol{u}\) this furnishes a quadratic equation in \(d \lambda\):
where we have defined the scalar constants
which can be solved for two roots. The root chosen is the one which will keep a positive angle between the incremental displacement before and after this step.
References#
Wempner, GA (1971) ‘Discrete approximations related to nonlinear theories of solids’
Crisfield, MA (1981) ‘A fast incremental/iterative solution procedure that handles “snap-through”’
Ramm E ‘Strategies for tracing nonlinear response near limit points’