3.2.1: General Loads

Currently, Karamba3D offers the following general types of loads: gravity, point-load, point-displacement, imperfection, pretension, temperature loads, constant mesh loads, variable mesh loads, and prescribed displacements at supports. Additional options exist for beam and truss elements (see section on Beam Loads). The types of loads described in this section apply to all types of elements.

An arbitrary number of point loads, mesh loads, etc., and one gravity load can be combined to form a load case, and any number of load cases may exist. Fig. 3.2.1.1 shows the definition of loads using the “Loads” multi-component. Each load-component features an "LCase" input-plug which serves to define the load-case to which the corresponding load belongs to. The default value is "LC0". See section 3.2.5.1 for load case naming conventions.

At the bottom of the “ModelView” component (see section 3.6.1), there is a drop-down list (unfold it by clicking on the “Result Selection” menu header) that can be used to select individual load cases for display. Select “–all–” to view all existing load definitions of all load cases simultaneously. Use the force slider to scale the size of the load symbols (double-clicking on its knob allows you to change the value range and its current value).

Fig. 3.2.1.1: Simply supported beam with six loads.
file-download
49KB

Gravity

When you place a “Loads” component on the canvas, it defaults to the setting described below.

Each load case may contain zero or one definition for the gravity vector. This allows you to simulate effects such as earthquakes by applying a certain amount of gravity in a horizontal direction. For example, in Vienna, which experiences medium earthquake loads, this equates to approximately 14% of gravity that a building must withstand horizontally. In areas with severe earthquake loads, this can rise to 100%, although the value also depends on the stiffness properties of the structure and underlying soil.

Gravity applies to all active elements in the structural model for which the specific weight "gamma" (see section 3.4.1) is not zero. The gravity vector defines the direction in which gravity shall act. A vector of length one corresponds to gravity as encountered on Earth

When working in SI-units Karamba3D assumes a value of 10m/s210m/s^2 for the acceleration of gravity. In case of Imperial units g=9.8066352m/s2g = 9.8066352 m/s^2 is used. Otherwise the conversion from pound mass to pound force does not work. The value of gg can be set by selecting "Karamba3D/Settings/Edit User Settings" in the Grasshopper menu.

Point-Load

The “Point-Load” component allows you to define loads on nodes. These loads can be attached by node index or coordinate. To find out the index of a specific node, enable the “node tag” checkbox in the “ModelView” component. Provide a corresponding list of items into the “Pos|Ind” plug, similar to the “Support” component. See section 3.1.6 for information on how to predefine the index of specific nodes or node positions. Point loads can be either forces or moments. Input a force or moment vector into the “Force” or “Moment” input plug. Its components define the force or moment in the global x, y, and z directions.

When set to “True”, the boolean input “Local?” makes loads and moments follow the nodal rotations in large displacement calculations (see section 3.5.4).

Plugging a point load into a panel component provides the following information: node index or position where the load is applied, force vector, moment vector, the number of the load case to which it belongs, and whether the load is tied to the nodal coordinate system.

Be cautious with nodes where only truss or membrane elements are attached, as these nodes do not possess rotational degrees of freedom. A moment load will therefore have no effect and will be automatically removed from the structure.

For more information on loads and some typical values, see section A.2.3.

file-download
27KB
file-download
32KB

Point-Displacement

Supports as described in section 3.1.16 specify displacement boundary condition at nodes: They set the corresponding displacement degree of freedom of a node to zero. In addition to this a “Point-Displacement”-load lets you preset arbitrary displacements at supports. Fig. 3.2.1.2 shows a beam with prescribed, clockwise rotations at both endpoints.

circle-info

The term “displacement” as used throughout this manual includes translations and rotations.

As fig. 3.2.1.2. shows a “Point-Displacement” always needs to be accompanied by a corresponding “Support”-definition - otherwise a warning on model assembly occurs. Supports where displacement conditions apply can be selected via node-index or nodal coordinates. In order to find out the index of a specific node enable the “node tag”-checkbox in the “ModelView”-component.

Input-plug “LCase” lets you set the index of the load-case in which displacements shall have a specified value. The default value is “LC0”.

Fig. 3.2.1.2: Deflection of a beam under predefined displacements at its end-supports.
file-download
32KB

The “Trans”- and “Rot”-input-plugs expect vectors. They define nodal translations and rotations in the coordinate system defined by the nodal support. Translations are to be given in meter (or feet), rotations in degree. The X-component of the rotation vector describes a rotation about the coordinate systems X-axis. A positive value means that the node rotates counterclockwise if the X-axis points towards you. Analog definitions apply to rotations about the Y- and Z-axis. Karamba3D is partly based on the assumption of small deflections. Thus, be aware that large, prescribed displacements and rotations give rise to incorrect results in case of geometric linear calculations. For approximating effects due to large displacements see e.g., section 3.5.4.

Displacements can only be prescribed if the corresponding displacement degree of freedom is removed from the structural system. This means you have to activate the corresponding button in the Conditions-section of the “Support”-component. The first three buttons stand for translations the last three for rotations.

circle-info

Only those components of the “Trans”- and “Rot”-vectors take effect which correspond to activated supports.

Initial Strain-Load

Karamba3D allows you to define initial strains. Fig. 3.2.1.3 shows a beam with both ends fixed, subject to a positive initial constant strain and curvature. The unit of dimension of the pretension which gets fed into the “Eps0” plug is mm/mmm/m.

circle-info

A positive value means that the element elongates.

Fig. 3.2.1.3: Member under initial strains fixed at both ends and support reactions.

Applying initial strain to an element is not the same as applying a pair of opposite forces or moments at its endpoints: In case of initial strain, the axial force in the element depends on its boundary conditions: If the structure to which it connects is very stiff then the resulting axial force will be N=ϵ0AEN = -\epsilon _0 \cdot A \cdot E. In fig. 3.2.1.3 the supports are rigid, the elements cross section A=25cm2A = 25 cm^2, Young’s Modulus E=21000kN/cm2E = 21000 kN/cm^2 and ϵ0=0.00015\epsilon _0 = 0.00015. This results in an axial force of N=78.75kNN = -78.75 kN and shows up as horizontal support reactions. When the rest of the structure does not resist, then a pretension-load merely results in lengthening or shortening the corresponding element.

The “Kappa0”-input is a vector of curvature values with respect to the local element axes. A positive component value signifies an anti-clockwise rotation about the corresponding axis. The input plug “ElemIds” defines the elements where the load acts and “LCase” the load-case.

Additional examples can be found in the Grasshopper main tab under Karamba3D > Help > Examples > Local Examples > Loads.

Temperature-Load

The definition of temperature loads works analogously to defining pretension loads (see section 3.2.1). The coefficient of thermal expansion (see section 3.4.1) characterizes the response of a material to temperature changes. "T" represents a uniform temperature change over the cross section, "Δ\DeltaT" a temperature gradient over the cross section. The input vector refers to the local element coordinate system and specifies changes about the corresponding axes.

Fig. 3.2.1.4: Temperature load on a member which is fixed at both ends

Mesh-Load: Const and Variable

A Mesh Load can be used to apply area loads to a structure—such as wind pressure on a façade, occupancy loads on a floor slab, or additional dead weight on a roof. The advantage of Karamba3D’s mesh loads is that the loaded surface—any arbitrary Grasshopper mesh—does not need to be part of the finite element model itself. Instead, the load defined on the mesh is transferred to the structural model using a shortest‑distance–based algorithm. If you want to know exactly how that works, read on; otherwise, feel free to skip the remainder of this paragraph.

To derive nodal loads and distributed beam loads from surface loads, the following steps are performed:

  1. Face Resultants Karamba3D first calculates the resultant load acting on each face of the input mesh. This load is then evenly distributed among the face’s three or four corner vertices.

  2. Transferring Vertex Loads to Structural Nodes Next, these vertex loads are mapped to the structural nodes. For this purpose, auxiliary “helper” nodes are created along beam axes at intervals equal to one‑third of the mesh’s average edge length. Each mesh vertex transfers its load to the nearest structural node or helper node. If several nodes lie within the LDist radius specified in the Assemble component, the vertex load is split among them according to the inverse of their distances from the vertex.

  3. Converting Helper Loads into Beam Loads The loads collected by the helper nodes along each beam are grouped into segments. Loads within each segment are summed and converted into equivalent trapezoidal distributed loads. A coarse mesh can yield a poor local load distribution. In Fig. 3.2.1.6, for example, the closest points from the vertices are the beam’s end nodes and the middle helper node, which results—one load per element—in a uniform line load.

It is important to note that this method for converting mesh loads into nodal and element loads does not consider bending moments caused by offsets between mesh vertices and structural nodes. The approach implicitly assumes that the load‑receiving surface is centrally placed and rigid in bending. As a consequence, bending moments caused by overhanging or cantilevered surfaces are not captured.

Mesh

The “MeshLoad” component is used to transform surface loads into equivalent node or element loads. This allows for the definition of live loads on floor slabs, moving loads on bridges (see the example “Bridge.ghx” in the examples collection on the Karamba3D website), snow on roofs, wind pressure on facades, etc. The mesh where the load is applied and the underlying structure do not need to be connected. The mesh needs to be fed into the “Mesh” input plug.

Vec

There are two types of mesh loads:

  • “MeshLoad Const”: for loads that are constant throughout the mesh.

  • “MeshLoad Var”: for setting specific load values for each face of the mesh.

These two variants differ in the data structure expected at the input “Vec” and “Vecs” respectively: either a single vector for specifying a constant load or a list of vectors. In the latter case, the list items are applied to the mesh faces based on the longest list principle. In what follows, the “MeshLoad Const” variant will be depicted, but the information applies to “MeshLoad Var” as well.

Fig. 3.2.1.6 (left side) shows a simply supported beam and a mesh consisting of two rectangular faces. Each face covers one half of the beam and has a width of 1 m perpendicular to the beam axis. With a distributed load of 1 kN/m² in the negative global Z-direction, a uniformly distributed load of 2 kN/m results.

Fig. 3.2.1.6: Simply supported beam with line-loads from a mesh load.

Pos

To define structure nodes where equivalent point loads may be generated, plug a list of their coordinates into the “Pos” plug. These need to correspond to existing nodes; otherwise, the “Assemble” component turns red. Offending nodes will be listed in its run-time error message. By default, all points of the structure are included. Uncheck “Point loads” to avoid point loads.

ElemIds

With the “ElemIds” input plug, groups of elements can be specified on which equivalent loads shall be generated. As shown in figures 3.2.1.7. and 3.2.7.2. this can be used to impose the span-direction of the load-application.

By default, all beams of the model are included. To exclude beam loads, uncheck the “Line loads” button in the “Generation” submenu.

Fig. 3.2.1.7: A mesh-load which acts on all four boundary beams named "YLines" and "XLines".
Fig. 3.2.1.8: The same mesh-load as in fig. 3.2.1.7. this time actiong only on the beams identified as "XLines".

The figures 3.2.1.7 and 3.1.2.8. show a similar setting as in fig. 3.2.1.6. The difference lies in the refined mesh with more vertices along the beam axis.

LCase

Set the “LCase”-input to the name of the load case in which the surface load shall act.

Orientation

The right side of fig. 3.2.1.7 shows what data the “MeshLoad const”-component collects: The input-plug “Vec” expects a vector which specifies the surface load. Its physical unit is kilo Newton per square meter kN/m2kN/m^2. The orientation of the load-vector depends on the checkbox selected under “Orientation” (see also fig. 3.2.1.8):

  • "local to mesh”: The local coordinate system for loads corresponds to that given in section 3.1.12. The local x-axis is parallel to the global x-direction unless the mesh-face normal is parallel to the global x-direction, in which case the local x-axis points in the global y-direction. The local z-axis is always perpendicular to the mesh-face, with its orientation depending on the order of the vertices. A surface load with components only in the Z-direction acts like wind pressure or suction.

  • “global”: The force-vector is oriented according to the global coordinate system. This makes the surface load behave like additional weight on the mesh plane.

  • “global proj.”: The force vector is oriented according to the global coordinate system, with the surface load distributed over the area resulting from projecting the mesh faces to global coordinate planes. This simulates the action of snow load.

Fig. 3.2.1.8: Orientation of loads on mesh: (a) local; (b) global; (c) global projected to global plane.

Generation

By default, the “MeshLoad const”-component creates point- and line-loads. The radio-buttons in the submenu “Generation” can be used to disable the first or the latter.

circle-info

Starting with Karamba3D version 3.1.60309, the behavior of the MeshLoad component has changed slightly compared to earlier releases—and this affects MeshLoad components in older definitions as well. When the LineLoads option is enabled, no point loads are generated at the element endpoints anymore. Instead, those endpoint forces are now incorporated directly into the element’s line loads.

Last updated