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.