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
Geometric Transformation
OpenSees offers three types of transformations between the basic system and global system for frame (beam-column) elements: Linear - small displacement assumptions for compatibility and equilibrium PDelta - small displacement assumption for compatibility with the $latex P-\Delta$ term included in equilibrium Corotational - large displacement assumption for compatibility and equilibrium Use the geomTransf command to … Continue reading Geometric Transformation
Don’t Delete This Bot
If the new CEO of Twitter comes for the bots, @OpenSeesTweets, the OpenSees Twitter Bot, will go away. So, let's take a moment to reflect on the growth of followers since the bot's inception in December 2019. 439 followers as of today. I occasionally have to update the bot to remove spammy tweets, but it's … Continue reading Don’t Delete This Bot
Verbing OpenSees
OpenSees--a system--is a noun. Nouns are often verbed. For example, "I will conference next week in Chicago." As a verb, "to OpenSees" is to build, analyze, program, or document finite element models in OpenSees. The standard verb tenses of "to OpenSees" are listed below. Present tense Simple present: I OpenSees every day. Present continuous: I … Continue reading Verbing OpenSees
Publish Your Age
I recently hit 40 journal articles for my academic career. You can see the list here. Although 40 is a milestone for your real age, it's meaningless for journal articles. Horns can toot at 100 articles, but not 40. Anyway, I wondered if I will ever publish my real age, i.e., will the two lines … Continue reading Publish Your Age