Reaction and Unbalance

A confluence of recent inquiries led me to take a look at what the nodeReaction and nodeUnbalance commands return in an OpenSees dynamic analysis. While I have a pretty good handle on nodeReaction, going in to this post, I was unsure about nodeUnbalance. We can learn a lot from a couple springs, so I created … Continue reading Reaction and Unbalance

Mass and Weight

Many structural analysis software programs will automatically define mass based on the input gravity loads. OpenSees is not one of those programs. You have to define mass and weight separately. Fortunately, using variables for units makes the mass and weight definitions easy. Plus, if using customary units, you won't have to waste time Googling the … Continue reading Mass and Weight

Last Committed Stiffness

With the rayleigh command, OpenSees allows you to input three stiffness proportional damping factors: 1) the current tangent stiffness, 2) the initial stiffness, and 3) the last committed stiffness. Each option has drawbacks. The current tangent stiffness is problematic because the tangent stiffness can change significantly at each iteration of the equilibrium solution algorithm. The … Continue reading Last Committed Stiffness

Rayleigh Damping Coefficients

One of the best examples of "offline" calculations you can easily avoid in OpenSees is Rayleigh damping coefficients. I've seen people hard code the mass and stiffness proportional damping coefficients in their OpenSees scripts, after computing said coefficients in another software, e.g., MATLAB, or on paper. Inevitably, it becomes difficult to keep your OpenSees model … Continue reading Rayleigh Damping Coefficients

Pushover with Constant Ground Jerk

A graduate student and I are developing an OpenSees model of the water tower described in this paper. Thankfully, the model is pretty straightforward, i.e., reproducible from what's written in the paper. The authors of the paper did a pushover analysis of the water tower using dynamic response to a "slow, ramped, horizontal ground acceleration … Continue reading Pushover with Constant Ground Jerk

Modal Participation Factors

Computing modal participation factors (yes, I know it's a misnomer) from an OpenSees model is straightforward if you define only nodal mass with no element mass. Examples are available online showing how to compute the factors in OpenSees using Tcl, but let's go over how to do it with OpenSeesPy. After you define your model … Continue reading Modal Participation Factors

Gimme All Your Damping, All Your Mass and Stiffness Too

Just because OpenSees is open source does not mean it is a fully transparent box. This is mostly because documentation has lagged behind development. So, pessimists would say the box is semi-opaque while optimists would characterize it as semi-transparent. But a few parts of OpenSees are definitely housed in an opaque box. Take, for instance, … Continue reading Gimme All Your Damping, All Your Mass and Stiffness Too

Be Careful with Modal Damping

Modal damping is kind of the it-spell in the dark art that is modeling viscous damping in structures. Although modal damping is pretty straightforward, you should be aware of an important aspect of its implementation in OpenSees. The issue, which is described in section 9 of this paper, is that OpenSees assembles the dynamic tangent … Continue reading Be Careful with Modal Damping