A previous post showed that, when compared to a couple of brute force approaches, using the sdfResponse command is the most computationally efficient approach to generating an earthquake response spectrum. During an OpenSees Cafe, Dr. Silvia Mazzoni suggested taking a more intelligent approach by "batching" the brute force SDF analyses. Instead of analyzing one oscillator … Continue reading Multi-Threaded SDF Analysis
Bad OpenSees Turkey Jokes
Today is Thanksgiving in the United States. A holiday meant for gratitude that has morphed into a day of eating copious amounts of turkey and other foodstuffs. If you have distant family members at the Thanksgiving dinner table who also use OpenSees, here are some jokes you can tell in order to break the ice. … Continue reading Bad OpenSees Turkey Jokes
I Missed Again
When I come up with "great" exam questions, only a handful of students get the correct answer while the remaining students misunderstand the question. Same thing happens on social media. Prior to Twitter's full-on death spiral, I tweeted a quiz on the MVLEM element, a formulation available in OpenSees for modeling shear walls. Only 5 … Continue reading I Missed Again
Writing that Shines
Not every journal article has groundbreaking technical content. Some articles barely move the needle or don't move the needle at all, while others move the needle backward. As an author, you should know when the manuscript you're about to submit is (might be) groundbreaking as opposed to a needle nudger. Regardless, if the manuscript is … Continue reading Writing that Shines
How to Profile OpenSees
Where does the time in a nonlinear finite element analysis go? For large models, solving equations dominates the analysis time, while for small to moderate models, constitutive models (state determination) dominate. It is impossible to know the relative cost of state determination and solving equations prior to an analysis. Profiling tools can tell you after … Continue reading How to Profile OpenSees
Blogged Higher and Deeper
Although it's been suggested to me, I hesitate to make a book out of blog posts because once a book is published, the content becomes static. I prefer to keep the blog dynamic, piling posts higher and deeper and retaining the ability to update posts, either to correct errors or to keep up with changes … Continue reading Blogged Higher and Deeper
Top 5 Posts
The blog is up to 254 posts. Some good, some bad, and some ugly. In addition to the age of posts, reasons for high or low view counts range from how often I post links on external sites, how nonsensical titles and/or previews deter further reading, or how closely post titles match common internet search … Continue reading Top 5 Posts
Don’t Invert the Matrix
A common issue with linear algebra textbooks is the depiction of $latex {\bf x}={\bf A}^{-1}{\bf b}$ as the solution to the linear system of equations $latex {\bf A}{\bf x}={\bf b}$. Find the inverse of the matrix $latex {\bf A}$, then multiply that inverse with the right-hand side vector, $latex {\bf b}$. Theoretically correct? Yes. Practical? … Continue reading Don’t Invert the Matrix
Single Quotes or Double?
Python, like many other languages, uses single (') and double quotes (") for multi-character strings. This was a bit for me to digest coming from the C++ world where single and double quotes have distinct uses: single quotes for a character and double quotes for strings. Functionally, there's no difference between single and double quotes … Continue reading Single Quotes or Double?
Stop Hogging All the RAM
While writing a previous post on elastic shear beams available in OpenSees, I noticed that the ElasticTimoshenkoBeam3d class stores the element stiffness matrix, along with several other matrices, as private data. As a result, each instance of this class keeps its own copy of several 12x12 matrices for the element response instead of writing to … Continue reading Stop Hogging All the RAM