Building Blocks

I gave a presentation last week for the 6th International Short Course on Seismic Analysis of Structures, hosted remotely and on-site at the University of Palermo, Italy, organized by Prof. Giovanni Minafo and Prof. Cristoforo Demartino. As you can see in the video, my presentation re-packaged leveraged several blog posts. https://youtu.be/p4tgafYuk74 Not every slide was … Continue reading Building Blocks

How to Record Fiber Response

Recording the response of a single fiber in a fiber section is a common ask. You will need to use an Element recorder, but what you can record in each fiber is defined in the UniaxialMaterial::setResponse() method. The most common option is 'stressStrain', which gives the fiber stress-strain response history. After setResponse() drills down to … Continue reading How to Record Fiber Response

Polymorphic Pitfall

Polymorphism is what makes OpenSees, and other object-oriented software, flexible and extensible. With polymorphism, you can program to an interface, not an implementation. You see this approach all over OpenSees--elements don't care how materials compute stress and tangent (more here); integrators don't care how the elements form resisting force and tangent stiffness (more here); and … Continue reading Polymorphic Pitfall

Verifying Ain’t Easy

I've posted a few modeling challenges on frame analysis (strongback, Ziemian, and stability) and soil-structure interaction. However, I recently accepted a challenge from George Chamosfakidis to see if OpenSees can give the same periods and mode shapes reported in the ETABS verification example shown below. Published verification examples typically just show the "correct" result and … Continue reading Verifying Ain’t Easy

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 … Continue reading Absolutely, It’s Relative

You Gotta Keep ’em Aggregated

The SectionAggregator was one of my few useful OpenSees ideas. This class gives a flexible way to combine, or aggregate, modes of force-deformation in a single section model. The idea for SectionAggregator came from the Decorator software design pattern, the same pattern from which so many UniaxialMaterial wrappers were spawned (here and here). In fact, … Continue reading You Gotta Keep ’em Aggregated

It’s a Fine Line

The OpenSees Twitter bot started in December 2019 but didn't "like and retweet" #OpenSees tweets retroactively. So, out of curiosity, I searched Twitter the other day for the first use of the #OpenSees hashtag. This tweet from 2011 came up as the winner: https://twitter.com/drescolano/status/45099760868274176 Not an uncommon sentiment. Now, ten years later, I asked David … Continue reading It’s a Fine Line

Tcl as a Front End for Python

I know I'm not the only one who enjoys converting between scripting languages or between structural analysis programs. I've had fun writing bespoke Tcl middleware between OpenSees and MATLAB, but now OpenSeesPy makes all of that obsolete. But, let's say you have an OpenSees Tcl script that you'd like to run in OpenSeesPy. There's a … Continue reading Tcl as a Front End for Python

There’s Three, Actually

The displacement-based and force-based formulations garner a lot of comparisons for simulating nonlinear frame response. My Google Scholar alerts tell me so. And I even wrote a post comparing the two formulations. Doc Ock from Spider-Man: Into the Spider-Verse There is a third formulation--the mixed formulation. Alemdar and White compared three frame element formulations (displacement-based, … Continue reading There’s Three, Actually