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

Nonlinear Sections, Elastic Elements

I often make seemingly minor tweaks to OpenSees--tweaks that don't usually make it into the documentation, but that in some cases could be quite useful. For example, did you know that you can create an elasticBeamColumn element by passing a section tag instead of directly specifying material and section properties--E, A, and Iz for 2D, … Continue reading Nonlinear Sections, Elastic Elements

Shear Verse, Same as the First

In the same vein as a previous post, this post will show a basic comparison of material nonlinear displacement-based and force-based formulations with axial-flexure-shear interaction in frame elements. The timoshenkoBeamColumn element interpolates constant shear deformation along its length, along with constant axial deformation and linear curvature. Two-point Gauss-Legendre integration over the element is sufficient to … Continue reading Shear Verse, Same as the First

Elastic Shear Beams in OpenSees

Shear deformations in slender beams are generally not significant compared to flexural deformations. But shear deformation are important in deep beams and short walls, and flexure-shear interaction may be important in the material nonlinear range of response, regardless of aspect ratio. Enough of the perfunctory, non-committal language--you can find that in the latest issue of … Continue reading Elastic Shear Beams in OpenSees

A Simple Solution to a Complicated Equivalent

A previous post posited on the equivalence of discrete flexural springs (moment-rotation) with integration of continuous moment-curvature response. To find the answer, we can use the principle of virtual forces (PVF) and numerical integration of the internal virtual work: $latex {\displaystyle \int_0^L \kappa(x)m(x)\: dx \approx \sum_{i=1}^N \kappa(x_i) m(x_i) w_i}$ where $latex m(x)$ is the "virtual" … Continue reading A Simple Solution to a Complicated Equivalent

A Solution, Just Not The Solution

Force-based elements satisfy equilibrium in strong form, even with member loads. However, this does not mean force-based elements always get the exact solution. Consider a simple prismatic, linear-elastic beam with a point load at mid-span. Using a single force-based element with a single point load applied to the element using the eleLoad command. E = … Continue reading A Solution, Just Not The Solution

Switching Sides

Used for flexible supports and flexible connections, among other things, zero length elements are perhaps the most versatile modeling tools available in OpenSees. One of the confusing things about zero length elements is how to properly define asymmetric response. For example, with a bridge abutment, you want to ensure the zero length element correctly interprets … Continue reading Switching Sides

A Complicated Equivalent

Whether you use closed-form or numerical integration, the deflection at the free end of a laterally loaded linear-elastic, prismatic column is known to be $latex PL^3/(3EI)$. This result is easily verified in OpenSees with either an elasticBeamColumn element or a material nonlinear element with elastic sections. Now suppose we philosophized a bit then posited the … Continue reading A Complicated Equivalent

Fuzzy Zero Length Logic

There's a few interpretations floating around regarding the length--real or implied--of zero length elements in OpenSees. So, I made a Twitter poll to assess popular opinion. https://twitter.com/mikusscott/status/1516085441895624705 Despite being an "easy" question, only 50% of respondents chose the correct answer. Like "When was the War of 1812?", the question gives it away--zero length elements have … Continue reading Fuzzy Zero Length Logic