More Than One Way to Heat Up a Truss

OpenSees can solve every reasonable problem from any structural analysis textbook. But I nearly had a meltdown over a simple truss problem because truss elements in OpenSees do not directly support thermal loading. Consider Example 6.17, shown below, from J.C. Smith’s Structural Analysis. All members of the truss have E=29000 ksi, A=10 inch2, and α=6.5e-6 (coefficient of thermal expansion, … Continue reading More Than One Way to Heat Up a Truss

Stop Cargo Culting BandGeneral and Plain Numberer

In the early days of OpenSees, perhaps in its G3 infancy, an example Tcl script used BandGeneral for the system and Plain for the numberer. numberer Plain system BandGeneral Who created the script, or why they chose those analysis options, is unimportant now–it could have been me for all I know. But this pair of … Continue reading Stop Cargo Culting BandGeneral and Plain Numberer

Reverse Engineering the Equation Numberer

In OpenSees (and any other finite element software), equation numbering is a quiet, behind the scenes analysis option that users do not have to pay any mind. No matter how a user numbers the nodes in their model, e.g., for bookkeeping or from a mesh generator, the equation numberer will clean up any messes. But … Continue reading Reverse Engineering the Equation Numberer

Daisy Chains and Gaffes

When analyzing rigid bodies with multi-point constraints, one potential problem with the Transformation constraint handler is the sequencing of primary and secondary, or retained and constrained, nodes across multiple constraints. Using OpenSees to solve Problem 9.39 from J.C. Smith’s Structural Analysis is a perfect opportunity to show how defining constraints in series, i.e., daisy chaining the constraints, can knock … Continue reading Daisy Chains and Gaffes

Bring Your Own Matrix

Getting a stiffness matrix out of OpenSees is straightforward using printA(). But what about getting a stiffness matrix into OpenSees? This is the situation I faced recently testing BennySparse with linear systems from the SuiteSparse Matrix Collection. I had no way of building an OpenSees model that could recreate those matrices. After some trial and error, I found that … Continue reading Bring Your Own Matrix

Choose Your Own Topology

I've been working on a sparse linear equation solver. Not anything new, just implementing the methods presented by Timothy Davis in Direct Methods for Sparse Linear Systems. Why? Because I want to learn how sparse matrix solvers work. So for the sake of discussion, let's call my solver BennySparse. Aside from implementing a standalone sparse … Continue reading Choose Your Own Topology