The Pareto Principle, aka the "80/20 Rule", states that 80% of the output is generated by 20% of the input. For example, in any given academic department of engineering, 20% of the faculty generates 80% of the papers, research funding, graduated students, citations, or whatever metric. And 100% of the faculty will tell you they … Continue reading OpenSees Pareto Principles
Author: Michael H. Scott
Element Self-Weight
A question posted the other day in the OpenSees Facebook group asked how to add self-weight to elements. I gave the easy I-can-answer-this-in-under-two-seconds answer of "use the eleLoad command". It turns out the complete answer is not so simple as it depends on the type of element to which you want to apply self-weight. The … Continue reading Element Self-Weight
CyclopSees
I first came to know The Postman as a failed motion picture from the late 1990s. The movie starred Kevin Costner, who also starred in Bull Durham, the blog's most frequently referenced movie. Although I've never watched The Postman (not to be confused with Il Postino), I have read the original novel, written by David … Continue reading CyclopSees
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
Chekhov’s Gun
Applied throughout literature, Chekhov's gun states that if you describe a loaded gun, that gun better go off later in the novel. If the gun is never fired, you are unnecessarily distracting the reader. So, edit the gun out. It does not advance the story. Same idea applies to movies. And journal articles. But academics … Continue reading Chekhov’s Gun
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
OpenSees to JSON
The plain text JSON format is widely used for moving information to and from back end servers in web applications. So I've been learning how to work with JSON for OpenSees Cloud and a couple other projects. JSON is nothing new in the OpenSees universe. Some element and material classes write key-value pairs when the … Continue reading OpenSees to JSON
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
