Incompetence, Not Malice

"Never attribute to malice that which can be explained by incompetence" is a form of Hanlan's razor, an aphorism that explains many actions in academia and elsewhere. For example, we often perceive omissions of important details in published work as intentional acts to prevent reproduction of the research. In some cases, this is true, while … Continue reading Incompetence, Not Malice

The Fiber Content of OpenSees

OpenSees is pretty well known for its fiber sections. Although fiber sections are not unique to OpenSees, where else can you choose from 23 uniaxial concrete models and 18 uniaxial steel models to define a reinforced concrete section? There's also a handful of multiaxial material models that capture the interaction of axial and shear stresses … Continue reading The Fiber Content of OpenSees

OpenSees Shells by the Seashore

Other than state-of-the-art material and geometrically nonlinear frame element formulations, it's fair to say OpenSees is not known for its breadth of structural finite elements like quads, bricks, and shells. There are solid elements for geotechnical applications and fluid elements for fluid-structure interaction via the PFEM, but what's the story on shell elements in OpenSees? … Continue reading OpenSees Shells by the Seashore

Unretiring the String Class

If you've compiled the OpenSees source code, you may have noticed the SRC/string directory, whose two files, G3string.h and G3string.cpp, implement character strings as first-class objects, complete with overloaded operators and deep copies. G3string is based on the String class, which I used for programming projects in my undergraduate computer science courses. In the G3string.h … Continue reading Unretiring the String Class