Influence Line: Node Deformation

Influence Line: Node Deformation#

This example demonstrates how to compute the influence line for the vertical displacement \(w\)
at node 3 of a simple two-span beam system.

As before, the computation is based on the unit-load method, which states:

  1. To obtain the influence line for a specific displacement or rotation,
    a unit force or unit moment is applied exactly at the location and in the direction
    of the quantity of interest.
  2. The system is then solved using the displacement method.

  3. The resulting deformation of the structure represents the influence line of the selected quantity.

In this example, we apply a unit vertical force at node_3 to obtain the influence line for its vertical displacement \(w\).

You can find the example as an executable Python file here.

Import Modules#

We start by importing the required classes needed to set up the structure and define the
InfluenceLine instance:
[1]:
from sstatics.core.preprocessing import (
    Node, Bar, Material, CrossSection, System
)
from sstatics.core.calc_methods import InfluenceLine
from sstatics.core.postprocessing.graphic_objects import ObjectRenderer, SystemGeo

Create System#

The system consists of two bars and three nodes. Nodes 1 and 2 include supports, while node 3 is free in the vertical direction:

[2]:
# 1. Define material and cross-section
mat = Material(21000, 0.1, 8100, 0.1)          # S235
cs = CrossSection(2769, 76.84, 20, 10, 0.1)   # HEA-240

# 2. Define nodes with supports
node_1 = Node(0, 0, u='fixed', w='fixed')
node_2 = Node(300, 0, w='fixed')
node_3 = Node(600, 0)

# 3. Define bars and system
bar_1 = Bar(node_1, node_2, cs, mat)
bar_2 = Bar(node_2, node_3, cs, mat)
system = System([bar_1, bar_2])

# Visualize system
ObjectRenderer(SystemGeo(system, show_bar_text=True), 'mpl').show(show_axis=False)
../../_images/examples_06_influence_line_influence_line_deform_node_w_4_0.png

Create Influence-Line#

We now create an InfluenceLine object that performs the computation:

[3]:
# 4. Define Influence line
il = InfluenceLine(system)

Compute Influence Line#

To compute the influence line, we apply a unit vertical force at node_3. Since influence lines at nodes do not require a position parameter, we simply specify the node:

[4]:
il.deform(kind='w', obj=node_3)
../../_images/examples_06_influence_line_influence_line_deform_node_w_8_0.png