# 3.1.15: Support

Without supports, a structure would have the potential to move freely in space. This is undesirable for most buildings. Therefore, it is essential to have enough supports so that the structure cannot move without deforming, i.e., exhibits no rigid body modes.

When defining supports for a structure, remember that in three-dimensional space, a body has six degrees of freedom (DOFs): three translations and three rotations (see Fig. 3.1.15.1). The structure must be supported in such a way that none of these DOFs are possible without invoking a reaction force at one of the supports. Otherwise, Karamba3D either refuses to calculate the deflected state or renders very large displacements. Sometimes, results are obtained from movable structures due to the limited accuracy of computer calculations, which leads to round-off errors. It is a misconception to think that if there are no forces in one direction (e.g., in a plane truss), there is no need for corresponding supports. The possibility of displacement is what matters.

![Fig. 3.1.15.1: Metaphor for the six degrees of freedom of a body in three-dimensional space.](https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MCkDlhlZpqUmakSqOrp%2Fsync%2F4896fe8d03cebe3dc5d74f5a6eae5fec2e41ddb4.png?generation=1595316031273523\&alt=media)

Errors in defining support conditions are easy to detect with Karamba3D. Section 3.6.6 shows how to calculate the eigenmodes of a structure. This type of calculation works even for movable structures: rigid body modes, if present, correspond to the first few eigenmodes.

Fig. 3.1.15.2 shows a simply supported beam. The **“Support”**-component takes as input either the index or the coordinates of the point to which it applies.



<figure><img src="https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6rkhS8IteqWJRfUuJlL5%2Fuploads%2FLLe1U8yRTucmQqFKk4nC%2FSupportComponent.png?alt=media&#x26;token=f02abdbd-b07a-4698-8dda-871d71feae27" alt=""><figcaption><p>Fig. 3.1.15.2: Define the position of supports by node-index or position.</p></figcaption></figure>

{% file src="https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6rkhS8IteqWJRfUuJlL5%2Fuploads%2FBtVPxrFLMbK8QNVBR3k7%2FSupportComponent.gh?alt=media&token=54e911c8-37c4-473a-a8ce-9267f76ddfbd" %}

By default the coordinate system for defining support conditions is the global one. This can be changed by defining a plane and feeding it into the **“Plane”**-input plug of the **“Support”**-component. Reaction forces and support stiffness aleays apply to the local coordinate system.

The component features six small radio button circles that indicate the type of fixation. The first three correspond to translations along the global x, y, and z axes, while the last three represent rotations about these axes. A filled circle signifies a fixed degree of freedom, meaning it is either zero or assigned a predefined value via a **"PointDisplacement"** load (refer to section [3.2.1](../../3.2-load/3.2.1-loads#point-displacement)). The state of each circle can be toggled by clicking on it. Additionally, the supported degrees of freedom can be defined parametrically using the “Dofs” input, which expects a list of integers from '0' to '5', corresponding to Tx through Rx. To generate a ValueList component with these options, right-click the component and select **“Expand ValueLists”**, as illustrated in Fig. 3.1.15.2.

To model different soil conditions, translational and rotational stiffness values can be provided via the "Ct" and "Cr" input plugs, respectively. These inputs require vectors whose X, Y, and Z components correspond to the stiffness values in the local support coordinate system. It is important to note that specifying a rigid support overrides the definition of a flexible support with a spring stiffness. For example, in Fig. 3.1.15.2, dark green arrows represent fixed supports, while light green arrows indicate flexible supports. If a support movement needs to be imposed on a flexible support degree of freedom, a point load must be added, calculated as the displacement multiplied by the stiffness in that direction.

The string output of the component lists the node index or nodal coordinate, an array of six binaries corresponding to its six degrees of freedom, as well as translational and rotational spring stiffnesses.

Supports cause reaction forces. These can be visualized by activating **“Reactions”** in the **“Display Scales”** section of the **“ModelView”**-component (see section[ 3.7.1.1](../3.6-results/3.7.1-general-results/3.6.1-modelview)). They appear as arrows with numbers in green (representing forces) and purple (representing moments). The numbers either mean$$kN$$in case of forces or $$kNm$$ when depicting moments. The orientation of the moment arrows corresponds to the screw-driver convention: The orientation of the moment arrows follows the screw-driver convention: they rotate about the axis of the arrow counterclockwise when viewed such that the arrowhead points toward the observer.

From the support conditions in Fig. 3.1.15.2, one can see that the structure is a simply supported beam: green arrows symbolize locked displacements in the corresponding direction. The translational movements of the left node are completely fixed. On the right side, two supports in the y- and z-directions block rotations about the global y- and z-axes. The only degree of freedom left is the rotation of the beam about its longitudinal axis, which is blocked at one of the nodes. In this case, it is the left node where a purple circle indicates the rotational support.

![Fig. 3.1.15.3: Influence of support conditions – undeformed and deflected geometry.](https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MCkDlhlZpqUmakSqOrp%2Fsync%2Fdc6348fb2d31343c1d857479d0410cafb68ca3bb.png?generation=1595316031093566\&alt=media)

The displacement boundary conditions can significantly influence the structural response. Fig. 3.1.15.3 shows an example of this: on the left, all translations are fixed at supports; on the right, one support is movable in the horizontal direction. When calculating the deflection of a chair, support its legs in such a way that no excessive constraints exist in the horizontal direction; otherwise, you underestimate its deformation. The more supports applied, the stiffer the structure and the smaller the deflection under given loads. To achieve realistic results, introduce supports only when they reliably exist.

By default the size of the support symbols is set to approximately $$1.5m$$. The slider with the heading **“Support”** on the **“ModelView”**-component lets you scale the size of the support symbols. Double click on the knob of the slider in order to set the value range.



{% file src="https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6rkhS8IteqWJRfUuJlL5%2Fuploads%2FxqF9E61cLIcXlMdhQuFi%2FSupport_Local_Orientation.gh?alt=media&token=679da459-7264-4aee-88f4-a78f1921f871" %}

{% file src="https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6rkhS8IteqWJRfUuJlL5%2Fuploads%2FtUMZGnfatJBclmXVbh7k%2FSupport_Local_Orientation_Cross_Section_Forces_I.gh?alt=media&token=a66b3865-47b1-48c1-9750-936e8ef8fb60" %}

{% file src="https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6rkhS8IteqWJRfUuJlL5%2Fuploads%2FXwjI81b7vXgLk9tfuENh%2FSupport_Local_Orientation_Cross_Section_Forces_II.gh?alt=media&token=b3f050ba-5487-4ea3-a2ce-fba3d00a1f29" %}
