STAIRLab logo
  • Docs 
  • Examples 
  •  

Columns with Nonlinear Geometry and Shear

2 min read • 278 words
Frame   Steel  
Frame   Steel  

This example investigates P-Delta effects in columns with and without shear.

On this page
Section   Case 1   Case 2  
Python
  • aisc.py

TODO: Verify

A column with a distributed load.

This example implements the benchmarks presented in Chapter C2 of the AISC steel manual commentary. The benchmarks consist of two cases:

  • Case 1 involves a simply supported column with a constant uniformly distributed transverse load, and a monotonically increasing axial force. This case only involves P−δP-\delta effects.
  • Case 2 involves a cantilever column with a constant transverse load at the tip and an increasing axial force. This problem involves both P−ΔP-\Delta and P−δP-\delta effects.

Section  

In both cases the cross section is a W14x48 wide flange shape. Note the approximation of the shear areas AyA_y and AzA_z :

d  = 13.75*inch
b  = 8.030*inch
tw = 0.340*inch
tf = 0.595*inch
transform = "Corotational"
section = dict(
        E  = 29000.0,
        G =  11200.0,
        A  = 14.1*inch**2,
        J  = 1.45*inch**4,
        Iy = 51.4,
        Iz = 484.0,
        Ay = d*tw,
        Az = b*tf*2,
        Cw = 2240*inch**6
)

Case 1  

In Case 1, a uniformly distributed load of 0.20.2 kip/ft is first applied to the elements:

model.pattern("Plain", 1, "Linear")
for i in range(ne):
    model.eleLoad("-ele", i+1, "-pattern", 1, "-type", "beamUniform",  ( 0.2*kip/ft, 0.0))
q0=wL212(1−1)=wL212(1−1) \boldsymbol{q}_0 = \frac{wL^2}{12}\begin{pmatrix} 1 \\ -1 \end{pmatrix} = \frac{wL^2}{12}\begin{pmatrix} 1 \\ -1 \end{pmatrix}

To check Case 1 we use the eleResponse method:

def check_case1(model, Mbench, Dbench, ndm):
    ne    = len(model.getEleTags())
    Axial = model.getTime()
    Mmid  = (-1)**ndm*model.eleResponse(int(ne//2), "forces")[5 if ndm==2 else 11]
    u     = model.nodeDisp(int(ne//2)+1, 2)

    # Axial Force  |  Moment at h/2  |  Displacement at h/2 |
    print(f"| {Axial:8.0f} |", end="")
    print(f" {Mmid:8.1f} | {Mbench:8.0f} | %8.2f %% |" % (100*(Mbench-Mmid)/Mbench), end="")
    print(f" {u:8.4f} | {Dbench:8.3f} | %8.2f %% |" % ((100*(Dbench-u)/Dbench)))

Case 2  

The source code for this example is adapted from https://github.com/denavit/OpenSees-Examples 

 Bolted connection
Cook's membrane 
On this page:
Section   Case 1   Case 2  
Columns with Nonlinear Geometry and Shear
Columns with Nonlinear Geometry and Shear
A gallery of technical examples currated by the STAIRLab at UC Berkeley.
Code licensed BSD, docs CC BY-NC 4.0
 
Links
Home 
About 
Docs 
Examples
Working with solids 
Nonlinear dynamics 
Basic Statics 
Community
Issues   
Discussions   
Contribute 
STAIRLab
Code copied to clipboard