Skip to content

Springs

There is no create_spring. A spring on a node is model.add_node_spring. Stiffnesses are in kN/m (kNm/rad for kt). A node has one spring: a second call replaces it.

Springs on nodes

Spring: add

model.add_node_spring('N2', kx=500.0)                    # 500 kN/m along x
model.add_node_spring('N2', kx=500.0, ky=200.0)          # and 200 kN/m along y
model.add_node_spring('N2', kt=1500.0)                   # rotational, kNm/rad

Spring: add compression-only or tension-only

mode_x and mode_y are 'both' (the default), 'tension' or 'compression':

model.add_node_spring('N2', kx=500.0, mode_x='compression')   # acts only in compression

A one-sided spring only behaves so in a NonLinear analysis case; a linear case treats it as a two-sided spring. So a compression-only spring usually comes with a non-linear case:

model.create_load_case('SW')
model.create_analysis_case('NL1', 'NonLinear', {'SW': 1.0})

Spring: add in a plate model (slabs, grillages)

Use kz (kN/m, vertical) and ktx, kty (kNm/rad):

model.add_node_spring('N2', kz=800.0)

Spring: edit

Change the stiffness of a spring. The new call replaces the spring of the node:

model.add_node_spring('N2', kx=800.0)                    # was 500

Spring: remove

Delete the spring of a node:

model.remove_node_spring('N2')

There are springs on elements and areas too (add_element_spring, add_area_spring) for a bar or a slab resting on an elastic foundation; model.delete_spring(target) removes the spring of a node, an element or an area.