# Dynamic relaxation

Dynamic relaxation is a numerical method, which, among other things, can be used to do "form-finding" for cable and fabric structures. The aim is to find a geometry where all forces are in equilibrium. In the past this was done by direct modelling, using hanging chains and weights (see Gaudi), or by using soap films, which have the property of adjusting to find a "minimal surface".
The dynamic relaxation method is based on discretizing the continuum under consideration by lumping the mass at nodes and defining the relationship between nodes in terms of stiffness (see also the finite element method). The system oscillates about the equilibrium position under the influence of loads. An iterative process is followed by simulating a pseudo-dynamic process in time, with each iteration based on an update of the geometry, similar to Leapfrog integration and related to Velocity Verlet integration.

## Main equations used

Considering Newton's second law of motion (force is mass multiplied by acceleration) in the $x$ direction at the $i$th node at time $t$:
    $R_{ix}(t)=M_{i}A_{ix}(t){\frac}$
Where:
    $R$ is the residual force
    $M$ is the nodal mass
    $A$ is the nodal acceleration
Note that fictitious nodal masses may be chosen to speed up the process of form-finding.
The relationship between the speed $V$, the geometry $X$ and the residuals can be obtained by performing a double numerical integration of the acceleration (here in central finite difference form), :
    $V_{ix}\left(t+{\frac {\Delta t}{2}}\right)=V_{ix}\left(t-{\frac {\Delta t}{2}}\right)+{\frac {\Delta t}{M_{i}}}R_{ix}(t)$
    $X_{i}(t+\Delta t)=X_{i}(t)+\Delta t\times V_{ix}\left(t+{\frac {\Delta t}{2}}\right)$
Where:
    $\Delta t$ is the time interval between two updates.
By the principle of equilibrium of forces, the relationship between the residuals and the geometry can be obtained:
    $R_{ix}(t+\Delta t)=P_{ix}(t+\Delta t)+\sum {\frac {T_{m}(t+\Delta t)}{l_{m}(t+\Delta t)}}\times (X_{j}(t+\Delta t)-X_{i}(t+\Delta t))$
where:
    $P$ is the applied load component
    $T$ is the tension in link $m$ between nodes $i$ and $j$
    $l$ is the length of the link.
The sum must cover the forces in all the connections between the node and other nodes. By repeating the use of the relationship between the residuals and the geometry, and the relationship between the geometry and the residual, the pseudo-dynamic process is simulated.

## Iteration Steps

1. Set the initial kinetic energy and all nodal velocity components to zero:
    $E_{k}(t=0)=0{\frac}$
    $V_{i}(t=0)=0{\frac}$
2. Compute the geometry set and the applied load component:
    $X_{i}(t=0){\frac}$
    $P_{i}(t=0){\frac}$
3. Compute the residual:
    $T_{m}(t){\frac}$
    $R_{i}(t){\frac}$
4. Reset the residuals of constrained nodes to zero
5. Update velocity and coordinates:
    $V_{i}(t+{\frac {\Delta t}{2}}){\frac}$
    $X_{i}(t+\Delta t){\frac}$
6. Return to step 3 until the structure is in static equilibrium

## Damping

It is possible to make dynamic relaxation more computationally efficient (reducing the number of iterations) by using damping. There are two methods of damping:
* Viscous damping, which assumes that connection between the nodes has a viscous force component.
* Kinetic energy damping, where the coordinates at peak kinetic energy are calculated (the equilibrium position), then updates the geometry to this position and resets the velocity to zero.
The advantage of viscous damping is that it represents the reality of a cable with viscous properties. Moreover, it is easy to realize because the speed is already computed. The kinetic energy damping is an artificial damping which is not a real effect, but offers a drastic reduction in the number of iterations required to find a solution. However, there is a computational penalty in that the kinetic energy and peak location must be calculated, after which the geometry has to be updated to this position.