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
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 Emperors of OpenSees
A drabble is a piece of micro-fiction that is exactly 100 words long. Drabble can also mean to make dirty by dragging through mud or to fish with a long line, i.e., to troll. Herewith, I present my first drabble, The Emperors of OpenSees. Self-ordained during a void in the before time, the Emperors of … Continue reading The Emperors of OpenSees
Buckling of Restrained Plates
The plate buckling analysis in a previous post demonstrated flexural buckling–definitely minimal and definitely necessary if you’re going to tackle more complex cases of plate buckling. Having passed the minimal example, Mark Denavit, a frequent collaborator, suggested I take a look at buckling of plates that are restrained on all four sides. Mark always has good … Continue reading Buckling of Restrained Plates
Minimal Plate Buckling Example
OpenSees is not built to perform linear buckling analysis. But a few years ago, Luigi Caglio shared a workaround described in this post. In the post, the example application is a frame model, but there’s no reason the approach cannot work for shell models. So, here’s a minimal working example. Consider a rectangular steel plate with simple boundary … Continue reading Minimal Plate Buckling Example
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
Egg-Centric OpenSees Jokes
As far as I know, OpenSees has no Easter eggs. But perhaps we should hide a few, e.g., to congratulate users who reach exactly zero for the norm of the residual or to deride those who use more than two integration points in a dispBeamColumn element. While you're waiting for OpenSees Easter eggs to be … Continue reading Egg-Centric OpenSees Jokes
Statically Equivalent Loads
When it comes to numerical integration, OpenSees users either pay too much, or too little, attention. Me? I pay way too much attention to the topic. How else did OpenSees end up with so many integration methods for frame elements? But numerical integration is one of the concepts that users of OpenSees, or any other finite element analysis software, must understand. … Continue reading Statically Equivalent Loads
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
