OpenSees Cloud

OpenSees AMI

NAFEMS Test P18.FV2

Benchmark Summary

Item Value
Category Free Vibration
Structure Pin-Ended Double Cross
Analysis Type Eigenvalue Analysis
Quantities Verified Frequencies, Mode Shapes
Elements Evaluated dispBeamColumn, forceBeamColumn
OpenSees Version 3.8.0.0
Operating System Ubuntu
Status Verified

Revision History

Objective

This test assesses frame element performance in finding the natural freqencies and mode shapes of a Pin-Ended Double Cross. The model has several repeated eigenvalues.

Geometry and Mesh

The two-dimensional (2D) model is comprised of eight linear-elastic frame members, each of length 5 m. The joint in the middle of the model is rigid. Each member is discretized into four frame finite elements and the cross-section of each member is square.

Boundary Conditions

Pin conditions (uX=uY=0) at the end of each member.

Material Properties

OpenSees Elements Tested

The reference solution reported for the FV2 test in the original NAFEMS P18 document is computed from a refined mesh of frame elements, e.g., using 20 elements per member, each with a consistent mass matrix. Shear deformations are not included in the reference solution.

The following OpenSees frame elements (four elements per member) are compared to the reference solution.

Frequencies

Frequencies (Hz) along with percent difference from the reference solution.

  Mode 1 Modes 2-3 Modes 4-8 Mode 9 Modes 10-11 Modes 12-16
Reference Solution 11.336 17.709 17.709 45.345 57.390 57.390
dispBeamColumn 11.339 (0.03%) 17.692 (0.10%) 17.721 (0.07%) 45.524 (0.39%) 57.427 (0.06%) 57.748 (0.62%)
forceBeamColumn 11.333 (0.03%) 17.662 (0.27%) 17.690 (0.10%) 45.016 (0.73%) 56.058 (2.35%) 56.344 (1.84%)

The computed frequencies obtained using four dispBeamColumn elements per member agrees more closely than that obtained using four forceBeamColumn elements. The dispBeamColumn element uses a consistent mass matrix while the forceBeamColumn element implementation in OpenSees uses lumped translational mass.

Mode Shapes

Mode 1 corresponds to single curvature of each member while in modes 2 through 8, multiple members have a point of inflection away from their mid-length.

Mode 9 exhibits double curvature of each member with a point of inflection at mid-length. For modes 10–16, multiple members have two points of inflection along their length.

OpenSees Script

import openseespy.opensees as ops

from numpy import pi,sqrt,cos,sin

# Units = MN, m, sec

L = 5
b = 0.125
A = b*b
I = b**4/12

E = 200e3
rho = 8000

Nmembers = 8
Nmodes = 16

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

# Center node
ops.node(Nmembers,0,0)

ops.geomTransf('Linear',1)
ops.section('Elastic',1,E,A,I)
ops.beamIntegration('Legendre',1,1,2)
eleargs = ['dispBeamColumn',1,1,'-mass',rho*A,'-cMass']

# Elements per member
c = L/4

dtheta = 2*pi/Nmembers
for i in range(Nmembers):
    ops.node(i, L*cos(i*dtheta),L*sin(i*dtheta))
    ops.fix(i, 1,1,0)
    ops.mesh('line',i,2,*[Nmembers,i],0,3,c,*eleargs)

ops.analysis('Transient','-noWarnings')
w2 = ops.eigen('fullGenLapack',Nmodes)
f = sqrt(w2)/(2*pi)

Verification Summary

Between the two frame elements considered, dispBeamColumn agrees most closely with the reference frequencies. If it used a consistent mass matrix, the forceBeamColumn element would lead to the same natural frequences as the dispBeamColumn element.