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
Category: Linear Analysis
Inside the Equation Numbers
In a previous post, I showed the effect of equation numbering on matrix bandwidth for a large model. And in another previous post, I showed how to determine the sequence of nodes visited by the equation numberers in OpenSees. This post is the result of those posts going on a road trip to shed more … Continue reading Inside the Equation Numbers
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
Remote Control
An OpenSees question posted online mentioned numerical issues when attempting to load a structural model via a “remote node” connected to the main structure by a rigid link. I quipped, “Why don’t you use an equivalent force-couple?” That response did not garner a reply, but the original question brought up a common issue with the … Continue reading Remote Control
Empty Spaces
Recently, a large OpenSees model was posted in an online forum with the poster asking why the analysis took longer than expected. Short answer: Not only did using a heavy-duty recorder that writes all node, element, and section data take up a big chunk of time, but using OpenSees's default linear equation solver, ProfileSPD, also … Continue reading Empty Spaces
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
Combined Loadings
I talked with a graduate student from Mechanical Engineering the other day. The student is learning OpenSees and successfully analyzed a truss. No, not that truss from Example 1.1. After showing me the truss results, the student said something along the lines of “Deflections are fine and OpenSees does a good job, but I really … Continue reading Combined Loadings
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
