Little help with Panel Zone

Forum for OpenSees users to post questions, comments, etc. on the use of the OpenSees interpreter, OpenSees.exe

Moderators: silvia, selimgunay, Moderators

Post Reply
dillonjen
Posts: 6
Joined: Thu Feb 02, 2012 5:47 pm
Location: SFSU

Little help with Panel Zone

Post by dillonjen »

Hello,

I have follow the example from Opensees Wiki "Pushover and Dynamic Analyses of 2-Story Moment Frame with Panel Zones and RBS" to model a classic 3 story 4 bay building which you can see in this link " http://i42.tinypic.com/a41n2b.jpg " .

I follow exact the same layout and format as the example. But not getting the correct building period . The correct period should be T1=1.01s, T2=0.327s and T3=0.172s.

After many checks with no success, I decided to take out the Panel Zone in the model, with no panel zone in the model I got the correct period. My question is what wrong with the Panel Zone in the model? Can anyone give me some tips?

Link to “Pushover and Dynamic Analyses of 2-Story Moment Frame with Panel Zones and RBS” http://opensees.berkeley.edu/wiki/index ... es_and_RBS I use the same source file as the example.
I will post my model here with panel zone.



###################################################################################################
# Set Up & Source Definition
###################################################################################################
wipe all; # clear memory of past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm = #dimension, ndf = #dofs
source DisplayModel2D.tcl; # procedure for displaying a 2D perspective of model
source DisplayPlane.tcl; # procedure for displaying a plane in a model
source rotSpring2DModIKModel.tcl; # procedure for defining a rotational spring (zero-length element) for plastic hinges
source rotLeaningCol.tcl; # procedure for defining a rotational spring (zero-length element) with very small stiffness
source rotPanelZone2D.tcl; # procedure for defining a rotational spring (zero-length element) to capture panel zone shear distortions
source elemPanelZone2D.tcl; # procedure for defining 8 elements to create a rectangular panel zone

set xPixels 1024;
set yPixels 786;
set xLoc1 30;
set yLoc1 30;
set dAmp 2;
#DisplayModel2D NodeNumbers $dAmp $xLoc1 $yLoc1 $xPixels $yPixels or DisplayModel2D DeformedShape $dAmp $xLoc1 $yLoc1 $xPixels $yPixels
###################################################################################################
# Define Analysis Type
###################################################################################################
# Define type of analysis: "pushover" = pushover; "dynamic" = dynamic
set analysisType "dynamic";

if {$analysisType == "pushover"} {
set dataDir Concentrated-PanelZone-Pushover-Output; # name of output folder
file mkdir $dataDir; # create output folder
}
if {$analysisType == "dynamic"} {
set dataDir Concentrated-PanelZone-Dynamic-Output; # name of output folder
file mkdir $dataDir; # create output folder
}

###################################################################################################
# Define Building Geometry, Nodes, Masses, and Constraints
###################################################################################################
# define structure-geometry parameters
set NStories 3; # number of stories
set NBays 4; # number of frame bays (excludes bay for P-delta column)
set WBay [expr 30.0*12.0]; # bay width in inches
set HStory1 [expr 13.0*12.0]; # 1st story height in inches
set HStory2 [expr 13.0*12.0 + $HStory1]; # 2nd story height in inches
set HStory3 [expr 13.0*12.0 + $HStory2]; # 3rd story height in inches
set HStoryTyp [expr 13.0*12.0]; # story height of other stories in inches
set HBuilding [expr ($NStories)* $HStory1]; # height of building

# calculate locations of beam-column joint centerlines:
set Pier1 0.0; # leftmost column line
set Pier2 [expr $Pier1 + $WBay];
set Pier3 [expr $Pier2 + $WBay];
set Pier4 [expr $Pier3 + $WBay];
set Pier5 [expr $Pier4 + $WBay]; # P-delta column line
set Floor1 0.0; # ground floor
set Floor2 [expr $Floor1 + $HStory1];
set Floor3 [expr $Floor2 + $Floor2];
set Floor4 [expr $Floor2 + $Floor3];


# calculate panel zone dimensions
set c1 [expr 16.4/2.0]; # lateral dist from CL of beam-col joint to edge of panel zone (= half the column depth)
set c2 [expr 17.1/2.0];
set c3 [expr 17.1/2.0];
set c4 [expr 16.4/2.0];
set b2 [expr 32.9/2.0]; # vert dist from CL of beam-col joint to edge of panel zone (= half the beam depth)
set b3 [expr 30.0/2.0];
set b4 [expr 23.7/2.0];

# define nodes and assign masses to beam-column intersections of frame
# command: node nodeID xcoord ycoord -mass mass_dof1 mass_dof2 mass_dof3
# nodeID convention: "xy" where x = Pier # and y = Floor #
node 11 $Pier1 $Floor1;
node 21 $Pier2 $Floor1;
node 31 $Pier3 $Floor1;
node 41 $Pier4 $Floor1;
node 51 $Pier5 $Floor1;
node 52 $Pier5 $Floor2;
node 53 $Pier5 $Floor3;
node 54 $Pier5 $Floor4;

# define extra nodes for plastic hinge rotational springs

# nodeID convention: "xya" where x = Pier #, y = Floor #, a = location relative to beam-column joint
# "a" convention: 1,2 = left; 3,4 = right; (used for beams)
# "a" convention: 5,6 = below; 7,8 = above; (used for columns)
# column hinges at bottom of Story 1 (base)

node 117 $Pier1 $Floor1;
node 217 $Pier2 $Floor1;
node 317 $Pier3 $Floor1;
node 417 $Pier4 $Floor1;

# column hinges at bottom of Story 2
node 125 $Pier1 [expr $Floor2 - $b2];
node 126 $Pier1 [expr $Floor2 - $b2];
node 225 $Pier2 [expr $Floor2 - $b2];
node 226 $Pier2 [expr $Floor2 - $b2];
node 325 $Pier3 [expr $Floor2 - $b2];
node 326 $Pier3 [expr $Floor2 - $b2];
node 425 $Pier4 [expr $Floor2 - $b2];
node 426 $Pier4 [expr $Floor2 - $b2];
node 526 $Pier5 $Floor2; # zero-stiffness spring will be used on p-delta column
# column hinges at top of Story 2
node 127 $Pier1 [expr $Floor2 + $b2];
node 128 $Pier1 [expr $Floor2 + $b2];
node 227 $Pier2 [expr $Floor2 + $b2];
node 228 $Pier2 [expr $Floor2 + $b2];
node 327 $Pier3 [expr $Floor2 + $b2];
node 328 $Pier3 [expr $Floor2 + $b2];
node 427 $Pier4 [expr $Floor2 + $b2];
node 428 $Pier4 [expr $Floor2 + $b2];
node 527 $Pier5 $Floor2; # zero-stiffness spring will be used on p-delta column
# column hinges at bottom of Story 3
node 135 $Pier1 [expr $Floor3 - $b3];
node 136 $Pier1 [expr $Floor3 - $b3];
node 235 $Pier2 [expr $Floor3 - $b3];
node 236 $Pier2 [expr $Floor3 - $b3];
node 335 $Pier3 [expr $Floor3 - $b3];
node 336 $Pier3 [expr $Floor3 - $b3];
node 435 $Pier4 [expr $Floor3 - $b3];
node 436 $Pier4 [expr $Floor3 - $b3];
node 536 $Pier5 $Floor3; # zero-stiffness spring will be used on p-delta column
# column hinges at top of Story 3
node 137 $Pier1 [expr $Floor3 + $b3];
node 138 $Pier1 [expr $Floor3 + $b3];
node 237 $Pier2 [expr $Floor3 + $b3];
node 238 $Pier2 [expr $Floor3 + $b3];
node 337 $Pier3 [expr $Floor3 + $b3];
node 338 $Pier3 [expr $Floor3 + $b3];
node 437 $Pier4 [expr $Floor3 + $b3];
node 438 $Pier4 [expr $Floor3 + $b3];
node 537 $Pier5 $Floor3; # zero-stiffness spring will be used on p-delta column

# column hinges at bottom of Story 4
node 145 $Pier1 [expr $Floor4 - $b4];
node 146 $Pier1 [expr $Floor4 - $b4];
node 245 $Pier2 [expr $Floor4 - $b4];
node 246 $Pier2 [expr $Floor4 - $b4];
node 345 $Pier3 [expr $Floor4 - $b4];
node 346 $Pier3 [expr $Floor4 - $b4];
node 445 $Pier4 [expr $Floor4 - $b4];
node 446 $Pier4 [expr $Floor4 - $b4];
node 546 $Pier5 $Floor4; # zero-stiffness spring will be used on p-delta column

# beam hinges at Floor 2
node 122 [expr $Pier1 + $c1] $Floor2;
node 223 [expr $Pier2 - $c2] $Floor2;
node 222 [expr $Pier2 + $c2] $Floor2;
node 323 [expr $Pier3 - $c3] $Floor2;
node 322 [expr $Pier3 + $c3] $Floor2;
node 423 [expr $Pier4 - $c4] $Floor2;

# beam hinges at Floor 3
node 132 [expr $Pier1 + $c1] $Floor3;
node 233 [expr $Pier2 - $c2] $Floor3;
node 232 [expr $Pier2 + $c2] $Floor3;
node 333 [expr $Pier3 - $c3] $Floor3;
node 332 [expr $Pier3 + $c3] $Floor3;
node 433 [expr $Pier4 - $c4] $Floor3;

# beam hinges at Floor 4
node 142 [expr $Pier1 + $c1] $Floor4;
node 243 [expr $Pier2 - $c2] $Floor4;
node 242 [expr $Pier2 + $c2] $Floor4;
node 343 [expr $Pier3 - $c3] $Floor4;
node 342 [expr $Pier3 + $c3] $Floor4;
node 443 [expr $Pier4 - $c4] $Floor4;

# define extra nodes for panel zones
# nodeID convention: "xybc" where x = Pier #, y = Floor #, bc = location relative to beam-column joint
# "bc" conventions: 01,02 = top left of joint;
# 03,04 = top right of joint;
# 05 = middle right of joint; (vertical middle, horizontal right)
# 06,07 = btm right of joint;
# 08,09 = btm left of joint;
# 10 = middle left of joint; (vertical middle, horizontal left)
# note: top center and btm center nodes were previously defined as xy7 and xy6, respectively, at Floor 2(center = horizonal center)

# panel zone at Pier 1, Floor 2
node 1201 [expr $Pier1 - $c1] [expr $Floor2 + $b2];
node 1202 [expr $Pier1 - $c1] [expr $Floor2 + $b2];
node 1203 [expr $Pier1 + $c1] [expr $Floor2 + $b2];
node 1204 [expr $Pier1 + $c1] [expr $Floor2 + $b2];
node 1205 [expr $Pier1 + $c1] [expr $Floor2];
node 1206 [expr $Pier1 + $c1] [expr $Floor2 - $b2];
node 1207 [expr $Pier1 + $c1] [expr $Floor2 - $b2];
node 1208 [expr $Pier1 - $c1] [expr $Floor2 - $b2];
node 1209 [expr $Pier1 - $c1] [expr $Floor2 - $b2];
node 1210 [expr $Pier1 - $c1] [expr $Floor2];

# panel zone at Pier 2, Floor 2
node 2201 [expr $Pier2 - $c2] [expr $Floor2 + $b2];
node 2202 [expr $Pier2 - $c2] [expr $Floor2 + $b2];
node 2203 [expr $Pier2 + $c2] [expr $Floor2 + $b2];
node 2204 [expr $Pier2 + $c2] [expr $Floor2 + $b2];
node 2205 [expr $Pier2 + $c2] [expr $Floor2];
node 2206 [expr $Pier2 + $c2] [expr $Floor2 - $b2];
node 2207 [expr $Pier2 + $c2] [expr $Floor2 - $b2];
node 2208 [expr $Pier2 - $c2] [expr $Floor2 - $b2];
node 2209 [expr $Pier2 - $c2] [expr $Floor2 - $b2];
node 2210 [expr $Pier2 - $c2] [expr $Floor2];

# panel zone at Pier 3, Floor 2
node 3201 [expr $Pier3 - $c3] [expr $Floor2 + $b2];
node 3202 [expr $Pier3 - $c3] [expr $Floor2 + $b2];
node 3203 [expr $Pier3 + $c3] [expr $Floor2 + $b2];
node 3204 [expr $Pier3 + $c3] [expr $Floor2 + $b2];
node 3205 [expr $Pier3 + $c3] [expr $Floor2];
node 3206 [expr $Pier3 + $c3] [expr $Floor2 - $b2];
node 3207 [expr $Pier3 + $c3] [expr $Floor2 - $b2];
node 3208 [expr $Pier3 - $c3] [expr $Floor2 - $b2];
node 3209 [expr $Pier3 - $c3] [expr $Floor2 - $b2];
node 3210 [expr $Pier3 - $c3] [expr $Floor2];

# panel zone at Pier 4, Floor 2
node 4201 [expr $Pier4 - $c4] [expr $Floor2 + $b2];
node 4202 [expr $Pier4 - $c4] [expr $Floor2 + $b2];
node 4203 [expr $Pier4 + $c4] [expr $Floor2 + $b2];
node 4204 [expr $Pier4 + $c4] [expr $Floor2 + $b2];
node 4205 [expr $Pier4 + $c4] [expr $Floor2];
node 4206 [expr $Pier4 + $c4] [expr $Floor2 - $b2];
node 4207 [expr $Pier4 + $c4] [expr $Floor2 - $b2];
node 4208 [expr $Pier4 - $c4] [expr $Floor2 - $b2];
node 4209 [expr $Pier4 - $c4] [expr $Floor2 - $b2];
node 4210 [expr $Pier4 - $c4] [expr $Floor2];

# panel zone at Pier 1, Floor 3
node 1301 [expr $Pier1 - $c1] [expr $Floor3 + $b3];
node 1302 [expr $Pier1 - $c1] [expr $Floor3 + $b3];
node 1303 [expr $Pier1 + $c1] [expr $Floor3 + $b3];
node 1304 [expr $Pier1 + $c1] [expr $Floor3 + $b3];
node 1305 [expr $Pier1 + $c1] [expr $Floor3];
node 1306 [expr $Pier1 + $c1] [expr $Floor3 - $b3];
node 1307 [expr $Pier1 + $c2] [expr $Floor3 - $b3];
node 1308 [expr $Pier1 - $c1] [expr $Floor3 - $b3];
node 1309 [expr $Pier1 - $c1] [expr $Floor3 - $b3];
node 1310 [expr $Pier1 - $c1] [expr $Floor3];

# panel zone at Pier 2, Floor 3
node 2301 [expr $Pier2 - $c2] [expr $Floor3 + $b3];
node 2302 [expr $Pier2 - $c2] [expr $Floor3 + $b3];
node 2303 [expr $Pier2 + $c2] [expr $Floor3 + $b3];
node 2304 [expr $Pier2 + $c2] [expr $Floor3 + $b3];
node 2305 [expr $Pier2 + $c2] [expr $Floor3];
node 2306 [expr $Pier2 + $c2] [expr $Floor3 - $b3];
node 2307 [expr $Pier2 + $c2] [expr $Floor3 - $b3];
node 2308 [expr $Pier2 - $c2] [expr $Floor3 - $b3];
node 2309 [expr $Pier2 - $c2] [expr $Floor3 - $b3];
node 2310 [expr $Pier2 - $c2] [expr $Floor3];

# panel zone at Pier 3, Floor 3
node 3301 [expr $Pier3 - $c3] [expr $Floor3 + $b3];
node 3302 [expr $Pier3 - $c3] [expr $Floor3 + $b3];
node 3303 [expr $Pier3 + $c3] [expr $Floor3 + $b3];
node 3304 [expr $Pier3 + $c3] [expr $Floor3 + $b3];
node 3305 [expr $Pier3 + $c3] [expr $Floor3];
node 3306 [expr $Pier3 + $c3] [expr $Floor3 - $b3];
node 3307 [expr $Pier3 + $c3] [expr $Floor3 - $b3];
node 3308 [expr $Pier3 - $c3] [expr $Floor3 - $b3];
node 3309 [expr $Pier3 - $c3] [expr $Floor3 - $b3];
node 3310 [expr $Pier3 - $c3] [expr $Floor3];

# panel zone at Pier 4, Floor 3
node 4301 [expr $Pier4 - $c4] [expr $Floor3 + $b3];
node 4302 [expr $Pier4 - $c4] [expr $Floor3 + $b3];
node 4303 [expr $Pier4 + $c4] [expr $Floor3 + $b3];
node 4304 [expr $Pier4 + $c4] [expr $Floor3 + $b3];
node 4305 [expr $Pier4 + $c4] [expr $Floor3];
node 4306 [expr $Pier4 + $c4] [expr $Floor3 - $b3];
node 4307 [expr $Pier4 + $c4] [expr $Floor3 - $b3];
node 4308 [expr $Pier4 - $c4] [expr $Floor3 - $b3];
node 4309 [expr $Pier4 - $c4] [expr $Floor3 - $b3];
node 4310 [expr $Pier4 - $c4] [expr $Floor3];

# panel zone at Pier 1, Floor 4
node 1401 [expr $Pier1 - $c1] [expr $Floor4 + $b4];
node 1402 [expr $Pier1 - $c1] [expr $Floor4 + $b4];
node 1403 [expr $Pier1 + $c1] [expr $Floor4 + $b4];
node 1404 [expr $Pier1 + $c1] [expr $Floor4 + $b4];
node 1405 [expr $Pier1 + $c1] [expr $Floor4];
node 1406 [expr $Pier1 + $c1] [expr $Floor4 - $b4];
node 1407 [expr $Pier1 + $c1] [expr $Floor4 - $b4];
node 1408 [expr $Pier1 - $c1] [expr $Floor4 - $b4];
node 1409 [expr $Pier1 - $c1] [expr $Floor4 - $b4];
node 1410 [expr $Pier1 - $c1] [expr $Floor4];
node 147 $Pier1 [expr $Floor4 + $b4]; # not previously defined since no column above

# panel zone at Pier 2, Floor 4
node 2401 [expr $Pier2 - $c2] [expr $Floor4 + $b4];
node 2402 [expr $Pier2 - $c2] [expr $Floor4 + $b4];
node 2403 [expr $Pier2 + $c2] [expr $Floor4 + $b4];
node 2404 [expr $Pier2 + $c2] [expr $Floor4 + $b4];
node 2405 [expr $Pier2 + $c2] [expr $Floor4];
node 2406 [expr $Pier2 + $c2] [expr $Floor4 - $b4];
node 2407 [expr $Pier2 + $c2] [expr $Floor4 - $b4];
node 2408 [expr $Pier2 - $c2] [expr $Floor4 - $b4];
node 2409 [expr $Pier2 - $c2] [expr $Floor4 - $b4];
node 2410 [expr $Pier2 - $c2] [expr $Floor4];
node 247 $Pier2 [expr $Floor4 + $b4]; # not previously defined since no column above

# panel zone at Pier 3, Floor 4
node 3401 [expr $Pier3 - $c3] [expr $Floor4 + $b4];
node 3402 [expr $Pier3 - $c3] [expr $Floor4 + $b4];
node 3403 [expr $Pier3 + $c3] [expr $Floor4 + $b4];
node 3404 [expr $Pier3 + $c3] [expr $Floor4 + $b4];
node 3405 [expr $Pier3 + $c3] [expr $Floor4];
node 3406 [expr $Pier3 + $c3] [expr $Floor4 - $b4];
node 3407 [expr $Pier3 + $c3] [expr $Floor4 - $b4];
node 3408 [expr $Pier3 - $c3] [expr $Floor4 - $b4];
node 3409 [expr $Pier3 - $c3] [expr $Floor4 - $b4];
node 3410 [expr $Pier3 - $c3] [expr $Floor4];
node 347 $Pier3 [expr $Floor4 + $b4]; # not previously defined since no column above

# panel zone at Pier 4, Floor 4
node 4401 [expr $Pier4 - $c4] [expr $Floor4 + $b4];
node 4402 [expr $Pier4 - $c4] [expr $Floor4 + $b4];
node 4403 [expr $Pier4 + $c4] [expr $Floor4 + $b4];
node 4404 [expr $Pier4 + $c4] [expr $Floor4 + $b4];
node 4405 [expr $Pier4 + $c4] [expr $Floor4];
node 4406 [expr $Pier4 + $c4] [expr $Floor4 - $b4];
node 4407 [expr $Pier4 + $c4] [expr $Floor4 - $b4];
node 4408 [expr $Pier4 - $c4] [expr $Floor4 - $b4];
node 4409 [expr $Pier4 - $c4] [expr $Floor4 - $b4];
node 4410 [expr $Pier4 - $c4] [expr $Floor4];
node 447 $Pier4 [expr $Floor4 + $b4]; # not previously defined since no column above

# calculate nodal masses -- lump floor masses at frame nodes
set g 386.2; # acceleration due to gravity
set Floor23Weight 2109.824; # weight of Floor 2&3 in kips
set Floor4Weight 2292.808; # weight of Floor 4 in kips
set WBuilding 6503.637; # total building weight kip
set NodalMass2 [expr $Floor23Weight / $g / 8.0];
set NodalMass3 [expr $Floor23Weight / $g / 8.0];
set NodalMass4 [expr $Floor4Weight / $g / 8.0];
set Negligible 1e-9; # a very small number to avoid problems with zero


# define nodal masses: lump at beam-column joints in frame
# command: mass $nodeID $dof1mass $dof2mass $dof3mass

mass 1205 $NodalMass2 $Negligible $Negligible; # Pier 1, Floor 2
mass 1305 $NodalMass3 $Negligible $Negligible; # Pier 1, Floor 3
mass 1405 $NodalMass4 $Negligible $Negligible; # Pier 1, Floor 4

mass 2205 $NodalMass2 $Negligible $Negligible; # Pier 2, Floor 2
mass 2305 $NodalMass3 $Negligible $Negligible; # Pier 2, Floor 3
mass 2405 $NodalMass4 $Negligible $Negligible; # Pier 2, Floor 4

mass 3205 $NodalMass2 $Negligible $Negligible; # Pier 3, Floor 2
mass 3305 $NodalMass3 $Negligible $Negligible; # Pier 3, Floor 3
mass 3405 $NodalMass4 $Negligible $Negligible; # Pier 3, Floor 4

mass 4205 $NodalMass2 $Negligible $Negligible; # Pier 4, Floor 2
mass 4305 $NodalMass3 $Negligible $Negligible; # Pier 4, Floor 3
mass 4405 $NodalMass4 $Negligible $Negligible; # Pier 4, Floor 4

# constrain beam-column joints in a floor to have the same lateral displacement using the "equalDOF" command
# command: equalDOF $MasterNodeID $SlaveNodeID $dof1 $dof2...

set dof1 1; # constrain movement in dof 1 (x-direction)
equalDOF 1205 2205 $dof1; # Floor 2: Pier 1 to Pier 2
equalDOF 1205 3205 $dof1; # Floor 2: Pier 1 to Pier 3
equalDOF 1205 4205 $dof1; # Floor 2: Pier 1 to Pier 4
equalDOF 1205 52 $dof1; # Floor 2: Pier 1 to Pier 5
#------------------------------------------------------------------------------
equalDOF 1305 2305 $dof1; # Floor 3: Pier 1 to Pier 2
equalDOF 1305 3305 $dof1; # Floor 3: Pier 1 to Pier 3
equalDOF 1305 4305 $dof1; # Floor 3: Pier 1 to Pier 4
equalDOF 1305 53 $dof1; # Floor 3: Pier 1 to Pier 5
#------------------------------------------------------------------------------
equalDOF 1405 2405 $dof1; # Floor 4: Pier 1 to Pier 2
equalDOF 1405 3405 $dof1; # Floor 4: Pier 1 to Pier 3
equalDOF 1405 4405 $dof1; # Floor 4: Pier 1 to Pier 4
equalDOF 1405 54 $dof1; # Floor 4: Pier 1 to Pier 5

# assign boundary condidtions
# command: fix nodeID dxFixity dyFixity rzFixity
# fixity values: 1 = constrained; 0 = unconstrained
# fix the base of the building; pin P-delta column at base
fix 11 1 1 1;
fix 21 1 1 1;
fix 31 1 1 1;
fix 41 1 1 1;
fix 51 1 1 0; # P-delta column is pinned

# define material properties
set Es 29000.0; # steel Young's modulus
set Fy 50.0; # steel yield strength
set mod 1.1;
#Define columns properties

# W14x257
set Acol_11 75.6;
set Icol_11 [expr 3400.0 * $mod];
set Mycol_11 24350.0;
set dcol_11 16.4;
set bfcol_11 16.0;
set tfcol_11 1.89;
set twcol_11 1.18;

# W14x311
set Acol_12 91.4;
set Icol_12 [expr 4330.0 * $mod];
set Mycol_12 30150.0;
set dcol_12 17.1;
set bfcol_12 16.2;
set tfcol_12 2.26;
set twcol_12 1.41;


#Define Beams properties

# w33x118
set Abeam_22 34.7;
set Ibeam_22 [expr 5900.0 * $mod];
set Mybeam_22 14941.0;
set dbeam_22 32.9;
set bfbeam_22 11.5;
set tfbeam_22 0.74;
set twbeam_22 0.55;

# w30x116
set Abeam_23 34.2;
set Ibeam_23 [expr 4930.0 * $mod];
set Mybeam_23 13609.0;
set dbeam_23 30.0;
set bfbeam_23 10.5;
set tfbeam_23 0.85;
set twbeam_23 0.565;

# w24x68
set Abeam_24 20.1;
set Ibeam_24 [expr 1830.0 * $mod];
set Mybeam_24 6372.0;
set dbeam_24 23.7;
set bfbeam_24 8.97;
set tfbeam_24 0.585;
set twbeam_24 0.415;


# determine stiffness modifications to equate the stiffness of the spring-elastic element-spring subassembly to the stiffness of the actual frame member
# References: (1) Ibarra, L. F., and Krawinkler, H. (2005). "Global collapse of frame structures under seismic excitations," Technical Report 152,
# The John A. Blume Earthquake Engineering Research Center, Department of Civil Engineering, Stanford University, Stanford, CA.
# (2) Zareian, F. and Medina, R. A. (2010). “A practical method for proper modeling of structural damping in inelastic plane
# structural systems,” Computers & Structures, Vol. 88, 1-2, pp. 45-53.
# calculate modified section properties to account for spring stiffness being in series with the elastic element stiffness
set n 10.0; # stiffness multiplier for rotational spring

set Ks_col_F11 [expr $n * 6.0 * $Es * $Icol_11 /($HStory1-$b2)]; #spring-elastic element for column
set Ks_col_F12 [expr $n * 6.0 * $Es * $Icol_11 /($HStory1-$b2-$b3)];
set Ks_col_F13 [expr $n * 6.0 * $Es * $Icol_11 /($HStory1-$b3-$b4)];

set Ks_col_F21 [expr $n * 6.0 * $Es * $Icol_12 /($HStory1-$b2)];
set Ks_col_F22 [expr $n * 6.0 * $Es * $Icol_12 /($HStory1-$b2-$b3)];
set Ks_col_F23 [expr $n * 6.0 * $Es * $Icol_12 /($HStory1-$b3-$b4)];

set Ks_beam_12 [expr $n * 6.0 * $Es * $Ibeam_22 /($WBay-$c1-$c2)]; #spring-elastic element for beam
set Ks_beam_13 [expr $n * 6.0 * $Es * $Ibeam_23 /($WBay-$c1-$c2)];
set Ks_beam_14 [expr $n * 6.0 * $Es * $Ibeam_24 /($WBay-$c1-$c2)];

set Ks_beam_22 [expr $n * 6.0 * $Es * $Ibeam_22 /($WBay-$c2-$c3)];
set Ks_beam_23 [expr $n * 6.0 * $Es * $Ibeam_23 /($WBay-$c2-$c3)];
set Ks_beam_24 [expr $n * 6.0 * $Es * $Ibeam_24 /($WBay-$c2-$c3)];

set Ks_beam_32 [expr $n * 6.0 * $Es * $Ibeam_22 /($WBay-$c3-$c4)];
set Ks_beam_33 [expr $n * 6.0 * $Es * $Ibeam_23 /($WBay-$c3-$c4)];
set Ks_beam_34 [expr $n * 6.0 * $Es * $Ibeam_24 /($WBay-$c3-$c4)];

# set up geometric transformation of elements
set PDeltaTransf 1;
geomTransf PDelta $PDeltaTransf; # PDelta transformation

# define elastic column elements using "element" command
# command: element elasticBeamColumn $eleID $iNode $jNode $A $E $I $transfID
# eleID convention: "1xy" where 1 = col, x = Pier #, y = Story #
# Columns Story 1
element elasticBeamColumn 111 117 125 $Acol_11 $Es $Icol_11 $PDeltaTransf; # Pier 1
element elasticBeamColumn 121 217 225 $Acol_12 $Es $Icol_12 $PDeltaTransf; # Pier 2
element elasticBeamColumn 131 317 325 $Acol_12 $Es $Icol_12 $PDeltaTransf; # Pier 3
element elasticBeamColumn 141 417 425 $Acol_11 $Es $Icol_11 $PDeltaTransf; # Pier 4
# Columns Story 2
element elasticBeamColumn 112 128 135 $Acol_11 $Es $Icol_11 $PDeltaTransf; # Pier 1
element elasticBeamColumn 122 228 235 $Acol_12 $Es $Icol_12 $PDeltaTransf; # Pier 2
element elasticBeamColumn 132 328 335 $Acol_12 $Es $Icol_12 $PDeltaTransf; # Pier 3
element elasticBeamColumn 142 428 435 $Acol_11 $Es $Icol_11 $PDeltaTransf; # Pier 4
# Columns Story 3
element elasticBeamColumn 113 138 145 $Acol_11 $Es $Icol_11 $PDeltaTransf; # Pier 1
element elasticBeamColumn 123 238 245 $Acol_12 $Es $Icol_12 $PDeltaTransf; # Pier 2
element elasticBeamColumn 133 338 345 $Acol_12 $Es $Icol_12 $PDeltaTransf; # Pier 3
element elasticBeamColumn 143 438 445 $Acol_11 $Es $Icol_11 $PDeltaTransf; # Pier 4

# define elastic beam elements
# element between plastic hinges: eleID convention = "2xy" where 2 = beam, x = Bay #, y = Floor #
# element between plastic hinge and panel zone: eleID convention = "2xya" where 2 = beam, x = Bay #, y = Floor #, a = loc in bay
# "a" convention: 1 = left end of bay; 2 = right end of bay
# Beams Story 2
element elasticBeamColumn 212 122 223 $Abeam_22 $Es $Ibeam_22 $PDeltaTransf; #Bay 1
element elasticBeamColumn 222 222 323 $Abeam_22 $Es $Ibeam_22 $PDeltaTransf; #Bay 2
element elasticBeamColumn 232 322 423 $Abeam_22 $Es $Ibeam_22 $PDeltaTransf; #Bay 3
# Beams Story 3
element elasticBeamColumn 213 132 233 $Abeam_23 $Es $Ibeam_23 $PDeltaTransf; #Bay 1
element elasticBeamColumn 223 232 333 $Abeam_23 $Es $Ibeam_23 $PDeltaTransf; #Bay 2
element elasticBeamColumn 233 332 433 $Abeam_23 $Es $Ibeam_23 $PDeltaTransf; #Bay 3
# Beams Story 4
element elasticBeamColumn 214 142 243 $Abeam_24 $Es $Ibeam_24 $PDeltaTransf; #Bay 1
element elasticBeamColumn 224 242 343 $Abeam_24 $Es $Ibeam_24 $PDeltaTransf; #Bay 2
element elasticBeamColumn 234 342 443 $Abeam_24 $Es $Ibeam_24 $PDeltaTransf; #Bay 3

# define p-delta columns and rigid links
set TrussMatID 600; # define a material ID
set Arigid 1000.0; # define area of truss section (make much larger than A of frame elements)
set Irigid 100000.0; # moment of inertia for p-delta columns (make much larger than I of frame elements)
uniaxialMaterial Elastic $TrussMatID $Es; # define truss material
# rigid links
# command: element truss $eleID $iNode $jNode $A $materialID
# eleID convention: 6xy, 6 = truss link, x = Bay #, y = Floor #
element truss 622 4205 52 $Arigid $TrussMatID; # Floor 2
element truss 623 4305 53 $Arigid $TrussMatID; # Floor 3
element truss 624 4405 54 $Arigid $TrussMatID; # Floor 3

# p-delta columns
# eleID convention: 7xy, 7 = p-delta columns, x = Pier #, y = Story #
element elasticBeamColumn 731 51 526 $Arigid $Es $Irigid $PDeltaTransf; # Story 1
element elasticBeamColumn 732 527 536 $Arigid $Es $Irigid $PDeltaTransf; # Story 2
element elasticBeamColumn 733 537 546 $Arigid $Es $Irigid $PDeltaTransf; # Story 2

# define elastic panel zone elements (assume rigid)
# elemPanelZone2D creates 8 elastic elements that form a rectangular panel zone
# references provided in elemPanelZone2D.tcl
# note: the nodeID and eleID of the upper left corner of the PZ must be imported
# eleID convention: 500xya, 500 = panel zone element, x = Pier #, y = Floor #
# "a" convention: defined in elemPanelZone2D.tcl, but 1 = top left element
set Apz 1000.0; # area of panel zone element (make much larger than A of frame elements)
set Ipz 1.0e5; # moment of intertia of panel zone element (make much larger than I of frame elements)
# elemPanelZone2D eleID nodeR E A_PZ I_PZ transfTag
elemPanelZone2D 500121 1201 $Es $Apz $Ipz $PDeltaTransf; # Pier 1, Floor 2
elemPanelZone2D 500221 2201 $Es $Apz $Ipz $PDeltaTransf; # Pier 2, Floor 2
elemPanelZone2D 500321 3201 $Es $Apz $Ipz $PDeltaTransf; # Pier 3, Floor 2
elemPanelZone2D 500421 4201 $Es $Apz $Ipz $PDeltaTransf; # Pier 4, Floor 2

elemPanelZone2D 500131 1301 $Es $Apz $Ipz $PDeltaTransf; # Pier 1, Floor 3
elemPanelZone2D 500231 2301 $Es $Apz $Ipz $PDeltaTransf; # Pier 2, Floor 3
elemPanelZone2D 500331 3301 $Es $Apz $Ipz $PDeltaTransf; # Pier 3, Floor 3
elemPanelZone2D 500431 4301 $Es $Apz $Ipz $PDeltaTransf; # Pier 4, Floor 3

elemPanelZone2D 500141 1401 $Es $Apz $Ipz $PDeltaTransf; # Pier 1, Floor 4
elemPanelZone2D 500241 2401 $Es $Apz $Ipz $PDeltaTransf; # Pier 2, Floor 4
elemPanelZone2D 500341 3401 $Es $Apz $Ipz $PDeltaTransf; # Pier 3, Floor 4
elemPanelZone2D 500441 4401 $Es $Apz $Ipz $PDeltaTransf; # Pier 4, Floor 4

###################################################################################################
# Define Rotational Springs for Plastic Hinges, Panel Zones, and Leaning Columns
###################################################################################################
# define rotational spring properties and create spring elements using "rotSpring2DModIKModel" procedure
# rotSpring2DModIKModel creates a uniaxial material spring with a bilinear response based on Modified Ibarra Krawinkler Deterioration Model
# references provided in rotSpring2DModIKModel.tcl
# input values for Story 1 column springs
set McMy 1.05;
set LS 1000.0;
set LK 1000.0;
set LA 1000.0;
set LD 1000.0;
set cS 1.0;
set cK 1.0;
set cA 1.0;
set cD 1.0;
set th_pP 0.025;
set th_pN 0.025;
set th_pcP 0.3;
set th_pcN 0.3;
set ResP 0.4;
set ResN 0.4;
set th_uP 0.4;
set th_uN 0.4;
set DP 1.0;
set DN 1.0;

set a_mem1 [expr ($n+1.0)*($Mycol_11*($McMy-1.0)) / ($Ks_col_F11*$th_pP)]; # strain hardening ratio of spring
set b1 [expr ($a_mem1)/(1.0+$n*(1.0-$a_mem1))]; # modified strain hardening ratio of spring (Ibarra & Krawinkler 2005, note: Eqn B.5 is incorrect)
set a_mem2 [expr ($n+1.0)*($Mycol_12*($McMy-1.0)) / ($Ks_col_F21*$th_pP)]; # strain hardening ratio of spring
set b2 [expr ($a_mem2)/(1.0+$n*(1.0-$a_mem2))]; # modified strain hardening ratio of spring (Ibarra & Krawinkler 2005, note: Eqn B.5 is incorrect)

rotSpring2DModIKModel 3111 11 117 $Ks_col_F11 $b1 $b1 $Mycol_11 [expr -$Mycol_11] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3211 21 217 $Ks_col_F21 $b2 $b2 $Mycol_12 [expr -$Mycol_12] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3311 31 317 $Ks_col_F21 $b2 $b2 $Mycol_12 [expr -$Mycol_12] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3411 41 417 $Ks_col_F11 $b1 $b1 $Mycol_11 [expr -$Mycol_11] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;

#col springs @ top of Story 1 (below Floor 2)
rotSpring2DModIKModel 3112 126 125 $Ks_col_F11 $b1 $b1 $Mycol_11 [expr -$Mycol_11] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3212 226 225 $Ks_col_F21 $b2 $b2 $Mycol_12 [expr -$Mycol_12] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3312 326 325 $Ks_col_F21 $b2 $b2 $Mycol_12 [expr -$Mycol_12] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3412 426 425 $Ks_col_F11 $b1 $b1 $Mycol_11 [expr -$Mycol_11] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;

set a_mem1 [expr ($n+1.0)*($Mycol_11*($McMy-1.0)) / ($Ks_col_F12*$th_pP)]; # strain hardening ratio of spring
set b1 [expr ($a_mem1)/(1.0+$n*(1.0-$a_mem1))]; # modified strain hardening ratio of spring (Ibarra & Krawinkler 2005, note: Eqn B.5 is incorrect)
set a_mem2 [expr ($n+1.0)*($Mycol_12*($McMy-1.0)) / ($Ks_col_F22*$th_pP)]; # strain hardening ratio of spring
set b2 [expr ($a_mem1)/(1.0+$n*(1.0-$a_mem1))]; # modified strain hardening ratio of spring (Ibarra & Krawinkler 2005, note: Eqn B.5 is incorrect)

rotSpring2DModIKModel 3121 127 128 $Ks_col_F12 $b1 $b1 $Mycol_11 [expr -$Mycol_11] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3221 227 228 $Ks_col_F22 $b2 $b2 $Mycol_12 [expr -$Mycol_12] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3321 327 328 $Ks_col_F22 $b2 $b2 $Mycol_12 [expr -$Mycol_12] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3421 427 428 $Ks_col_F12 $b1 $b1 $Mycol_11 [expr -$Mycol_11] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;

#col springs @ top of Story 1 (below Floor 2)
rotSpring2DModIKModel 3122 136 135 $Ks_col_F12 $b1 $b1 $Mycol_11 [expr -$Mycol_11] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3222 236 235 $Ks_col_F22 $b2 $b2 $Mycol_12 [expr -$Mycol_12] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3322 336 335 $Ks_col_F22 $b2 $b2 $Mycol_12 [expr -$Mycol_12] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3422 436 435 $Ks_col_F12 $b1 $b1 $Mycol_11 [expr -$Mycol_11] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;

set a_mem1 [expr ($n+1.0)*($Mycol_11*($McMy-1.0)) / ($Ks_col_F13*$th_pP)]; # strain hardening ratio of spring
set b1 [expr ($a_mem1)/(1.0+$n*(1.0-$a_mem1))]; # modified strain hardening ratio of spring (Ibarra & Krawinkler 2005, note: Eqn B.5 is incorrect)
set a_mem2 [expr ($n+1.0)*($Mycol_12*($McMy-1.0)) / ($Ks_col_F23*$th_pP)]; # strain hardening ratio of spring
set b2 [expr ($a_mem1)/(1.0+$n*(1.0-$a_mem1))]; # modified strain hardening ratio of spring (Ibarra & Krawinkler 2005, note: Eqn B.5 is incorrect)

rotSpring2DModIKModel 3131 137 138 $Ks_col_F13 $b1 $b1 $Mycol_11 [expr -$Mycol_11] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3231 237 238 $Ks_col_F23 $b2 $b2 $Mycol_12 [expr -$Mycol_12] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3331 337 338 $Ks_col_F23 $b2 $b2 $Mycol_12 [expr -$Mycol_12] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3431 437 438 $Ks_col_F13 $b1 $b1 $Mycol_11 [expr -$Mycol_11] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;

#col springs @ top of Story 1 (below Floor 2)
rotSpring2DModIKModel 3132 146 145 $Ks_col_F13 $b1 $b1 $Mycol_11 [expr -$Mycol_11] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3232 246 245 $Ks_col_F23 $b2 $b2 $Mycol_12 [expr -$Mycol_12] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3332 346 345 $Ks_col_F23 $b2 $b2 $Mycol_12 [expr -$Mycol_12] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 3432 446 445 $Ks_col_F13 $b1 $b1 $Mycol_11 [expr -$Mycol_11] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;

# create region for frame column springs
# command: region $regionID -ele $ele_1_ID $ele_2_ID...
region 1 -ele 3111 3211 3311 3411 3112 3212 3312 3412 3121 3221 3321 3421 3122 3222 3322 3422 3131 3231 3331 3431 3132 3232 3332 3432;



# define beam springs
# Spring ID: "4xya", where 4 = beam spring, x = Bay #, y = Floor #, a = location in bay
# "a" convention: 1 = left end, 2 = right end
# redefine the rotations since they are not the same
set th_pP 0.02;
set th_pN 0.02;
set th_pcP 0.16;
set th_pcN 0.16;
set a_mem1 [expr ($n+1.0)*($Mybeam_22*($McMy-1.0)) / ($Ks_beam_12*$th_pP)]; # strain hardening ratio of spring
set b1 [expr ($a_mem1)/(1.0+$n*(1.0-$a_mem1))];
set a_mem2 [expr ($n+1.0)*($Mybeam_22*($McMy-1.0)) / ($Ks_beam_22*$th_pP)]; # strain hardening ratio of spring
set b2 [expr ($a_mem2)/(1.0+$n*(1.0-$a_mem2))];
set a_mem3 [expr ($n+1.0)*($Mybeam_22*($McMy-1.0)) / ($Ks_beam_32*$th_pP)]; # strain hardening ratio of spring
set b3 [expr ($a_mem3)/(1.0+$n*(1.0-$a_mem3))];
#beam springs at Floor 2
rotSpring2DModIKModel 4121 1205 122 $Ks_beam_12 $b1 $b1 $Mybeam_22 [expr -$Mybeam_22] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4122 2210 223 $Ks_beam_12 $b1 $b1 $Mybeam_22 [expr -$Mybeam_22] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4221 2205 222 $Ks_beam_22 $b2 $b2 $Mybeam_22 [expr -$Mybeam_22] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4222 3210 323 $Ks_beam_22 $b2 $b2 $Mybeam_22 [expr -$Mybeam_22] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4321 3205 322 $Ks_beam_32 $b3 $b3 $Mybeam_22 [expr -$Mybeam_22] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4322 4210 423 $Ks_beam_32 $b3 $b3 $Mybeam_22 [expr -$Mybeam_22] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;

set a_mem1 [expr ($n+1.0)*($Mybeam_23*($McMy-1.0)) / ($Ks_beam_13*$th_pP)]; # strain hardening ratio of spring
set b1 [expr ($a_mem1)/(1.0+$n*(1.0-$a_mem1))];
set a_mem2 [expr ($n+1.0)*($Mybeam_23*($McMy-1.0)) / ($Ks_beam_23*$th_pP)]; # strain hardening ratio of spring
set b2 [expr ($a_mem2)/(1.0+$n*(1.0-$a_mem2))];
set a_mem3 [expr ($n+1.0)*($Mybeam_23*($McMy-1.0)) / ($Ks_beam_33*$th_pP)]; # strain hardening ratio of spring
set b3 [expr ($a_mem3)/(1.0+$n*(1.0-$a_mem3))];
#beam springs at Floor 3
rotSpring2DModIKModel 4131 1305 132 $Ks_beam_13 $b1 $b1 $Mybeam_23 [expr -$Mybeam_23] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4132 2310 233 $Ks_beam_13 $b1 $b1 $Mybeam_23 [expr -$Mybeam_23] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4231 2305 232 $Ks_beam_23 $b2 $b2 $Mybeam_23 [expr -$Mybeam_23] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4232 3310 333 $Ks_beam_23 $b2 $b2 $Mybeam_23 [expr -$Mybeam_23] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4331 3305 332 $Ks_beam_33 $b3 $b3 $Mybeam_23 [expr -$Mybeam_23] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4332 4310 433 $Ks_beam_33 $b3 $b3 $Mybeam_23 [expr -$Mybeam_23] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;

set a_mem1 [expr ($n+1.0)*($Mybeam_24*($McMy-1.0)) / ($Ks_beam_14*$th_pP)]; # strain hardening ratio of spring
set b1 [expr ($a_mem1)/(1.0+$n*(1.0-$a_mem1))];
set a_mem2 [expr ($n+1.0)*($Mybeam_24*($McMy-1.0)) / ($Ks_beam_24*$th_pP)]; # strain hardening ratio of spring
set b2 [expr ($a_mem2)/(1.0+$n*(1.0-$a_mem2))];
set a_mem3 [expr ($n+1.0)*($Mybeam_24*($McMy-1.0)) / ($Ks_beam_34*$th_pP)]; # strain hardening ratio of spring
set b3 [expr ($a_mem3)/(1.0+$n*(1.0-$a_mem3))];
#beam springs at Floor 4
rotSpring2DModIKModel 4141 1405 142 $Ks_beam_14 $b1 $b1 $Mybeam_24 [expr -$Mybeam_24] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4142 2410 243 $Ks_beam_14 $b1 $b1 $Mybeam_24 [expr -$Mybeam_24] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4241 2405 242 $Ks_beam_24 $b2 $b2 $Mybeam_24 [expr -$Mybeam_24] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4242 3410 343 $Ks_beam_24 $b2 $b2 $Mybeam_24 [expr -$Mybeam_24] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4341 3405 342 $Ks_beam_34 $b3 $b3 $Mybeam_24 [expr -$Mybeam_24] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;
rotSpring2DModIKModel 4342 4410 443 $Ks_beam_34 $b3 $b3 $Mybeam_24 [expr -$Mybeam_24] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;

# create region for beam springs
region 2 -ele 4121 4122 4221 4222 4321 4322 4131 4132 4231 4232 4331 4332 4141 4142 4241 4242 4341 4342;


#define panel zone springs
# rotPanelZone2D creates a uniaxial material spring with a trilinear response based on the Krawinkler Model
# It also constrains the nodes in the corners of the panel zone.
# references provided in rotPanelZone2D.tcl
# note: the upper right corner nodes of the PZ must be imported
source rotPanelZone2D.tcl
set Ry 1.2; # expected yield strength multiplier
set as_PZ 0.03; # strain hardening of panel zones
# Spring ID: "4xy00" where 4 = panel zone spring, x = Pier #, y = Floor #
#2nd Floor PZ springs
# ElemID ndR ndC E Fy dc bf_c tf_c tp db Ry as
rotPanelZone2D 41200 1203 1204 $Es $Fy $dcol_11 $bfcol_11 $tfcol_11 $twcol_11 $dbeam_22 $Ry $as_PZ; #Panelzone in 2nd Floor
rotPanelZone2D 42200 2203 2204 $Es $Fy $dcol_12 $bfcol_12 $tfcol_12 $twcol_12 $dbeam_22 $Ry $as_PZ; #Panelzone in 2nd Floor
rotPanelZone2D 43200 3203 3204 $Es $Fy $dcol_12 $bfcol_12 $tfcol_12 $twcol_12 $dbeam_22 $Ry $as_PZ; #Panelzone in 2nd Floor
rotPanelZone2D 44200 4203 4204 $Es $Fy $dcol_11 $bfcol_11 $tfcol_11 $twcol_11 $dbeam_22 $Ry $as_PZ; #Panelzone in 2nd Floor
#3rd Floor PZ springs
rotPanelZone2D 41300 1303 1304 $Es $Fy $dcol_11 $bfcol_11 $tfcol_11 $twcol_11 $dbeam_23 $Ry $as_PZ; #Panelzone in 3rd Floor
rotPanelZone2D 42300 2303 2304 $Es $Fy $dcol_12 $bfcol_12 $tfcol_12 $twcol_12 $dbeam_23 $Ry $as_PZ; #Panelzone in 3rd Floor
rotPanelZone2D 43300 3303 3304 $Es $Fy $dcol_12 $bfcol_12 $tfcol_12 $twcol_12 $dbeam_23 $Ry $as_PZ; #Panelzone in 3rd Floor
rotPanelZone2D 44300 4303 4304 $Es $Fy $dcol_11 $bfcol_11 $tfcol_11 $twcol_11 $dbeam_23 $Ry $as_PZ; #Panelzone in 3rd Floor
#4rd Floor PZ springs
rotPanelZone2D 41400 1403 1404 $Es $Fy $dcol_11 $bfcol_11 $tfcol_11 $twcol_11 $dbeam_24 $Ry $as_PZ; #Panelzone in 4th Floor
rotPanelZone2D 42400 2403 2404 $Es $Fy $dcol_12 $bfcol_12 $tfcol_12 $twcol_12 $dbeam_24 $Ry $as_PZ; #Panelzone in 4th Floor
rotPanelZone2D 43400 3403 3404 $Es $Fy $dcol_12 $bfcol_12 $tfcol_12 $twcol_12 $dbeam_24 $Ry $as_PZ; #Panelzone in 4th Floor
rotPanelZone2D 44400 4403 4404 $Es $Fy $dcol_11 $bfcol_11 $tfcol_11 $twcol_11 $dbeam_24 $Ry $as_PZ; #Panelzone in 4th Floor

# define p-delta column spring: zero-stiffness elastic spring
#Spring ID: "5xya" where 5 = leaning column spring, x = Pier #, y = Story #, a = location in story
# "a" convention: 1 = bottom of story, 2 = top of story
# rotLeaningCol ElemID ndR ndC
rotLeaningCol 5521 52 526;
rotLeaningCol 5522 52 527;
rotLeaningCol 5531 53 536;
rotLeaningCol 5332 53 537;
rotLeaningCol 5341 54 546;
# create region for P-Delta column springsa
region 3 -ele 5521 5522 5531 5332 5341;


############################################################################
# Eigenvalue Analysis
############################################################################
set pi [expr 2.0*asin(1.0)];
set nEigenI 1;
set nEigenJ 2;
set lambdaN [eigen [expr $nEigenJ]];
set lambdaI [lindex $lambdaN [expr $nEigenI-1]];
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]];
set w1 [expr pow($lambdaI,0.5)];
set w2 [expr pow($lambdaJ,0.5)];
set T1 [expr 2.0*$pi/$w1];
set T2 [expr 2.0*$pi/$w2];
puts "T1 = $T1 s";
puts "T2 = $T2 s";
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Little help with Panel Zone

Post by vesna »

did you try displaying the mode shapes to see if they look right?

Do you have rotational springs at the bottom of the column? In case you do, make sure that the bottom nodes of springs has constrained displacements in translational DOFs (e.g., fix $nodeTag 1 1 0). Do not use equalDOF command at this locations.
dillonjen
Posts: 6
Joined: Thu Feb 02, 2012 5:47 pm
Location: SFSU

Re: Little help with Panel Zone

Post by dillonjen »

Right, the shapes of the model looks right, rotational spring is connected with the bottom nodes. yes you are right, the bottom column node are all fix except the leaning column. I only use equalDof constrained the x displacement of the 2nd, 3rd and 4th floor . Yet, after adding the panel zone this building is way too stiff. Is there anything off with the panel zone set up?
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Little help with Panel Zone

Post by vesna »

It may be. I never looked at the model myself. See if the author of the example provided reference for the panel zone. After you learn enough about the modeling of the panel zone and you believe something is not working well try to contact the author of the example.
dillonjen
Posts: 6
Joined: Thu Feb 02, 2012 5:47 pm
Location: SFSU

Re: Little help with Panel Zone

Post by dillonjen »

Thank you so much Vesna. Do you know anyone who have an example of Panel zone other than the one provide in the Opensees Wiki?
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Little help with Panel Zone

Post by vesna »

No, I do not know anyone who has an example of the steel panel zone.
dillonjen
Posts: 6
Joined: Thu Feb 02, 2012 5:47 pm
Location: SFSU

Re: Little help with Panel Zone

Post by dillonjen »

I solved the problem with building period, the problem is the structure is too stiff with constrain of the rigid diaphragm. Now after i remove all equalDOF on the panel zone, the building period are correct.
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Little help with Panel Zone

Post by vesna »

I am glad you solved it. Thanks for sharing!
Post Reply