SteelFrame1.tcl

# Units: kip, in

#

#

# @__________@_@__________@ _

# | | |

# | | | 54"

# | | |

# |@__________@|@__________@| _

# | | |

# | | |

# | | | 54"

# | | | _

# ^ ^ ^

# | 108" | 108" |

# comment out one of lines if wish to see graphics or not

#set displayMode "displayON"

set displayMode "displayOFF"

model BasicBuilder -ndm 2 -ndf 3

# tag X Y

node 1 0 0

node 2 0 54

node 3 0 54

node 4 0 108

node 5 0 108

node 6 108 0

node 7 108 54

node 8 108 54

node 9 108 54

node 10 108 108

node 11 108 108

node 12 108 108

node 13 216 0

node 14 216 54

node 15 216 54

node 16 216 108

node 17 216 108

# node DX DY RZ

fix 1 1 1 0

fix 6 1 1 0

fix 13 1 1 0

# Define beam and column property variables

set E 29000

# Columns W6x12:

set Acol 3.55

set Icol 22.1

# Beams S4x7.7:

set Agir 2.26

set Igir 6.08

# Define moment-rotation relationship for spring - EPP

# E ep

uniaxialMaterial ElasticPP 1 26290 0.005

# Source in proc to define rotational zero-length element

source rotSpring2D.tcl

# id ndR ndC matID

rotSpring2D 1 2 3 1

rotSpring2D 2 4 5 1

rotSpring2D 3 7 8 1

rotSpring2D 4 8 9 1

rotSpring2D 5 10 11 1

rotSpring2D 6 11 12 1

rotSpring2D 7 14 15 1

rotSpring2D 8 16 17 1

# Coordinate transformation

geomTransf Linear 1

# id ndI ndJ A E I transfTag

element elasticBeamColumn 9 1 2 $Acol $E $Icol 1

element elasticBeamColumn 10 2 4 $Acol $E $Icol 1

element elasticBeamColumn 11 6 8 $Acol $E $Icol 1

element elasticBeamColumn 12 8 11 $Acol $E $Icol 1

element elasticBeamColumn 13 13 15 $Acol $E $Icol 1

element elasticBeamColumn 14 15 17 $Acol $E $Icol 1

element elasticBeamColumn 15 3 7 $Agir $E $Igir 1

element elasticBeamColumn 16 5 10 $Agir $E $Igir 1

element elasticBeamColumn 17 9 14 $Agir $E $Igir 1

element elasticBeamColumn 18 12 16 $Agir $E $Igir 1

# Constant gravity loads

pattern Plain 1 Constant {

# node FX FY MZ

load 2 0.0 -1.0 0.0

load 8 0.0 -4.0 0.0

load 15 0.0 -1.0 0.0

load 4 0.0 -2.0 0.0

load 11 0.0 -6.0 0.0

load 17 0.0 -2.0 0.0

}

# Lateral load

set H 0.2

pattern Plain 2 Linear {

# node FX FY MZ

load 2 $H 0.0 0.0

load 3 $H 0.0 0.0

}

# Record displacements at 1st floor and roof

recorder Node StFrPZL1.out disp -time -node 2 4 8 10 -dof 1

# Record spring forces

recorder Element 1 -file StFrPZL1el1.out -time forces

recorder Element 2 -file StFrPZL1el2.out -time forces

recorder Element 3 -file StFrPZL1el3.out -time forces

recorder Element 4 -file StFrPZL1el4.out -time forces

recorder Element 5 -file StFrPZL1el5.out -time forces

recorder Element 6 -file StFrPZL1el6.out -time forces

recorder Element 7 -file StFrPZL1el7.out -time forces

recorder Element 8 -file StFrPZL1el8.out -time forces

# Record beam & column forces

recorder Element 9 -file StFrPZL1el9.out -time forces

recorder Element 10 -file StFrPZL1el10.out -time forces

recorder Element 11 -file StFrPZL1el11.out -time forces

recorder Element 12 -file StFrPZL1el12.out -time forces

recorder Element 13 -file StFrPZL1el13.out -time forces

recorder Element 14 -file StFrPZL1el14.out -time forces

recorder Element 15 -file StFrPZL1el15.out -time forces

recorder Element 16 -file StFrPZL1el16.out -time forces

recorder Element 17 -file StFrPZL1el17.out -time forces

recorder Element 18 -file StFrPZL1el18.out -time forces

# Source in some commands to display the model

if {$displayMode == "displayON"} {

source StFramePZLdisplay.tcl

}

integrator LoadControl 1 3 0.2 1

test EnergyIncr 1.0e-6 10 1

algorithm Newton

numberer Plain

constraints Transformation 1.0

system SparseGeneral

analysis Static

# Perform the pushover analysis

analyze 30

# Switch to displacement control

integrator DisplacementControl 4 1 .001 3 .001 1.0

# Continue the pushover analysis

analyze 20

# Get the roof displacement

print node 2 3 4 5