3.5.4: Large Deformation Analysis

Before the advent of digital modelling people like Heinz Isler, Antoni Gaudi or Sergio Musmeci helped themselves with physical models for generating curved geometries. A popular method was to use the shape of meshes or elastic membranes hanging from supports.

In Karamba3D the behaviour of hanging models can be simulated with the help of the “Analyze Large Deformation”-component. Fig. shows a geometry derived from an initially flat mesh under evenly distributed point-loads. The algorithm behind the “Analyze Large Deformation”-component handles geometric non-linearity by an incremental approach only: All external loads get applied in steps. After each step the model geometry updates to the deflected state. The more and the smaller the steps, the better the approximation of geometric non-linearity. This purely incremental method however incurs an unavoidable drift from the exact solution. For form-finding this error is negligible in most cases. The methods available under the “Analyze Nonlinear WIP”-component (see section 3.5.3) do not suffer from this lack of accuracy, since they apply an incremental-iterative approach. Yet they normally require more computational effort to arrive at a similar shape as the algorithm behind the “Analyze Large Deformation”-component.

Fig. shows a simply supported beam under the action of uniformly distributed point loads. Due to its slenderness axial stiffness by far outweighs bending stiffness. Thus the deflected shape corresponds to a rope under self weight.

The “LaDeform” component has three input-plugs:


Structure to be deformed. “LaDeform” uses load-case 0 for calculating the deflected shape.


Number of increments for applying the loads.


Maximum displacement to be reached in meter. When supplied with a value, the incremental deflection in each step is scaled to . This enables Karamba3D to handle problems with overly large deflections at the beginning of the incremental procedure. Think of an initially straight rope: Due to its negligible bending stiffness it tends to deform tremendously in the first loading step.

With no value supplied in “MaxDisp” external loads get incremented proportionally in each step. Aside from cases like mentioned above this results in an approximation of the structure's real deflections under the given loads.

In fig. the point loads are defined with respect to the global coordinate system: The input-plug “Local?” at the point-load component is set to “False”. Fig. shows what happens if one changes that property to “True”: The point-loads co-rotate with the points they apply to. This leads to a pneumatic shape. The same happens for locally defined line-loads.

The two output plugs of the “LaDeform”-component supply the deflected model and the maximum deflection reached in the calculation.

The local coordinate system of each element gets updated along with its positions. By default an elements local Y-axis is taken parallel to the global X-Y-plane. If an element reaches a vertical position however, its default coordinate system flips – the Y-axis is then taken parallel to the global Y-axis. This may lead to unwanted results when using line-loads which flip along with the local coordinate system. It is possible to avoid this by defining local axes via the “OrientateBeam”-component.

The deflected model contains no information regarding internal forces or stresses. The reason for this is that, owing to the purely incremental approach, these properties would be utterly inaccurate.

Last updated