OpenSees Cloud

OpenSees AMI

Section Integration

Original Post - 17 Nov 2023 - Michael H. Scott

Visit Structural Analysis Is Simple on Substack.


If we can use procedures in Tcl or Python to lay out fiber patches and layers for standard section types, e.g., doubly-reinforced RC sections and wide flange steel sections, then why do we need the SectionIntegration class?

You cannot say that it is not useful to have commands that define fibers in terms of basic inputs, e.g., the RCSection2d implementation for a reinforced concrete section with core and cover concrete, and steel on all four sides.

RC section fiber discretization

The input command is shown below with documentation here.

ops.section('RCSection2d',tag,core,cover,steel,h,b,cover,Atop,Abot,Aside,Nfcore,Nfcover,Nfs)

Note that Nfs is the number of steel fibers on any one side of the section, e.g., Nfs=3 in the figure above. In addition, you can set Aside=0 to get more beam-like reinforcement

This approach is less error prone than defining five patches (four cover, one core) and three layers. Because the section is defined for bending about one axis, you can get away with three patches and three individual steel fibers, and thus fewer overall fibers, by collapsing the fiber z-coordinates to zero and combining areas of fibers with the same material tag and y-coordinate.

Like Burger King, you can have it your way with OpenSees. Define your own functions to define the cover from the exterior to the bar surface instead of to the bar center, to have different numbers of bars in the top and bottom layers of steel, to subtract out concrete areas covered by steel, or whatever you want.

The real reason we have the SectionIntegration class is for the direct differentiation method (DDM). To compute DDM response sensitivity with respect to material strength, e.g., the yield strength of a steel fiber or compressive strength of a concrete fiber, is straightforward when using patches and layers.

But computing DDM response sensitivity with respect to section dimensions, bar areas, cover, etc. is not possible if all you have is patches and layers. The mapping of section dimensions to fiber areas and locations is lost when going from a script with patches and layers to the C++ core of OpenSees. But we can hang on to that geometric information when using SectionIntegration objects.

Consider a square (h=b=24 inch) reinforced concrete section with f’c=4 ksi concrete, fy=60 ksi longitudinal steel (EPP), and 2.5 inch cover (as defined above). The section has eight longitudinal reinforcing bars, each with area 0.79 in2. A constant compressive axial load of 20% the gross capacity is applied to the section. Confinement is not taken into account.

The moment-curvature response of the section, obtained using a zeroLengthSection element, Concrete01, EPP steel, and displacement control putting the top of the section into compression, is shown below.

Moment-curvature response

The sensitivity of the applied moment with respect to concrete and steel strengths are shown below.

Sensitivity wrt material strengths

As expected, the sensitivity with respect to steel strength is zero prior to steel yield. Also, the concrete strength become more important after the section reaches its peak flexural strength.

Next, sensitivity of the applied moment to the overall section dimensions is shown below.

Sensitivity wrt section dimensions

As expected, the section depth, h, has more influence on the flexural strength; however, after the section reaches its peak strength, the section width, b, becomes more important.

The next plot shows the sensitivity of the flexural strength to the bar areas in the top and bottom layers of steel.

Sensitivity wrt steel areas

The tension steel (bottom) starts out with greater influence on the flexural strength, then the compression steel (top) takes over.

And finally, the last plot shows the sensitivity of the flexural strength to the bar areas of the “side” reinforcement and the cover distance.

Sensitivity wrt cover distance

Neither of these parameters has a significant influence on the flexural strength. Due to how the cover parameter is defined for the section geometry, an increase in cover reduces the flexural strength because the steel moment arm reduces.

For all parameters, the trends in sensitivity shed light on the section response, as the section goes from cracking, to yielding, to peak strength, and finally post-peak response. All of these insights are facilitated by implementations of the SectionIntegration class.