Most solid elements in OpenSees don't do body forces very well, if at all. Among elements that have body forces, the implementation and execution are inconsistent. With surface loads, the story is even more convoluted. However, OpenSees is pretty good at dynamics, so all solid elements handle mass density. Yes, the implementations are inconsistent because … Continue reading Do It Your Self-Weight
Category: Linear Analysis
Eigenvalues of the Stiffness Matrix
Students are exposed to eigenvalues and eigenvectors a few times through their structural engineering education. After the math department's obligatory treatment to sophomores with definitions, characteristic polynomials, and toy matrices, two to three years pass before students see eigenanalysis again as first year graduate students: Structural dynamics - find natural modes of vibration of a … Continue reading Eigenvalues of the Stiffness Matrix
How to Use Block2D
Although the mesh commands outlined in previous posts (here and here) are more powerful, the block2D and block3D commands remain useful, especially if you want to use quadrilateral or brick elements. Ed C++ Love based the OpenSees block commands on the meshing functionality in FEAP. So, if you are familiar with FEAP, these commands should … Continue reading How to Use Block2D
Rigid Diaphragm for 2D Models
The rigidDiaphragm command allows you to constrain the motion of multiple secondary nodes to the motion of a primary node, e.g., when simulating rigid floor diaphragms in 3D structural models. But what if you want to enforce rigid diaphragm constraints for a 2D model, e.g., as shown below? Prior to PR #764, you would have … Continue reading Rigid Diaphragm for 2D Models
Element Self-Weight
A question posted the other day in the OpenSees Facebook group asked how to add self-weight to elements. I gave the easy I-can-answer-this-in-under-two-seconds answer of "use the eleLoad command". It turns out the complete answer is not so simple as it depends on the type of element to which you want to apply self-weight. The … Continue reading Element Self-Weight
OpenSees Spy
A previous post on the 'fullGenLapack' eigenvalue solver led me down a rabbit hole of sorting out all the equation solvers (linear and eigen) and equation numberers available in OpenSees. I have yet to emerge from the rabbit hole, but I wanted to show how to create "spy" matrices from OpenSees models. A spy matrix … Continue reading OpenSees Spy
Verifying Will Never Be Easy
A previous post compared the natural periods computed by OpenSees for a relatively simple one-story, one-bay, elastic frame to published ETABS results. Many easy to make modeling choices (mass distribution, rigid joint offsets, relative stiffness, etc.) led to "incorrect" periods. The "correct" modeling choices gave periods from OpenSees that were very close to ETABS--close enough … Continue reading Verifying Will Never Be Easy
The Stiffness Matrix Isn’t Everything
After several deliveries of graduate level courses in linear and nonlinear structural analysis, I have started to think that we over-emphasize the stiffness matrix in linear structural analysis. And this emphasis can lead to conceptual difficulties in nonlinear structural analysis. The steps to a linear analysis are presented as: Form the stiffness matrix Form the … Continue reading The Stiffness Matrix Isn’t Everything
Three-Dimensional Meshing
Two previous posts showed how to use Minjie's meshing functions to create line meshes for beam-column elements and 2D meshes for solid elements. This post will complete the trilogy by showing how to make a 3D mesh for solid elements. The bar shown below is the same model used in the post on 2D meshing. … Continue reading Three-Dimensional Meshing
Line Mesh
The DiscretizeMember function, which dates back many years, was recently superseded by the line mesh command, written by Minjie. In addition to creating boundaries for solid meshes, as shown in this post, you can use line meshes to discretize a frame member (2D or 3D) into beam-column elements--just pass the optional element type and arguments … Continue reading Line Mesh
