OpenSees Bean Counting

Based on review invitations, new paper announcements on social media, and Google Scholar citation alerts, I've seen a lot of OpenSees-based journal articles. I'm sure you have as well. With a few exceptions, the journals that house OpenSees-based articles have been the usual suspects in earthquake engineering. But recently, it's felt like the distribution of … Continue reading OpenSees Bean Counting

Wrapper’s Delight

What is the output produced by this analysis? Sure, you can copy and paste the script to get the answer. But that's no fun. Think about the model and analysis. Can you explain what's going on before getting the answer? import openseespy.opensees as ops ops.wipe() ops.model('basic','-ndm',1,'-ndf',1) N = 365 ops.uniaxialMaterial('Elastic',0,1.0) for i in range(N): ops.uniaxialMaterial('Multiplier',i+1,i,1.01) … Continue reading Wrapper’s Delight

Is OpenSees Pythonic?

OpenSeesPy is sometimes criticized for not being "Pythonic". But what does "Pythonic" even mean? And does achieving "Pythonic" status matter? From what I gathered in this blog post, Pythonic code uses the idioms, i.e., the specific syntax and constructs, of Python. That definition is circular--an example from the post better demonstrates the meaning. If you … Continue reading Is OpenSees Pythonic?

Material Testing with White Noise

Pushes, pulls, and cyclic strain histories of increasing magnitude are solid approaches to testing the stress-strain response of material models. But I'm not convinced these tests will hit every code block of a material model implementation. I mean, have you seen all the nested if-statements and uninitialized local variables that went into Concrete23? Although I … Continue reading Material Testing with White Noise

OpenSees Command Line Arguments

While graphical user interfaces are good for general purpose use, the command line remains the most versatile way to run OpenSees and other computer programs. Passing command line arguments to an OpenSees Tcl or Python script is useful when creating standalone applications for building and analyzing specialized models. Both Tcl and Python have constructs similar … Continue reading OpenSees Command Line Arguments

It Hides in Plain Sight

It's no secret that engineers write technical documents in a style that no one would actually speak. Like, if I'm explaining plastic hinge integration to you in person, it would sound nothing like what's written in the journal article. It's difficult to measure the amount of nonsense in technical writing, but qualitatively, you know it … Continue reading It Hides in Plain Sight

Spreader Beam Analysis

Problems involving beams are few and far between in Hibbeler 14th edition Engineering Mechanics: Dynamics. The problems mostly deal with springs, friction, pulleys, and things that rotate. So, Problem 15-3 was a welcome sight. A six foot long beam weighing 5000 lb is lifted from rest to a velocity of 8 ft/sec in 1.5 sec … Continue reading Spreader Beam Analysis

Two Sprung Masses and Some Friction Force

In Problem 13-13 from Hibbeler 14th edition, blocks A and B, of weight 8 lb and 6 lb, respectively, rest on a flat surface. A spring of stiffness 20 lb/ft is placed between the blocks. The blocks are pushed together, compressing the spring 0.2 ft, then the blocks are released to slide along the surface. … Continue reading Two Sprung Masses and Some Friction Force

Centripetal Acceleration

How can you induce element forces without defining loads or straining effects due to thermal expansion, residual stress, initial strain, or differential support motion? Centripetal acceleration! Get a mass revolving in a plane about a fixed point and a force directed radially (toward the center of revolution) is required to keep the mass from flying … Continue reading Centripetal Acceleration