Absolutely, It’s Relative

One of the most frequently asked OpenSees questions is whether node recorders record absolute or relative displacement (relative to the ground) when a model is subjected to a uniform excitation.

There’s several approaches to find the answer to this question.

One solution is to apply a simple uniform excitation–like a constant ground acceleration–to an SDF model, then plot what the node recorder records.

Here is the code for this SDF analysis, an MWE if you will.

import openseespy.opensees as ops

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

k = 400
m = 1
g = 386.4

ops.node(1,0); ops.fix(1,1)
ops.node(2,0); ops.mass(2,m)

ops.uniaxialMaterial('Elastic',1,k)

ops.element('zeroLength',1,1,2,'-mat',1,'-dir',1)

ag = 1.0*g
ops.timeSeries('Constant',1,'-factor',ag)
ops.pattern('UniformExcitation',1,1,'-accel',1)

tf = 1.0
dt = 0.001
Nsteps = int(tf/dt)

ops.recorder('Node','-file','SDFresponse.out','-time','-node',2,'-dof',1,'disp')

ops.analysis('Transient')
ops.analyze(Nsteps,dt)

At constant acceleration, \ddot{u}_g, the ground will move quadratically with respect to time–193.2 inches after 1 second of 1 g acceleration according to u_g(t)=\frac{1}{2}\ddot{u}_gt^2. Below is the displacement response history recorded by the node recorder.

The displacement response does not increase quadratically and it’s nowhere near 193.2 inches. Instead, the displacement oscillates about the static, fixed base solution, $-{m\ddot{u}_g}/k$.

Thus, the recorded displacement is relative to the ground for a uniform excitation. Same goes for the nodal velocity and acceleration.

OpenSees bonus points: the peak dynamic response is twice the static solution, as expected based on the closed form SDF solution for undamped, forced vibration with a step function.


OpenSees community, what approaches have you come up with in order to answer this question of relative or absolute displacement recorded by the node recorders?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.