A Lovely Little Mystery

Most comments in the OpenSees source code convey the purpose of an if-statement, loop, function call, etc. Other comments convey frustration with the author's implementation choices. I have addressed and/or deleted the gentle yet passive aggressive comments Frank left for me in the various places of OpenSees that I have touched. So, while making some … Continue reading A Lovely Little Mystery

Force-Based Element Moment Release

The common approach to adding a moment release at the end of a force-based frame element is to define an extra node then use the equalDOF command to constrain all but the released rotational DOFs. Although this approach is cumbersome, it is fine as long as the element lies within a global plane (X-Y, Y-Z, … Continue reading Force-Based Element Moment Release

OpenSeesPy List Comprehensions

OpenSees was always meant to be an API and you can use various helper functions like ops.eleResponse() and ops.nodeDisp() to get selected response quantities. You will find, however, that the values returned by these commands are not always congruent with what you want. In many cases, Python list comprehensions give an easy one-liner for morphing … Continue reading OpenSeesPy List Comprehensions

The Basic Natural Kernel in a Corotating Frame of Reference

Frame elements in OpenSees are formulated in a basic, or natural, system that removes rigid body displacement modes from the element displacement field, leaving only the deformational modes. The basic forces that correspond to the deformational modes depend on the element force-deformation relationship while the remaining local forces are found from rigid body equilibrium. The … Continue reading The Basic Natural Kernel in a Corotating Frame of Reference

Unrolling the Four Node Quad

The FourNodeQuad was one of the first, if not the first, solid elements in OpenSees. Despite the element's mediocre implementation, the coding style was copied by others into subsequent solid element implementations. Fortunately, before that copying happened, I revised the implementation to be more computationally efficient--and I was kind enough to leave the original author's … Continue reading Unrolling the Four Node Quad