OpenSees Cloud

OpenSees AMI

Simple Loads on a Cantilever

Original Post - 04 Nov 2022 - Michael H. Scott

Visit Structural Analysis Is Simple on Substack.


“What are the columns of output for a section force / section deformation element recorder?” is a frequently asked OpenSees question.

The correct answer is “It depends on the type of element and section model.”

But a much better answer is “Apply simple loads to a cantilever and figure it out.”

Consider the cantilever and loads shown below, along with the sign convention used by most OpenSees frame elements for positive internal section forces.

Cantilever with end loads

The model is statically determinate, so you know the distribution and magnitude of the axial force, shear force, and bending moment along the cantilever.

Below is OpenSees code for this cantilever (force-based element with elastic sections) with simple loading and a recorder for the section forces at the last Lobatto point (at the fixed end, x=L of the cantilever). Shear stiffness is defined in the section so that the element includes shear in the section response.

import openseespy.opensees as ops

E = 29000.0
v = 0.3
G = 0.5*E/(1+v)
A = 20.0
Av = 15.0
I = 1400.0

L = 120.0

PX = 10.0
PY = 20.0

ops.wipe()
ops.model('basic','-ndm',2,'-ndf',3)

ops.node(1,0,0)
ops.node(2,L,0); ops.fix(2,1,1,1)

ops.section('Elastic',1,E,A,I,G,Av/A)

Np = 3
ops.beamIntegration('Lobatto',12,1,Np)

ops.geomTransf('Linear',1)

ops.element('forceBeamColumn',1,1,2,1,12)

ops.recorder('Element','-file','sectionForces.out','-time','-ele',1,'section',Np,'force')
ops.recorder('Element','-file','sectionDeforms.out','-time','-ele',1,'section',Np,'deformation')

ops.timeSeries('Constant',1)
ops.pattern('Plain',1,1)
ops.load(1,PX,PY,0)

ops.analysis('Static','-noWarnings')

ops.analyze(1)

The sectionForces.out file contains one line of output. The first column is the pseudo-time and the next three columns are the axial force, bending moment, and shear.

1 -10 2400 20

Remember that the axial force is negative because the cantilever is in compression.

The output in the sectionDeforms.out file is not so obvious, especially if you didn’t look at the section force output first. But what you see is the pseudo-time followed by what you know from strength of materials: the section axial deformation, N/(EA); curvature, M/(EI); and shear deformation, V/(GA_v).

1 -1.72414e-05 5.91133e-05 0.00011954

All of this works when using fiber sections–no need to jump through any hoops to get curvature. Remember, OpenSees is simple.

Note that the order of section force and deformation output may be different when using other section models, especially aggregated sections whose stress resultants can be defined in any order. I’ll leave the three-dimensional elements for you to figure out which outputs correspond to torsion and out of plane bending.