How to Find the Neutral Axis

There is no recorder option in OpenSees to get the location of the neutral axis in a fiber section. Instead, you have to post-process the section deformations. The strain at any point in a 2D fiber section is $latex \varepsilon=\varepsilon_a - y\kappa_z$ where $latex \varepsilon_a$ is the section axial deformation, $latex \kappa_z$ is the section … Continue reading How to Find the Neutral Axis

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

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

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

Plane Sections Do Remain Plane

Here's another conversation I've had with a concerned user (CU) of OpenSees, not necessarily the same CU that was worried about OpenSees crashing due to non-convergence: CU: "Do plane sections remain plane in the material nonlinear range of response?"PD: "Yes."CU: "What about with force-based frame elements?"PD: "Yes."CU: "How is that possible?"PD: "Because there's no other … Continue reading Plane Sections Do Remain Plane

How to Record Section Curvature

I've seen recently a few people compute curvature for an OpenSees fiber section by dividing the difference between top and bottom uniaxial fiber strains by the distance between the fibers. While there's nothing technically wrong with this approach, it's a lot of work and it's error prone. In addition, this approach implies that using a … Continue reading How to Record Section Curvature

Something, Something, Something Fiber

Two recent inquires asked why model response using frame elements with elastic fiber sections, i.e., sections with fibers whose stress-strain response is $latex \sigma=E\varepsilon$, differs from the response with elastic elements, i.e., defined by E, A, Iz, and Iy either with elasticBeamColumn elements or nonlinear elements with elastic sections. I've touched on this subject a … Continue reading Something, Something, Something Fiber

Two Fibers Explain So Much

In a previous post, I asked how well we can capture the moment-curvature response of a rectangular section with EPP material using different integration methods with two fibers. For flexural response, two is the minimum number of fibers necessary to satisfy section equilibrium--one fiber for tension, the other fiber for compression. The previous post showed … Continue reading Two Fibers Explain So Much

Slender Things

Using fiber sections and the corotational geometric transformation is an easy way to simulate combined material and geometric nonlinearity in column members. A previous post examined this approach for steel columns where residual stresses play an important role in the axial load capacity. In this post, I will show the corotational mesh approach for non-sway … Continue reading Slender Things

How to Record Fiber Response

Recording the response of a single fiber in a fiber section is a common ask. You will need to use an Element recorder, but what you can record in each fiber is defined in the UniaxialMaterial::setResponse() method. The most common option is 'stressStrain', which gives the fiber stress-strain response history. After setResponse() drills down to … Continue reading How to Record Fiber Response