Legend has it that some published research results based on nonlinear dynamic analysis--incremental dynamic analyses, seismic fragility curves, Monte Carlo simulations, etc.--considered a non-convergent OpenSees model to indicate structural collapse or failure. Let's think about this for a minute. Here is the displacement response in two orthogonal directions at the top of a nearly 50 … Continue reading Non-Convergence Is Not Structural Collapse
Category: Nonlinear Analysis
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
See the Convergence
Surely you have seen norms fly across the screen when running OpenSees with the print flag of the convergence test set to 1. The screen output slows down your analysis significantly, so you should only use print flag equal to 1 when you are trying to diagnose convergence issues. From a Jupyter Notebook. With OpenSees.exe, … Continue reading See the Convergence
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 matrixForm the load … 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
Two Paths You Can Go By
I am confident we can use OpenSees to solve every truss, beam, and frame problem from any statics or structural analysis textbook as well as every single degree-of-freedom and rigid shear frame problem from a structural dynamics textbook. We can also solve any reasonable problem from a finite element textbook. My confidence starts to wane … Continue reading Two Paths You Can Go By
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
Two-Dimensional Meshing
Although the material and element models are there, OpenSees is not well known for solid finite element analysis. Creating a good mesh is key to solid FEA and there aren't many meshing tools implemented in OpenSees. The OG block2D and block3D commands work fine, but you have to manually join or tie adjacent meshes with … Continue reading Two-Dimensional Meshing
Finite Differences
A previous post showed how to compute response sensitivity by the DDM, or direct differentiation method. Comparisons with finite difference calculations verified that the DDM results were correct. In this post, I'll dig a little deeper into finite differences. The advantage of the finite difference method (FDM) is it will work for any model parameter--you … Continue reading Finite Differences