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

# Negative Feedback Loop

Although it has its proper uses, I'm not a fan of the linear algorithm. I'm even less of a fan of modal damping. However, it's totally reasonable to use these two analysis options together--and if you do, watch out! I'll walk you through a recent encounter with this lethal combination, experienced during a live presentation … Continue reading Negative Feedback Loop

# 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

# OpenSees 12345

In the early 2000s, when the Tcl interpreter was taking shape for OpenSees, Frank used a dummy tag 123456789 to determine if a load pattern had already been defined while parsing the load and sp commands. Here is the 2001 source code for TclModelBuilder.cpp--clearly written by Frank because he does not capitalize anything when he … Continue reading OpenSees 12345

# 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

# Full Fiber Circle

Circular layers of fibers are required for simulating longitudinal reinforcing steel in circular RC columns. Although the layer circ command accommodates fibers along an arc, I have never seen anyone use this command for anything other than a full circle. Some years before the extent of OpenSees GitHub history, I added a default constructor to … Continue reading Full Fiber Circle

# P-M Interaction by the Book

Find any indeterminate beam, frame, or truss problem from a structural analysis textbook, and you can make OpenSees solve it. But sometimes, replicating the basics is not so easy. Take, for instance, an axial-moment (P-M) interaction diagram of reinforced concrete (RC) sections. The typical approach advocated with OpenSees is to use repeated moment-curvature analyses over … Continue reading P-M Interaction by the Book

# Get the Accel Out

In OpenSees, a UniformExcitation pattern is functionally equivalent to a regular load pattern, fitting into the framework of a time-varying scalar load factor and constant reference load vector. The scalar load factor is the input ground acceleration, $latex \ddot{u}_g(t)$, while the reference load vector is $latex {\bf P}_{ref}=-{\bf m}{\boldsymbol \iota}$ where $latex {\bf m}$ is … Continue reading Get the Accel Out

# Rectangular Patches

Defining rectangular patches is one of the more tedious aspects of building a fiber section in OpenSees. Using the 'quad' patch command, you have to define the four corner points (I, J, K, and L) in counter-clockwise order from I to L around the patch. If you go clockwise, the fiber areas will be negative, … Continue reading Rectangular Patches