Pathological Convergence

Convergence of a solution algorithm typically means your model satisfies equilibrium and compatibility for the current applied loads and any nonlinear response. But there are pathological cases where the algorithm converges while the model remains in a state that violates equilibrium or compatibility. A simple case (brought to my attention by Chen Fei) involves a … Continue reading Pathological Convergence

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

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

Is It Close Enough?

The locations and weights for Gauss-Lobatto beam integration, the de facto beam integration for force-based elements, are hard-coded in the OpenSees source code. For most cases in the LobattoBeamIntegration class, the locations and weights are written to only ten significant figures instead of 16 or more. Although I am certain that leaving six sig-figs on … Continue reading Is It Close Enough?

Could Not Invert Element Flexibility

Due to inversion of section stiffness to flexibility, then inversion of element flexibility to stiffness, the force-based frame element implementation in OpenSees is finicky, to say the least. A common error message spawned from the force-based element is "could not invert flexibility..." You will see the same message many times, but, ultimately, you will get … Continue reading Could Not Invert Element Flexibility

Shutting Off the Containment Unit

If you've used OpenSees--even if you're a geotech--you've used the force-based element. When Remo implemented the force-based element, it was the only material nonlinear frame element available in OpenSees (G3 at the time); thus, the original name nonlinearBeamColumn. Only after a standard displacement-based frame element (dispBeamColumn) was added did we change the name from nonlinearBeamColumn … Continue reading Shutting Off the Containment Unit

A Nod to Backward Compatibility

I didn't want to do it, but I imagined an OpenSees user somewhere out there converting OpenSees Tcl scripts to OpenSeesPy--either manually line by line or using a converter script--and ending up with lines of code that look something like this: ops.section('Fiber',5) ops.patch(...) ops.layer(...) # tag I J secI lpI secJ lpJ E A I … Continue reading A Nod to Backward Compatibility