Rotated Local Axes

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

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

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