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.
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.
The sensitivity of the applied moment with respect to concrete and steel strengths are shown below.
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.
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.
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.
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.