As = 0.60; # area of no. 7 bars # some variables derived from the parameters y1 = colDepth/2.0 z1 = colWidth/2.0 ops.section("Fiber", 1) # Create the concrete core fibers ops.patch("rect", 1, 10, 1, cover-y1, cover-z1, y1-cover, z1-cover) # Create the concrete cover fibers (top, bottom, left, right) ops.patch("rect", 2, 10, 1, -y1, z1-cover, y1, z1) ops.patch("rect", 2, 10, 1, -y1, -z1, y1, cover-z1) ops.patch("rect", 2, 2, 1, -y1, cover-z1, cover-y1, z1-cover) ops.patch("rect", 2, 2, 1, y1-cover, cover-z1, y1, z1-cover) # Create the reinforcing fibers (left, middle, right) ops.layer("straight", 3, 3, As, y1-cover, z1-cover, y1-cover, cover-z1) ops.layer("straight", 3, 2, As, 0.0, z1-cover, 0.0, cover-z1) ops.layer("straight", 3, 3, As, cover-y1, z1-cover, cover-y1, cover-z1) # define beam integration np = 5; # number of integration points along length of element ops.beamIntegration("Lobatto", 1, 1, np) # Define column elements # ---------------------- # Geometry of column elements # tag ops.geomTransf("PDelta", 1) # Create the coulumns using Beam-column elements # tag ndI ndJ transfTag integrationTag eleType = "forceBeamColumn"
E = 30000.0; # Young's modulus # tag fy E0 b ops.uniaxialMaterial("Steel01", 3, fy, E, 0.015) # Define cross-section for nonlinear columns # ------------------------------------------ # Interior column section ops.section("Fiber", 1) # mat nfIJ nfJK yI zI yJ zJ yK zK yL zL ops.patch("quad", 2, 1, 12, -11.5, 10.0, -11.5, -10.0, 11.5, -10.0, 11.5, 10.0) ops.patch("quad", 1, 1, 14, -13.5, -10.0, -13.5, -12.0, 13.5, -12.0, 13.5, -10.0) ops.patch("quad", 1, 1, 14, -13.5, 12.0, -13.5, 10.0, 13.5, 10.0, 13.5, 12.0) ops.patch("quad", 1, 1, 2, -13.5, 10.0, -13.5, -10.0, -11.5, -10.0, -11.5, 10.0) ops.patch("quad", 1, 1, 2, 11.5, 10.0, 11.5, -10.0, 13.5, -10.0, 13.5, 10.0) # mat nBars area yI zI yF zF ops.layer("straight", 3, 6, 1.56, -10.5, 9.0, -10.5, -9.0) ops.layer("straight", 3, 6, 1.56, 10.5, 9.0, 10.5, -9.0) # define beam integration np = 4; # number of integration points along length of element ops.beamIntegration("Lobatto", 1, 1, np) # Exterior column section ops.section("Fiber", 2) ops.patch("quad", 2, 1, 10, -10.0, 10.0, -10.0, -10.0, 10.0, -10.0, 10.0, 10.0) ops.patch("quad", 1, 1, 12, -12.0, -10.0, -12.0, -12.0, 12.0, -12.0, 12.0, -10.0) ops.patch("quad", 1, 1, 12, -12.0, 12.0, -12.0, 10.0, 12.0, 10.0, 12.0, 12.0) ops.patch("quad", 1, 1, 2, -12.0, 10.0, -12.0, -10.0, -10.0, -10.0, -10.0, 10.0) ops.patch("quad", 1, 1, 2, 10.0, 10.0, 10.0, -10.0, 12.0, -10.0, 12.0, 10.0) ops.layer("straight", 3, 6, 0.79, -9.0, 9.0, -9.0, -9.0) ops.layer("straight", 3, 6, 0.79, 9.0, 9.0, 9.0, -9.0) # define beam integration
# area of no. 7 bars # some variables derived from the parameters y1 = colDepth / 2.0 z1 = colWidth / 2.0 ops.section("Fiber", 1) # Create the concrete core fibers ops.patch("rect", 1, 10, 1, cover - y1, cover - z1, y1 - cover, z1 - cover) # Create the concrete cover fibers (top, bottom, left, right) ops.patch("rect", 2, 10, 1, -y1, z1 - cover, y1, z1) ops.patch("rect", 2, 10, 1, -y1, -z1, y1, cover - z1) ops.patch("rect", 2, 2, 1, -y1, cover - z1, cover - y1, z1 - cover) ops.patch("rect", 2, 2, 1, y1 - cover, cover - z1, y1, z1 - cover) # Create the reinforcing fibers (left, middle, right) ops.layer("straight", 3, 3, As, y1 - cover, z1 - cover, y1 - cover, cover - z1) ops.layer("straight", 3, 2, As, 0.0, z1 - cover, 0.0, cover - z1) ops.layer("straight", 3, 3, As, cover - y1, z1 - cover, cover - y1, cover - z1) # Estimate yield curvature # (Assuming no axial load and only top and bottom steel) d = colDepth - cover # d -- from cover to rebar epsy = fy / E # steel yield strain Ky = epsy / (0.7 * d) # Print estimate to standard output print("Estimated yield curvature: ", Ky) # Set axial load
ops.uniaxialMaterial("Steel01", 3, fy, E, 0.015) # Define cross-section for nonlinear columns # ------------------------------------------ # Interior column section ops.section("Fiber", 1) # mat nfIJ nfJK yI zI yJ zJ yK zK yL zL ops.patch("quad", 2, 1, 12, -11.5, 10.0, -11.5, -10.0, 11.5, -10.0, 11.5, 10.0) ops.patch("quad", 1, 1, 14, -13.5, -10.0, -13.5, -12.0, 13.5, -12.0, 13.5, -10.0) ops.patch("quad", 1, 1, 14, -13.5, 12.0, -13.5, 10.0, 13.5, 10.0, 13.5, 12.0) ops.patch("quad", 1, 1, 2, -13.5, 10.0, -13.5, -10.0, -11.5, -10.0, -11.5, 10.0) ops.patch("quad", 1, 1, 2, 11.5, 10.0, 11.5, -10.0, 13.5, -10.0, 13.5, 10.0) # mat nBars area yI zI yF zF ops.layer("straight", 3, 6, 1.56, -10.5, 9.0, -10.5, -9.0) ops.layer("straight", 3, 6, 1.56, 10.5, 9.0, 10.5, -9.0) # define beam integration np = 4 # number of integration points along length of element ops.beamIntegration("Lobatto", 1, 1, np) # Exterior column section ops.section("Fiber", 2) ops.patch("quad", 2, 1, 10, -10.0, 10.0, -10.0, -10.0, 10.0, -10.0, 10.0, 10.0) ops.patch("quad", 1, 1, 12, -12.0, -10.0, -12.0, -12.0, 12.0, -12.0, 12.0, -10.0) ops.patch("quad", 1, 1, 12, -12.0, 12.0, -12.0, 10.0, 12.0, 10.0, 12.0, 12.0) ops.patch("quad", 1, 1, 2, -12.0, 10.0, -12.0, -10.0, -10.0, -10.0, -10.0, 10.0) ops.patch("quad", 1, 1, 2, 10.0, 10.0, 10.0, -10.0, 12.0, -10.0, 12.0, 10.0)