OpenSees Cloud
OpenSees AMI
Two EIs, One Axis
29 Apr 2026 - Michael H. Scott
A collaborator asked me if it’s possible to define a single element that has different flexural stiffness, EI, for sway and non-sway loading. I initially said “I don’t think so”.
Then I recalled ModElasticBeam, an element added to OpenSees several
years ago. This element uses multipliers on the basic stiffness
coefficients of an elastic beam element.
Quoting the documentation:
This element should be used for modelling of a structural element with an equivalent combination of one elastic element with stiffness-proportional damping, and two springs at its two ends with no stiffness proportional damping to represent a prismatic section.
Regardless of the element’s original modeling intent, the multipliers affect the element stiffness and can produce different flexural responses under different loading conditions. Let’s take a closer look.
The element uses a basic stiffness defined by three modification parameters (K11, K33, and K44) in addition to material and section properties, E, I, and A (not shown).
\[{\bf k}_b = \frac{EI}{L} \left[ \begin{array}{cc} K_{11} & K_{44} \\ K_{44} & K_{33} \end{array} \right]\]If you use K11=K33=4 and K44=2, you recover the standard basic stiffness coefficients.
For a beam-column element, the basic stiffness matrix can be decomposed into symmetric and anti-symmetric modes of bending.
\[{\bf k}_b = \frac{EI}{L} \left[ \begin{array}{cc} 4 & 2 \\ 2 & 4 \end{array} \right] = \frac{2EI}{L} \left[ \begin{array}{cc} 1/2 & -1/2 \\ -1/2 & 1/2 \end{array} \right] + \frac{6EI}{L} \left[ \begin{array}{cc} 1/2 & 1/2 \\ 1/2 & 1/2 \end{array} \right]\]These modes of bending correspond to non-sway and sway conditions.

With the modes decoupled, we can apply EIn to the mode that corresponds to non-sway response and EIs to the sway mode.
\[{\bf k}_b = \frac{2EI_n}{L} \left[ \begin{array}{cc} 1/2 & -1/2 \\ -1/2 & 1/2 \end{array} \right] + \frac{6EI_s}{L} \left[ \begin{array}{cc} 1/2 & 1/2 \\ 1/2 & 1/2 \end{array} \right]\]Combining flexural stiffness terms, we get:
\[{\bf k}_b = \frac{1}{L} \left[ \begin{array}{cc} (EI_n+3EI_s) & (-EI_n+3EI_s) \\ (-EI_n+3EI_s) & (EI_n+3EI_s) \end{array} \right]\]Then, if a is the ratio of sway to non-sway flexural stiffness, i.e., a=EIs/EIn, we get the following expression for the basic stiffness:
\[{\bf k}_b = \frac{EI_n}{L} \left[ \begin{array}{cc} (3a+1) & (3a-1) \\ (3a-1) & (3a+1) \end{array} \right]\]This result gives the ModElasticBeam input parameters:
K11=K33=3a+1 and K44=3a-1.
The script below uses two load cases (symmetric bending and anti-symmetric bending) on a single element with modified stiffness coefficients based on the ratio of sway to non-sway EI.
import openseespy.opensees as ops
from math import isclose
L = 120
A = 150
E = 3000
I = 1000
a = 1.5 # Ratio of sway to non-sway EI
EIn = E*I
EIs = a*EIn
K11 = K33 = 3*a+1
K44 = 3*a-1
M = 4000
ops.wipe()
ops.model('basic','-ndm',2,'-ndf',3)
ops.node(1,0,0); ops.fix(1,1,1,0)
ops.node(2,L,0); ops.fix(2,0,1,0)
ops.geomTransf('Linear',1)
ops.element('ModElasticBeam',1,1,2,A,E,I,K11,K33,K44,1)
ops.timeSeries('Constant',1)
# Non-sway loading (symmetric bending)
ops.pattern('Plain',1,1)
ops.load(1,0,0,-M)
ops.load(2,0,0,M)
ops.analysis('Static','-noWarnings')
ops.analyze(1)
# Rotation using non-sway EI
assert isclose(ops.nodeDisp(2,3),M*L/(2*EIn))
ops.remove('loadPattern',1)
# Sway loading (anti-symmetric bending)
ops.pattern('Plain',1,1)
ops.load(1,0,0,M)
ops.load(2,0,0,M)
ops.analyze(1)
# Rotation using sway EI
assert isclose(ops.nodeDisp(2,3),M*L/(6*EIs))
The assertions pass, meaning we successfully used different EI values for sway and non-sway loading in a single element. The calibration worked because there are two modes of flexural deformation that map directly to sway and non-sway response.
Subdividing a member into multiple elements, e.g., in a corotational mesh, requires calibration of the modification factors for sway response based on the mesh size. Multiple elements lead to additional modes of flexural deformation and the element modification factors will vary along the member length.
I work on problems related to modeling and nonlinear structural analysis. If these problems are relevant to a current professional project, feel free to reach out.