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

The Good, the Not So Bad, and the Full General

Just like shopping for a new refrigerator, picking a linear equation solver in OpenSees (via the system command) can lead to paralysis of choice. And while you can consult Consumer Reports for the pros and cons of refrigerators A, B, and C, the only way to figure out the pros and cons of OpenSees solvers … Continue reading The Good, the Not So Bad, and the Full General

Murum, cura te ipsum

OpenSees has its fair share of element implementations that are computationally inefficient. Fortunately, most of those elements are never used. But among elements that are used, SFI-MVLEM is the undisputed champion. Whereas the standard MVLEM element uses a uniaxial material in each fiber, the SFI-MVLEM element accounts for the interaction of axial and shear stress ($latex \sigma_{11}$ … Continue reading Murum, cura te ipsum

Closing the Loop on Direct Assembly

All structural engineering students learn the direct assembly method, where you fix all degrees of freedom (DOFs) in a structural model, then impose a unit value of displacement at and in the direction of the $latex j^{th}$ DOF in order to get the $latex j^{th}$ column of the stiffness matrix from the fixed-end forces of … Continue reading Closing the Loop on Direct Assembly

Most Solvers Can Be Marplots

Have you ever tried to replicate the familiar beam stiffness coefficients $latex 12EI/L^3$, $latex 6EI/L^2$, $latex 4EI/L$, and $latex 2EI/L$ (there's a poem about them here) by imposing unit displacements and rotations at fixed supports? It should be one of the first sanity checks you make when using or developing new structural analysis software. You … Continue reading Most Solvers Can Be Marplots

Handle Your Constraints with Care

Manipulating the nodal equilibrium equations is necessary to enforce constraints between degrees of freedom (DOFs) at two or more nodes in a structural model. These multi-point constraints arise from assumptions of axial and flexural rigidity of frame elements, e.g., rigid diaphragms, and also between two nodes at the same location where some of the DOFs … Continue reading Handle Your Constraints with Care