How to Profile an OpenSeesPy Analysis

Python has a couple of profiling libraries--pyinstrument and cProfile--for finding out where all the time goes when you run a script. But, as far as I can tell, these libraries only tell you that the ops.analyze() command is called, not what happens therein. What you really want is to drill down into the state determinations … Continue reading How to Profile an OpenSeesPy Analysis

Invertible Does Not Mean Stable

That you can invert a stiffness matrix does not tell you everything about the numerical stability of a structural model built in OpenSees or any other finite element software. In fact, no finite element software actually forms the inverse of the stiffness matrix, but let's go with the misleading terminology anyway. Consider the beam shown … Continue reading Invertible Does Not Mean Stable

Long Term Column Loading

Practically all analyses of reinforced concrete columns in OpenSees assume the loading is short term--concrete as strong as it was at 28 days out of the hopper. Depending on what you're doing, not accounting for long term load effects, i.e., concrete creep and shrinkage, may not be a big deal. But the effects of creep … Continue reading Long Term Column Loading

Dangling Recorders

Because I don't perform very large or time-consuming OpenSees analyses, I use recorders rather infrequently, instead preferring commands like nodeDisp and eleResponse. An issue with node and element recorders is they can segmentation fault after the node or element to which they point is removed from a model--a common scenario for progressive collapse simulations. A … Continue reading Dangling Recorders