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
- August 9, 2026 – Initial version
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
- Elastic modulus, E= 200e3 MPa
- Density, ρ = 8000 kg/m3
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.
dispBeamColumnforceBeamColumn
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.