OpenSees Cloud
OpenSees AMI
Fiber Section Centroids
Original Post - 24 Jan 2021 - Michael H. Scott
Visit Structural Analysis Is Simple on Substack.
If you define a fiber-discretized cross section in OpenSees using section coordinate systems A and B shown below, will you get the same response when you apply axial load and bending moments to the sections?
The answer is yes. You will get the same response from sections A and B. The fiber sections compute the geometric centroid (based on area, not on area and material stiffness) and use this as the point of axial load application and reference axes for curvature in frame elements. The centroid computation is done automatically–it is not an option.
A majority of users are content with sections A and B giving the same response. But what if you have an unsymmetric section, e.g., a composite beam or an eccentrically loaded angle, where you want to control the reference axes? You’ll be out of luck with OpenSees.
Until now. The option to not base section computations on the geometric
centroid was added in PR #507. Just add the -noCentroid
option to the
fiber section definition. This option works for 2D and 3D fiber
sections, as well as the 2D and 3D Thermal and NDFiber versions, in
Python and Tcl.
ops.uniaxialMaterial('Elastic',1,29000)
d = 10 # Section depth
b = 5 # Section width
Nfy = 8 # Fibers in y-direction
Nfz = 4 # Fibers in z-direction
# Section A
ops.section('Fiber',2)
ops.patch('rect',1,Nfy,Nfz,-d/2,-b/2,d/2,b/2)
# Section B
ops.section('Fiber',3,'-noCentroid')
ops.patch('rect',1,Nfy,Nfz,0,0,d,b)
Applying the same axial load and moment to sections A and B will give
different section deformations when using the -noCentroid
option.
However, we can apply an equivalent force-couple system from section A
to section B (or vice versa) in order to get the same strain profile.
You can verify that the strain at the top and bottom face is the same
for section A and the equivalent section B. I used zeroLengthSection
elements for this verification, but you can obtain the same results with
beam-column elements. The ability to control the section reference axes
was long overdue in OpenSees.