Will Write for Food, a popular book in the food blogging world, is a play on the canonical "Will Work for Food" signs that panhandlers display at busy intersections. Although the food blogging world is over saturated, the OpenSees blogging world is not. Will I OpenSees for food? The answer to that question is open … Continue reading Will Write for OpenSees
Author: Michael H. Scott
Beware the Em Dash
Out of a rational fear of making a transcription error, no one re-types what they read in a web browser. Instead, they highlight a line or two to initiate the copy-paste-modify sequence. And somewhere in the annals of OpenSees history, an em dash appeared in the recorder commands of a Tcl example or documentation. After … Continue reading Beware the Em Dash
Minimal DDM Examples
Although it was the subject of my first journal article and has been a welcome diversion since, other than one post, the direct differentiation method (DDM) has not seen much action on the blog. With the DDM, you can compute accurate and efficient derivatives of the structural response with respect to various model and load … Continue reading Minimal DDM Examples
Converging to Something
Is it better to have converged and lost than never to have converged at all? The displacement-based and force-based frame elements are both distributed plasticity formulations--just one is way better at simulating the spread of plasticity than the other. Despite this fairly well known fact, I still see people use four, five, six, or more … Continue reading Converging to Something
Minimal GimmeMCK Example
With a title based on a famous ZZ Top song, Gimme All Your Damping, All Your Mass and Stiffness Too is among the most viewed posts on the blog. The post describes a transient integrator, GimmeMCK, that allows you to extract the damping matrix, or more generally any linear combination of mass, damping, and stiffness, from … Continue reading Minimal GimmeMCK Example
Silence Is Golden
Perhaps the #1 OpenSees complaint of all time is that recorder files have incomplete data--in some cases terminating midline, several time steps before the end of an otherwise successful analysis. For example, the last three lines of a recorder file from a 30 second transient analysis may look something like below. 28.94 1.2433 -0.016987 28.96 … Continue reading Silence Is Golden
Gotta Catch ‘Em All
Python has built-in Exception types for dealing with various run-time errors. You've probably seen a few Exceptions like ModuleNotFoundError if you had issues installing OpenSeesPy or KeyboardInterrupt when you have used Ctrl+C to get your script out of an infinite loop. A common Exception encountered within a script is divide by zero, in which case … Continue reading Gotta Catch ‘Em All
The Three Node Quad
Depending on your experience with finite elements, this post will either be totally obvious or it will blow your mind. The standard bilinear, isoparametric four node quad element degenerates to a three node constant strain triangle when you assign two consecutive element nodes to the same location. This fun fact is due to the math, … Continue reading The Three Node Quad
Hidden Fees
Helper functions are often implemented as private methods in a class. For example, here is a private cross product function in an Element class of OpenSees. Vector CadillacBeamColumn3d::cross(Vector v1, Vector v2){ Vector v3(3); v3(0) = v1(1)*v2(2)-v1(2)*v2(1); v3(1) = v2(0)*v1(2)-v1(0)*v2(2); v3(2) = v1(0)*v2(1)-v1(1)*v2(0); return v3; } Note that the class name has been changed and other … Continue reading Hidden Fees
Transformation Cross-Training
Athletes often cross-train in secondary activities in order to improve performance in their primary sport. For example, football players may practice ballet in order to improve their flexibility and endurance. Using OpenSees, you practically have to be a mathlete to understand the geometric transformation in three dimensions. But instead of fumbling your way through space … Continue reading Transformation Cross-Training
