OpenSees Cloud

OpenSees AMI

The Maximal Broken Example

Original Post - 22 Nov 2024 - Michael H. Scott

Visit Structural Analysis Is Simple on Substack.


When I ask for a minimal working example, I often receive responses that are the opposite of minimal and working, i.e., maximal or broken, in some cases reaching new lows.

The following situations can be categorized as MBEs (maximal broken examples), i.e., not a minimal working example.

1. An Example from Your Journal Article

I don’t want to read your journal article, and neither do you. When you prepared the manuscript, did you read other published journal articles to figure out how to run your OpenSees simulations? No. So, why would you expect anyone else to do the same? And I’ve never seen an analysis that could be reproduced from a journal article. Never. Plus, OpenSees has evolved since you clicked submit in Editorial Manager. Your journal article has not.

2. The GitHub Repository You Use for Research

Kudos for making your research public, but unless you have a folder of minimal working examples or test cases, your repo is probably a tangled web of scripts and dependencies that fuel some stilted workflow. If the README.md file is anything more than “install openseespy”, I’m not going to bother. And if you haven’t updated the repo in five years, odds are the scripts won’t run today.

3. A zip File with Multiple Scripts

A zip file is not minimal. Moving on.

4. An Example not Tested with the Latest OpenSees

Bugs in OpenSees are fixed all the time, and it’s possible your problematic script from version 3.4.0 is no longer problematic with version 3.7.0. Update your version and try your script again. If you are using an older version of OpenSees because that’s the only version where your IDAs of reinforced concrete shear walls with regularized material properties and what not will converge, I can’t help you.

5. An Example that Gives an Error in Only Your (or Someone Else’s) Custom OpenSees

Along the same lines as the previous MBE scenario, but far worse. You know it’s impossible to diagnose an issue when using different code bases, right?



Do the work and make a minimal working example. You might learn something in the process!