OpenSeesing through the SeismoStruct Verification Report (v2025), I expected smooth sailing across Chapter 2, Comparison with Independent Hand-Calcs, where “hand-calcs” means SAP2000 analysis results. But light storm clouds set in on Example 2, Rotated Local Axes. The model is a W12x106 cantilever rotated 30 degrees about its longitudinal axis. A uniform distributed load (roughly the member self-weight) is … Continue reading Rotated Local Axes
Category: Element Formulations
Distributed Moments
I have often posited that we can use OpenSees to solve every reasonable problem from any textbook on structural analysis, dynamics, or mechanics. I even put together a few posts, e.g., here and here, on how OpenSees can solve rigid body dynamics problems, the ones that torment every civil engineering sophomore. But a seemingly easy structural analysis problem that OpenSees … Continue reading Distributed Moments
How to Apply Surface Loads
Applying surface loads (pressure loads) to solid and shell elements in OpenSees is difficult. The typical approach is to use equivalent nodal loads, but that's intractable for anything beyond simple meshes. Do you want to calculate equivalent nodal loads (in your script, after the model is defined) for a triangulated mesh? Yeah, me neither. It … Continue reading How to Apply Surface Loads
Counting Flops
When I was an undergraduate at Pine State University, all engineering freshmen had to take a programming course. We could pick between Fortran, Pascal, and C++. From what I recall, most civil and mechanical engineering students took Fortran because that's how you crunch numbers. I chose C++ and liked it so much I willingly took … Continue reading Counting Flops
The Mechanically Separated Wall
The MVLEM element (and its SFI-MVLEM and E-SFI-MVLEM cousins) has a curious 3D implementation in OpenSees. In plane, the element is a two node link with a fiber section and some rigid beams while out of plane the element is a linear-elastic plate. The mechanics of the in-plane response are separate from the mechanics of … Continue reading The Mechanically Separated Wall
Apples and Oranges
Good articles on finite element formulations combine accessible theory with reproducible examples. One such article, Alemdar and White (2005), balances theory and examples for distributed plasticity frame element formulations quite well. I never did more than skim the article and give indirect, second hand citations over the years. So, when I recently rolled up my sleeves … Continue reading Apples and Oranges
Section Warping Analysis
Loading a ZeroLengthSection element is the easiest approach to compute the moment-curvature and shear force-shear deformation response of fiber sections in OpenSees. However, we cannot do a section warping analysis with a zero length element like we can with non-warping sections--at least not without modifying the ZeroLengthSection element to handle seven DOFs per node. That source code modification is … Continue reading Section Warping Analysis
One Is All You Need
It is fairly well known that you can use a single force-based element to simulate the material nonlinear response of a frame member. Likewise, using a corotational mesh of displacement-based elements is an effective approach to simulate combined material and geometric nonlinearity. A previous post looked at geometric nonlinearity with linear-elastic response in a single … Continue reading One Is All You Need
Two Node Link’s Awakening
The twoNodeLink, implemented by Andreas Schellenberg, is one of the lesser utilized general purpose elements in OpenSees. In simple terms, the twoNodeLink element is a zeroLength element with length. And the element is not dis-similar to the link elements you will find in SAP. Like the zeroLength element, the twoNodeLink element uses uncoupled uniaxial materials to define force-deformation response between two nodes where the deformation … Continue reading Two Node Link’s Awakening
Getting the Digits
In a recent post, I pointed out that the LobattoBeamIntegration class uses only ten, instead of 16, significant figures for the locations and weights of the integration points. Those six missing digits made for a perfectly fine demonstration of how to use the isclose function for verification. But, in the bigger picture, omitting six significant … Continue reading Getting the Digits
