Double negatives are frowned upon in English, but are acceptable in other languages such as Spanish. For example, "No hay nada" is perfectly fine but may sound odd to native English speakers. Along similar lines, I recently came across some OpenSees code that looked something like this: const int N = 20; double Fx[N]; // … Continue reading Something Like a Double Negative
Author: Michael H. Scott
You Never Forget
My first journal article was not without some minor drama. Another group of researchers was also in pursuit of the direct differentiation method (DDM) formulation for force-based frame elements. Mutually aware of the parallel efforts, one of those researchers went so far as to call me on a public landline in Davis Hall with a … Continue reading You Never Forget
How to Apply a Pulse Ground Motion
In an OpenSees analysis, not all earthquake excitations have to come from recorded ground motions. In some cases, you just want to apply a full or half sine pulse. Sure, you can use Matlab or Python to create a ground motion file with discrete values that match your desired sine pulse. But that's kinda cumbersome. … Continue reading How to Apply a Pulse Ground Motion
Will Write for OpenSees
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
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
