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

Ordinary Eigenvalues

There are three applications of eigenvalue analysis in structural engineering. Vibration analysis and buckling analysis involve generalized eigenvalue analysis. OpenSees does vibration eigenvalue analysis pretty well, but does not perform buckling eigenvalue analysis--although you might be able to fake the geometric stiffness matrix for simple frame models. The third application of eigenvalue analysis is ordinary … Continue reading Ordinary Eigenvalues

The Prevalence of OpenSees in JSE

In Write It Up, Paul J. Silvia describes three journal tiers that apply to any field: Journals that everyone in your field sees as among the best (smallest tier)Important journals that contain most of the field's work (largest tier)"The seamy underbelly of scholarly publishing" In my opinion, the ASCE Journal of Structural Engineering (JSE) is … Continue reading The Prevalence of OpenSees in JSE

PSA: OpenSees Commands Are Case Sensitive

I recently had a conversation with an experienced OpenSees user who asked why distributed loads were not working on their elastic beam-column model. I initially thought something must have changed in GitHub, but was relieved when I looked at their input file and saw the following: pattern Plain 2 Linear { eleLoad -ele 10020001 -type … Continue reading PSA: OpenSees Commands Are Case Sensitive

A Quad Out West

I wrote this limerick in 2000 after coding the four node quad element in OpenSees. I once programmed a quad out West, Displacement-based, so not the best. Debugged emphatically, Converges quadratically. It even passes the patch test. I'm no Chris Jones. This and the algorithmic limerick are the extent of my limerick library.

Don’t Forget to Take a Selfie

If you've programmed your own UniaxialMaterial in OpenSees, you were likely hyper-focused on correct implementation of the constructor and the methods for state determination, getStress and commitState. Rightfully so. But there are a couple UniaxialMaterial methods, and a code addition elsewhere, that are critically important when using the database command to save/restore your model or … Continue reading Don’t Forget to Take a Selfie

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

Variations on Modified Newton

Solving residual equilibrium equations at every time step in a response history analysis can make the definition of "Modified Newton" ambiguous. Is it (a) the tangent stiffness at the start of the analysis (the initial stiffness) or (b) the tangent stiffness at the start of each time step? In OpenSees, the Modified Newton algorithm implements … Continue reading Variations on Modified Newton

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, so it could be a future modeling challenge here at PD. The authors of the paper did a pushover analysis of the water … Continue reading Pushover with Constant Ground Jerk