# 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

# 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