modelong of rigid diaphragm in 2d steel frame

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

Moderators: silvia, selimgunay, Moderators

Post Reply
MLO
Posts: 5
Joined: Mon Feb 02, 2015 9:36 pm

modelong of rigid diaphragm in 2d steel frame

Post by MLO »

Hi
I want to model a 2D 3-story one-bay steel moment frame by considering of concentrated plastic hinges at the beam ends and bottom of the first story columns.(beam and columns are modeled by uniaxialMaterial Elastic)

I modeled this frame as follows: (@: zero length element)

13@14---------beam(floor 3)------------15@16
9@10----------beam(floor 2)------------11@12
5@6-----------beam(floor 1)------------7@8

I define steel02 material for zero length element, only in DOF 3. (element zeroLength 10 1 3 -mat 1 -dir 6)
and i used equal Dof for the nodes of the beams as follows:

equalDof 13 14 1 2
equalDof 16 15 1 2
equalDof 9 10 1 2
equalDof 12 11 1 2
equalDof 5 6 1 2
equalDof 8 7 1 2

Masses are assigned to the nodes 5-8-9-12-13-16 equally.


Now my question is how can i model rigid diaphragm in this frame?
Can I use truss element for modeling rigid diaphragm? and if i can, which of specified line( by 1 and 2) of the following code is true for truss element of floor 3?

# units:SI
set mat_tag 5
set E 10.e15
set A 1.
uniaxialMaterial Elastic $mat_tag $E

#----------------------------------------------
1) element truss 20 13 16 $A $mat_tag
OR
2) element truss 20 14 15 $A $mat_tag
#----------------------------------------------
Best,
MLO
MLO
Posts: 5
Joined: Mon Feb 02, 2015 9:36 pm

Re: modelong of rigid diaphragm in 2d steel frame

Post by MLO »

Dear fmk and others, please help me kindly
It's important for me!
Best,
MLO
Jatkinson
Posts: 11
Joined: Fri Oct 25, 2013 9:31 am
Location: University of British Columbia, Canada

Re: modelong of rigid diaphragm in 2d steel frame

Post by Jatkinson »

Is there a reason why you don't want to use the rigidDiaphragm MPC? I mean, you could just restrain the out-of-plane directions. There's also a RigidLink MPC, but I haven't tried it.

http://opensees.berkeley.edu/wiki/index ... gm_command

http://opensees.berkeley.edu/wiki/index ... nk_command
Jeremy, MASc Student
University of British Columbia
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: modelong of rigid diaphragm in 2d steel frame

Post by fmk »

you can use equalDOF again .. but you will have to modify some of the existing equalDOF commands, i.e. you cannot constrain the 1 dof to 1 node and then that node to another node as well. once done with the costraints use the Penalty method to enforce them. (The transformation method is not going to like all the constraints).

alternativily you could just increase the A of the elastic beam members between the springs (the constraint will be good enough)
MLO
Posts: 5
Joined: Mon Feb 02, 2015 9:36 pm

Re: modelong of rigid diaphragm in 2d steel frame

Post by MLO »

Thanks dear fmk
According to your help, i used A=1[m2] for the beams and then i pushed the frame. Relative displacement of the 4 nodes of the beam (in the x direction) are identical, but the beams still have some axial forces! (although the forces aren't so much)

I have another question about this model (about periods):
as you know i wanted to model a 2-D steel frame with one bay ,3 story and predefined period (0.6 sec). I did this work in two steps:
_______________________________________________________________________________________
STEP 1:
In the first step, i supposed all member of the frame have elastic behavior, so by changing elastic stiffness of the members , the wanted period is satisfied. (in this step, I use equalDof between node i & j of the beems in x direction (to have rigid diaphragm behavior) and masses are defined to the nodes 5 6 7 8 9 10 equally)

9---------beam(floor 3)------------10
7---------beam(floor 2)------------8
5---------beam(floor 1)------------6

equalDOF 9 10 1
equalDOF 7 8 1
equalDOF 5 6 1
_______________________________________________________________________________________
STEP 2:
In second step, I defined nonlinear properties of the frame by using of zero length members .According to the principle of the series springs, i define stiffness properties of the bi-linear behavior of the zero length members (regarding to Krawinkler's works). zero length members only considered at the beam ends and bottom of the first story and masses are defined to the nodes 5 8 9 12 13 16 equally

13@14---------beam(floor 3)------------15@16
9@10----------beam(floor 2)------------11@12
5@6-----------beam(floor 1)------------7@8

According to your help, i used A=1[m2] for the beams to have rigid diaphragm behavior.
_______________________________________________________________________________________
For verification, I've compared the periods of the step 1 and step 2 frames

The periods of the frame in the step 1are:
T1=0.6000062131446395
T2=0.1955405043508981
T3=0.09197036157302262
T4=8.299010668812838e-8
T5=6.853930788687259e-8
T6=5.104216930332407e-8
T7=4.431025868626804e-8

The periods of the frame in the step 2 are:
T1=0.6000062131446395
T2=0.1955405043508981
T3=0.09197036157302262
T4=0.002629089363089068
T5=0.0026289388526006333
T6=0.0026281432336888147
T7=8.236524789695955e-8

As you can see, T1,T2 and T3 are identical exactly, but T4 to T7 are different essentially!!
ِDo you think my model have a problem? or this difference is normal?
note: all masses only defined in the x direction (mass 5 10000. 1e-8 1e-8)
thanks a lot
Best,
MLO
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: modelong of rigid diaphragm in 2d steel frame

Post by fmk »

as the first few modes typically dominate the response you will see little difference in response up until the yielding occurs. after that there will be a difference. to see the difference of using hinges or not simply define the hinge so they will not yield and on the same plot plot nodal responses.
ahmadbsr
Posts: 29
Joined: Thu Feb 28, 2019 5:43 am
Location: shahid chamran

Re: modelong of rigid diaphragm in 2d steel frame

Post by ahmadbsr »

fmk wrote: Thu Feb 05, 2015 3:54 pm you can use equalDOF again .. but you will have to modify some of the existing equalDOF commands, i.e. you cannot constrain the 1 dof to 1 node and then that node to another node as well. once done with the costraints use the Penalty method to enforce them. (The transformation method is not going to like all the constraints).

alternativily you could just increase the A of the elastic beam members between the springs (the constraint will be good enough)
I have the rigidlink beam and equalDOF command in my model and i tried all of the constrained but non of the them worked except the "Constrain transformation " can i use it ?
ahmadbsr
Posts: 29
Joined: Thu Feb 28, 2019 5:43 am
Location: shahid chamran

Re: modelong of rigid diaphragm in 2d steel frame

Post by ahmadbsr »

I have the rigidlink beam and equalDOF command in my model and i tried all of the constrained but non of the them worked except the "Constrain transformation " can i use it ?
selimgunay
Posts: 916
Joined: Mon Sep 09, 2013 8:50 pm
Location: University of California, Berkeley

Re: modelong of rigid diaphragm in 2d steel frame

Post by selimgunay »

Yes you need to use transformation, penalty or Lagrange multipliers for mulit-dof constraints (i.e. constraints that related different DOF to each other)
ahmadbsr
Posts: 29
Joined: Thu Feb 28, 2019 5:43 am
Location: shahid chamran

Re: modelong of rigid diaphragm in 2d steel frame

Post by ahmadbsr »

selimgunay wrote: Wed Jun 10, 2020 2:22 pm Yes you need to use transformation, penalty or Lagrange multipliers for mulit-dof constraints (i.e. constraints that related different DOF to each other)
Thanks for your time but I faced with a Problem when I run my model , It did not give me a results, my results of elements and nodes will be zero zero zero........
I will be thankful if you could help me



My Model





# In The Name Of God
# AHMAD BSR
# George D.Hatzigeorgiou a, AsteriosA.Liolios Model
# 2D Concrete Frame Model
# regular ,Model/ 3 Story
# Units KN,M
wipe ;
wipeAnalysis ;
model BasicBuilder -ndm 2 -ndf 3 ;
# define Parameters
set displayMode "displayON"
set L1 5.00 ;
set H1 3.00 ;
set DL 2000.0;
set LL 0 ;
set mConc 2000.0 ;
set FileName "3Story.regular_Spring_Rigid Model"
file mkdir $FileName ;
set fc 20e6 ;
set Ec 21019e6 ;
set Cover 0.04 ;
set pi 3.141592654 ;
# Define nodes
# Base nodes
# X Y
node 1 0.0 0.0 ;
node 2 $L1 0.0 ;
node 3 [expr 2*$L1] 0.0 ;
node 4 [expr 3*$L1] 0.0 ;
node 5 [expr 3*$L1] 0.0 ;
node 6 [expr 2*$L1] 0.0 ;
node 7 $L1 0.0 ;
node 8 0.0 0.0 ;
# First Floor
node 11 0.0 2.8 ;
node 112 0.0 2.8 ;
node 12 $L1 2.8 ;
node 122 $L1 2.8 ;

node 13 [expr 2*$L1] 2.8 ;
node 132 [expr 2*$L1] 2.8 ;
node 14 [expr 3*$L1] 2.8 ;
node 142 [expr 3*$L1] 2.8 ;
node 15 [expr 3*$L1] 3.2 ;
node 152 [expr 3*$L1] 3.2 ;
node 155 [expr 3*$L1] $H1 ;
node 16 [expr 2*$L1] 3.2 ;
node 162 [expr 2*$L1] 3.2 ;
node 166 [expr 2*$L1] $H1 ;
node 17 $L1 3.2 ;
node 172 $L1 3.2 ;
node 177 $L1 $H1 ;
node 18 0.0 3.2 ;
node 182 0.0 3.2 ;

node 188 0.0 $H1 ;
node 123 0.2 $H1 ;
node 1232 0.2 $H1 ;

node 1233 4.85 [expr 1*$H1] ;
node 12332 4.85 [expr 1*$H1] ;

node 124 5.15 [expr 1*$H1] ;
node 1242 5.15 [expr 1*$H1] ;
node 1243 9.85 [expr 1*$H1] ;
node 12432 9.85 [expr 1*$H1] ;
node 125 10.15 [expr 1*$H1] ;
node 1252 10.15 [expr 1*$H1] ;

node 1253 14.85 [expr 1*$H1] ;
node 12532 14.85 [expr 1*$H1] ;

#

# Second Floor
node 21 0.0 5.8 ;
node 212 0.0 5.8 ;
node 22 $L1 5.8 ;
node 222 $L1 5.8 ;
node 23 [expr 2*$L1] 5.8 ;
node 232 [expr 2*$L1] 5.8 ;
node 24 [expr 3*$L1] 5.8 ;
node 242 [expr 3*$L1] 5.8 ;
node 25 [expr 3*$L1] 6.2 ;
node 252 [expr 3*$L1] 6.2 ;
node 255 [expr 3*$L1] [expr 2*$H1] ;
node 26 [expr 2*$L1] 6.2 ;
node 262 [expr 2*$L1] 6.2 ;

node 266 [expr 2*$L1] [expr 2*$H1] ;
node 27 $L1 6.2 ;
node 272 $L1 6.2 ;

node 277 $L1 [expr 2*$H1] ;
node 28 0.0 6.2 ;
node 282 0.0 6.2 ;

node 288 0.0 [expr 2*$H1] ;
node 133 0.15 [expr 2*$H1] ;
node 1332 0.15 [expr 2*$H1] ;

node 1333 4.85 [expr 2*$H1] ;
node 13332 4.85 [expr 2*$H1] ;

node 134 5.15 [expr 2*$H1] ;
node 1342 5.15 [expr 2*$H1] ;
node 1343 9.85 [expr 2*$H1] ;
node 13432 9.85 [expr 2*$H1] ;

node 135 10.15 [expr 2*$H1] ;
node 1352 10.15 [expr 2*$H1] ;
node 1353 14.85 [expr 2*$H1] ;
node 13532 14.85 [expr 2*$H1] ;
# Third Floor
node 31 0.0 8.8 ;
node 312 0.0 8.8 ;

node 32 $L1 8.8 ;
node 322 $L1 8.8 ;

node 33 [expr 2*$L1] 8.8 ;
node 332 [expr 2*$L1] 8.8 ;

node 34 [expr 3*$L1] 8.8 ;
node 342 [expr 3*$L1] 8.8 ;

node 355 [expr 3*$L1] [expr 3*$H1] ;
node 366 [expr 2*$L1] [expr 3*$H1] ;
node 377 $L1 [expr 3*$H1] ;
node 388 0.0 [expr 3*$H1] ;
node 143 0.175 [expr 3*$H1] ;
node 1432 0.175 [expr 3*$H1] ;

node 1433 4.85 [expr 3*$H1] ;
node 14332 4.85 [expr 3*$H1] ;

node 144 5.15 [expr 3*$H1] ;
node 1442 5.15 [expr 3*$H1] ;
node 1443 9.85 [expr 3*$H1] ;
node 14432 9.85 [expr 3*$H1] ;

node 145 10.15 [expr 3*$H1] ;
node 1452 10.15 [expr 3*$H1] ;

node 1453 14.85 [expr 3*$H1] ;
node 14532 14.85 [expr 3*$H1] ;

# Define Constraints
fix 1 1 1 1 ;
fix 2 1 1 1 ;
fix 3 1 1 1 ;
fix 4 1 1 1 ;
# Column 1
rigidLink beam 188 11
rigidLink beam 188 18
rigidLink beam 288 21
rigidLink beam 288 28
rigidLink beam 388 31



# Column 2

rigidLink beam 177 12
rigidLink beam 177 17
rigidLink beam 277 22
rigidLink beam 277 27
rigidLink beam 377 32



# Column 3

rigidLink beam 166 13
rigidLink beam 166 16
rigidLink beam 266 23
rigidLink beam 266 26
rigidLink beam 366 33


# Column 4
rigidLink beam 155 14
rigidLink beam 155 15
rigidLink beam 255 24
rigidLink beam 255 25
rigidLink beam 355 34

#
# Beam Story 1
rigidLink beam 188 123
rigidLink beam 177 1233
rigidLink beam 177 124

rigidLink beam 166 1243
rigidLink beam 166 125
rigidLink beam 155 1253
# Beam Story 2
rigidLink beam 288 133
rigidLink beam 277 1333
rigidLink beam 277 134
rigidLink beam 266 1343
rigidLink beam 266 135
rigidLink beam 255 1353
# Beam Story 3

rigidLink beam 388 143
rigidLink beam 377 1433
rigidLink beam 377 144
rigidLink beam 366 1443
rigidLink beam 366 145
rigidLink beam 355 1453



#First Floor
equalDOF 188 123 1
equalDOF 188 1233 1
equalDOF 188 124 1
equalDOF 188 1243 1
equalDOF 188 125 1
equalDOF 188 1253 1
#Second Floor
equalDOF 288 133 1
equalDOF 288 1333 1
equalDOF 288 134 1
equalDOF 288 1343 1
equalDOF 288 135 1
equalDOF 288 1353 1

#Third Floor
equalDOF 388 143 1
equalDOF 388 1433 1
equalDOF 388 144 1
equalDOF 388 1443 1
equalDOF 388 145 1
equalDOF 388 1453 1


# mass

set g 9.86 ;
#set WeightFloor8 13289.6 ;
#set WeightFloor7 13289.6 ;
#set WeightFloor6 26579.2 ;
#set WeightFloor5 26296.4 ;
#set WeightFloor4 32870.6 ;
#set WeightFloor3 49305.8 ;
#set WeightFloor2 48775.7 ;
#set WeightFloor1 58530.8 ;
#set Weightfloor1Bay [expr ($WeightFloor1/3.0)] ;
#set Weightfloor2Bay [expr ($WeightFloor2/3.0)] ;
#set Weightfloor3Bay [expr ($WeightFloor3/3.0)] ;
#set Weightfloor4Bay [expr ($WeightFloor4/2.0)] ;
#set Weightfloor5Bay [expr ($WeightFloor5/2.0)] ;
#set Weightfloor6Bay [expr ($WeightFloor6/2.0)] ;
#set Weightfloor7Bay [expr ($WeightFloor7/1.0)] ;
#set Weightfloor8Bay [expr ($WeightFloor8/1.0)] ;

set WeightFloor3 [expr (39868.8)] ;
set WeightFloor2 [expr (39868.8)] ;
set WeightFloor1 [expr (39868.8)] ;
set Weightfloor1Bay [expr ($WeightFloor1/3.0)] ;
set Weightfloor2Bay [expr ($WeightFloor2/3.0)] ;
set Weightfloor3Bay [expr ($WeightFloor3/3.0)] ;



#set ColumnFloor1 60321.6 ;
#set ColumnFloor2 45241.2 ;
#set ColumnFloor3 34637.8 ;
#set ColumnFloor4 25978.3 ;
#set ColumnFloor5 25978.3 ;
#set ColumnFloor6 19086.1 ;
#set ColumnFloor7 12724.1 ;
#set ColumnFloor8 12724.1 ;
#
#set WeightColumnFloor1 [expr ($ColumnFloor1/4)];
#set WeightColumnFloor2 [expr ($ColumnFloor2/4)] ;
#set WeightColumnFloor3 [expr ($ColumnFloor3/4)] ;
#set WeightColumnFloor4 [expr ($ColumnFloor4/3)] ;
#set WeightColumnFloor5 [expr ($ColumnFloor5/3)] ;
#set WeightColumnFloor6 [expr ($ColumnFloor6/3)] ;
#set WeightColumnFloor7 [expr ($ColumnFloor7/2)] ;
set DD 50000 ;
set DL [expr 0.2*25000] ;


#set WeightColumnFloor8 [expr ($ColumnFloor8/2)] ;



## First Floor

# First Floor


mass 112 [expr ((($Weightfloor1Bay/$g)/2)+(3181.0+3181.0+$DD+$DL)/$g)] 1.e-9 1.e-9 ;
mass 122 [expr (($Weightfloor1Bay/$g)+(3181.0+3181.0+(2*($DD+$DL))/$g))] 1.e-9 1.e-9 ;
mass 132 [expr (($Weightfloor1Bay/$g)+(3181.0+3181.0+(2*($DD+$DL))/$g))] 1.e-9 1.e-9 ;
mass 142 [expr ((($Weightfloor1Bay/$g)/2)+(3181.0+$DD+$DL)/$g)] 1.e-9 1.e-9 ;
# Second Floor
#
mass 212 [expr ((($Weightfloor2Bay/$g)/2)+(3181.0+3181.0+$DD+$DL)/$g)] 1.e-9 1.e-9 ;
mass 222 [expr (($Weightfloor2Bay/$g)+(3181.0+3181.0+(2*($DD+$DL))/$g))] 1.e-9 1.e-9 ;
mass 232 [expr (($Weightfloor2Bay/$g)+(3181.0+3181.0+(2*($DD+$DL))/$g))] 1.e-9 1.e-9 ;
mass 242 [expr ((($Weightfloor2Bay/$g)/2)+(3181.0+3181.0+$DD+$DL)/$g)] 1.e-9 1.e-9 ;
# Third Floor
#
mass 312 [expr ((($Weightfloor3Bay/$g)/2)+(3181.0+(2*($DD+$DL)))/$g)] 1.e-9 1.e-9 ;
mass 322 [expr (($Weightfloor3Bay/$g)+(3181.0+3181.0+(2*($DD+$DL))/$g))] 1.e-9 1.e-9 ;
mass 332 [expr (($Weightfloor3Bay/$g)+(3181.0+3181.0+(2*($DD+$DL))/$g))] 1.e-9 1.e-9 ;
mass 342 [expr ((($Weightfloor3Bay/$g)/2)+(3181.0+(2*($DD+$DL)))/$g)] 1.e-9 1.e-9





#set mass [expr ((($Weightfloor8Bay/$g)/2)+(($WeightColumnFloor8/2)+$DD)/$g)]
#Define Material
set fc1C 30.0e6 ; # CONFINED concrete (mander model), maximum stress
set eps1C [expr 2.*$fc1C/$Ec]; # strain at maximum stress
set fc2C [expr 0.2*$fc1C]; # ultimate stress
set eps2C [expr 5*$eps1C]; # strain at ultimate stress
# unconfined concrete
set fc1U $fc; # UNCONFINED concrete (todeschini parabolic model), maximum stress
set eps1U -0.003; # strain at maximum strength of unconfined concrete
set fc2U [expr 0.2*$fc1U]; # ultimate stress
set eps2U -0.01; # strain at ultimate stress
set lambda 0.1; # ratio between unloading slope at $eps2 and initial slope $Ec
# tensile-strength properties
set ftC [expr -0.14*$fc1C]; # tensile strength +tension
set ftU [expr -0.14*$fc1U]; # tensile strength +tension
set Ets [expr $ftU/0.002]; # tension softening stiffness

# Define Material
# n,mm
# Define Steel matTag fy fu Es Esh esh eult
uniaxialMaterial Steel02 1 500e6 2e11 0.01 15 .925 .15
uniaxialMaterial Steel02 41 500e6 2e11 0.01 15 .925 .15

# Define Concrte
# (Confined) matTag
uniaxialMaterial Concrete06 2 30e6 -0.003 1.88 1 0.32 1.38e6 0.00008 0.4 0.08; # build cover concrete (unconfined)

uniaxialMaterial Concrete06 3 20e6 -0.003 1.88 1 0.32 1.38e6 0.00008 0.4 0.08; # build cover concrete (unconfined)

#uniaxialMaterial Concrete02 2 $fc1C $eps1C $fc2C $eps2C $lambda $ftC $Ets;
#
#(Unconfined)
#uniaxialMaterial Concrete02 3 $fc1U $eps1U $fc2U $eps2U $lambda $ftU $Ets; # build cover concrete (unconfined)
## Define Sections
#uniaxialMaterial Concrete01 2 -24.e3 -0.002 -4.8e3 -0.005
##uniaxialMaterial Concrete01 3 -28.e3 -0.0024 -5.6e3 -0.015



# Define Sections
# Columns C 30*30 18
set c 0.3 ;
set c2 [expr ($c/2.0)-$Cover] ;
set c3 [expr $c/2.0] ;
set space [expr (0.3-(2.0*$Cover))/2] ;
set CoreMat 2 ;
set CoverMat 3 ;
set BarMatC 1 ;
set UpNum 3 ;
set MidNum 2 ;
set DownNum 3
set UpA18 [expr pow(9.e-3,2)*2*asin(1)];
set UpA22 [expr pow(11.e-3,2)*2*asin(1)] ;
set DownA18 [expr pow(9.e-3,2)*2*asin(1)] ;
set DownA22 [expr pow(11.e-3,2)*2*asin(1)] ;
set MidA18 [expr pow(9.e-3,2)*2*asin(1)] ;
set MidA22 [expr pow(11.e-3,2)*2*asin(1)] ;
# Columns
# C30*30
set hcf 0.3
set hcfi [expr $hcf-2*$Cover]
set hcfii [expr (($hcf-2*$Cover)-$space)]
set bcf 0.3
set bcfi [expr $bcf-2*$Cover]
set hcs 0.3
set hcsi [expr $hcs-2*$Cover]
set bcs 0.3
set bcsi [expr $bcs-2*$Cover]
# C35*35
set hcs35 0.35
set hcsi35 [expr $hcs35-2*$Cover]
set bcs35 0.35
set bcsi35 [expr $hcs35-2*$Cover]
set bcfi35 [expr $hcs35-2*$Cover]
set hcf35 0.35
set hcfi35 [expr $hcf35-2*$Cover]
set hcfii35 [expr (($hcf35-2*$Cover)-$space)]
set space35 [expr (0.35-(2.0*$Cover))/2] ;

# C40*40
set hcs40 0.40
set hcsi40 [expr $hcs40-2*$Cover]
set bcsi40 [expr $hcs40-2*$Cover]
set hcf40 0.40
set hcfi40 [expr $hcf40-2*$Cover]
set hcfii40 [expr (($hcf40-2*$Cover)-$space)]
set space40 [expr (0.4-(2.0*$Cover))/2] ;
set bcs40 0.40
set bcfi40 [expr $hcs40-2*$Cover]

# Beams


# Beam 30*40
set hbs 0.4
set hbsi [expr $hbs-2*$Cover]
set bbs 0.3
set bbsi [expr $bbs-2*$Cover]
# Beam 30*50
set hbs5 0.5
set hbsi5 [expr $hbs5-2*$Cover]
set bbs5 0.3
set bbsi5 [expr $bbs5-2*$Cover]

# Beam 30*60
set hbs6 0.6
set hbsi6 [expr $hbs6-2*$Cover]
set bbs6 0.3
set bbsi6 [expr $bbs6-2*$Cover]


section Fiber 303018 {
patch quad $CoreMat 20 20 [expr -$hcfi/2] [expr $bcfi/2] [expr -$hcfi/2] [expr -$bcfi/2] [expr $hcfi/2] [expr -$bcfi/2] [expr $hcfi/2] [expr $bcfi/2]
patch quad $CoverMat 6 20 [expr -$hcf/2] [expr $bcf/2] [expr -$hcf/2] [expr -$bcf/2] [expr -$hcfi/2] [expr -$bcf/2] [expr -$hcfi/2] [expr $bcf/2]
patch quad $CoverMat 20 6 [expr -$hcfi/2] [expr -$bcfi/2] [expr -$hcfi/2] [expr -$bcf/2] [expr $hcfi/2] [expr -$bcf/2] [expr $hcfi/2] [expr -$bcfi/2]
patch quad $CoverMat 6 20 [expr $hcfi/2] [expr $bcf/2] [expr $hcfi/2] [expr -$bcf/2] [expr $hcf/2] [expr -$bcf/2] [expr $hcf/2] [expr $bcf/2]
patch quad $CoverMat 20 6 [expr -$hcfi/2] [expr $bcf/2] [expr -$hcfi/2] [expr $bcfi/2] [expr $hcfi/2] [expr $bcfi/2] [expr $hcfi/2] [expr $bcf/2]

layer straight $BarMatC 3 [expr pow(9e-3,2)*2*asin(1)] [expr -$hcfi/2] [expr $bcfi/2] [expr -$hcfi/2] [expr -$bcfi/2]
layer straight $BarMatC 3 [expr pow(9e-3,2)*2*asin(1)] [expr $hcfi/2] [expr $bcfi/2] [expr $hcfi/2] [expr -$bcfi/2]
layer straight $BarMatC 2 [expr pow(9e-3,2)*2*asin(1)] [expr $hcfii] [expr $bcfi/2] [expr $hcfii] [expr -$bcfi/2]
} ;

# Column C 30*30 22
section Fiber 303022 { ;
# MatTag Nij Njk yi zi yj zj yk zk yl zl
patch quad $CoreMat 20 20 [expr -$hcfi/2] [expr $bcfi/2] [expr -$hcfi/2] [expr -$bcfi/2] [expr $hcfi/2] [expr -$bcfi/2] [expr $hcfi/2] [expr $bcfi/2]
patch quad $CoverMat 6 20 [expr -$hcf/2] [expr $bcf/2] [expr -$hcf/2] [expr -$bcf/2] [expr -$hcfi/2] [expr -$bcf/2] [expr -$hcfi/2] [expr $bcf/2]
patch quad $CoverMat 20 6 [expr -$hcfi/2] [expr -$bcfi/2] [expr -$hcfi/2] [expr -$bcf/2] [expr $hcfi/2] [expr -$bcf/2] [expr $hcfi/2] [expr -$bcfi/2]
patch quad $CoverMat 6 20 [expr $hcfi/2] [expr $bcf/2] [expr $hcfi/2] [expr -$bcf/2] [expr $hcf/2] [expr -$bcf/2] [expr $hcf/2] [expr $bcf/2]
patch quad $CoverMat 20 6 [expr -$hcfi/2] [expr $bcf/2] [expr -$hcfi/2] [expr $bcfi/2] [expr $hcfi/2] [expr $bcfi/2] [expr $hcfi/2] [expr $bcf/2]
# MatTag BarNum BarA YStart ZStart YEnd ZEnd
layer straight $BarMatC 3 [expr pow(11e-3,2)*2*asin(1)] [expr -$hcfi/2] [expr $bcfi/2] [expr -$hcfi/2] [expr -$bcfi/2]
layer straight $BarMatC 3 [expr pow(11e-3,2)*2*asin(1)] [expr $hcfi/2] [expr $bcfi/2] [expr $hcfi/2] [expr -$bcfi/2]
layer straight $BarMatC 2 [expr pow(11e-3,2)*2*asin(1)] [expr -$hcfii] [expr $bcfi/2] [expr -$hcfii] [expr -$bcfi/2]

};



puts "ahmad"
#Beam B30/40
set CoreBMat 12 ;
set BarMatB 41 ;
set BB1 0.3 ;
set D1 0.40 ;
set BB2 [expr $BB1/2] ;
set D2 [expr $D1/2] ;
set D3 [expr ($D1/2)-$Cover] ;
set BB3 [expr ($BB1/2)-$Cover] ;
set fcb [expr 1.3*$fc] ;
set eps1b [expr 2.*$fcb/$Ec];
set fc2b [expr 0.2*$fcb] ;
set eps2b [expr 5*$eps1b] ;
set BarAB [expr pow(8.e-3,2)*2*asin(1)] ;
uniaxialMaterial Concrete06 12 24e6 -0.0038 1.88 1 0.32 1.38e6 0.00008 0.4 0.08 ; # build core concrete (confined)

section Fiber 30405 { ;
# MatTag Nij Njk yi zi yj zj yk zk yl zl

patch quad $CoreBMat 20 20 [expr -$hbsi/2] [expr $bbsi/2] [expr -$hbsi/2] [expr -$bbsi/2] [expr $hbsi/2] [expr -$bbsi/2] [expr $hbsi/2] [expr $bbsi/2]
patch quad $CoverMat 6 20 [expr -$hbs/2] [expr $bbs/2] [expr -$hbs/2] [expr -$bbs/2] [expr -$hbsi/2] [expr -$bbs/2] [expr -$hbsi/2] [expr $bbs/2]
patch quad $CoverMat 20 6 [expr -$hbsi/2] [expr -$bbsi/2] [expr -$hbsi/2] [expr -$bbs/2] [expr $hbsi/2] [expr -$bbs/2] [expr $hbsi/2] [expr -$bbsi/2]
patch quad $CoverMat 6 20 [expr $hbsi/2] [expr $bbs/2] [expr $hbsi/2] [expr -$bbs/2] [expr $hbs/2] [expr -$bbs/2] [expr $hbs/2] [expr $bbs/2]
patch quad $CoverMat 20 6 [expr -$hbsi/2] [expr $bbs/2] [expr -$hbsi/2] [expr $bbsi/2] [expr $hbsi/2] [expr $bbsi/2] [expr $hbsi/2] [expr $bbs/2]

layer straight $BarMatC 3 [expr pow(8e-3,2)*2*asin(1)] [expr -$hbsi/2] [expr $bbsi/2] [expr -$hbsi/2] [expr -$bbsi/2]
layer straight $BarMatC 5 [expr pow(8e-3,2)*2*asin(1)] [expr $hbsi/2] [expr $bbsi/2] [expr $hbsi/2] [expr -$bbsi/2]
};
section Fiber 30406 { ;
# MatTag Nij Njk yi zi yj zj yk zk yl zl
patch quad $CoreBMat 20 20 [expr -$hbsi/2] [expr $bbsi/2] [expr -$hbsi/2] [expr -$bbsi/2] [expr $hbsi/2] [expr -$bbsi/2] [expr $hbsi/2] [expr $bbsi/2]
patch quad $CoverMat 6 20 [expr -$hbs/2] [expr $bbs/2] [expr -$hbs/2] [expr -$bbs/2] [expr -$hbsi/2] [expr -$bbs/2] [expr -$hbsi/2] [expr $bbs/2]
patch quad $CoverMat 20 6 [expr -$hbsi/2] [expr -$bbsi/2] [expr -$hbsi/2] [expr -$bbs/2] [expr $hbsi/2] [expr -$bbs/2] [expr $hbsi/2] [expr -$bbsi/2]
patch quad $CoverMat 6 20 [expr $hbsi/2] [expr $bbs/2] [expr $hbsi/2] [expr -$bbs/2] [expr $hbs/2] [expr -$bbs/2] [expr $hbs/2] [expr $bbs/2]
patch quad $CoverMat 20 6 [expr -$hbsi/2] [expr $bbs/2] [expr -$hbsi/2] [expr $bbsi/2] [expr $hbsi/2] [expr $bbsi/2] [expr $hbsi/2] [expr $bbs/2]

layer straight $BarMatC 3 [expr pow(8e-3,2)*2*asin(1)] [expr -$hbsi/2] [expr $bbsi/2] [expr -$hbsi/2] [expr -$bbsi/2]
layer straight $BarMatC 6 [expr pow(8e-3,2)*2*asin(1)] [expr $hbsi/2] [expr $bbsi/2] [expr $hbsi/2] [expr -$bbsi/2]


};


puts "ahmad"
# Define Transformation
geomTransf Linear 1 ;
geomTransf Corotational 2 ;
# Define Elements
set Load [expr (10000)] ;

# Define Hyesteretic Material for SPRING
# Column 303018
# Column 303018
set My_Col3030183 96864 ;# yield moment of the columns
set Mu_Col3030183 116667 ; # ultimate moment of the columns
set K_slip3030183 23921004.5 ;
set THy_Col3030183 [expr $My_Col3030183/$K_slip3030183]; # yield chord rotation for columns of the 1st floor in rad
set THu_Col3030183 0.038196; # ultimate chord rotation for columns of the 1st floor in rad (EC8)
# Column 303022
set My_Col3030223 139969 ;# yield moment of the columns
set Mu_Col3030223 164410 ; # ultimate moment of the columns
set K_slip3030223 28279400.28 ;
set THy_Col3030223 [expr $My_Col3030223/$K_slip3030223]; # yield chord rotation for columns of the 1st floor in rad
set THu_Col3030223 0.033119; # ultimate chord rotation for columns of the 1st floor in rad (EC8)

##########################################
##Beam
set My_Beam304055 93621 ;# yield moment of the columns
set Mu_Beam304055 129558 ; # ultimate moment of the columns
set K_slipBeam304055 436030898.3 ;

#set K_slipBeam304055 [expr 0.35*645150000] ;


set THy_Beam304055 [expr $My_Beam304055/$K_slipBeam304055]; # yield chord rotation for columns of the 1st floor in rad
set THu_Beam304055 0.089954; # ultimate chord rotation for columns of the 1st floor in rad (EC8)




set Arigid 0.12; # define area of truss section (make much larger than A of frame elements)
set Irigid 0.001870;


#define element
set Beta 1.0 ;


# Column303018
uniaxialMaterial Hysteretic 3030183 $My_Col3030183 $THy_Col3030183 $Mu_Col3030183 $THu_Col3030183 [expr $My_Col3030183*(-1)] [expr $THy_Col3030183*(-1)] [expr $Mu_Col3030183*(-1)] [expr $THu_Col3030183*(-1)] 1 1 0 0 $Beta ;
#Column303022
puts "ahmad"
uniaxialMaterial Hysteretic 3030223 $My_Col3030223 $THy_Col3030223 $Mu_Col3030223 $THu_Col3030223 [expr $My_Col3030223*(-1)] [expr $THy_Col3030223*(-1)] [expr $Mu_Col3030223*(-1)] [expr $THu_Col3030223*(-1)] 1 1 0 0 $Beta ;
puts "ahmad"

###########BEAM
uniaxialMaterial Hysteretic 304055 $My_Beam304055 $THy_Beam304055 $Mu_Beam304055 $THu_Beam304055 [expr $My_Beam304055*(-1)] [expr $THy_Beam304055*(-1)] [expr $Mu_Beam304055*(-1)] [expr $THu_Beam304055*(-1)] 1 1 0 0 $Beta ;




puts "ahmad"
# Define Elements
# Columns
# First Floor

# Tag inode jnode np SecTag TransT Mass
element nonlinearBeamColumn 1 8 112 5 303018 1 ;
element nonlinearBeamColumn 2 7 122 5 303022 1 ;
element nonlinearBeamColumn 3 6 132 5 303022 1 ;
element nonlinearBeamColumn 4 5 142 5 303018 1 ;
# Second Floor
# Tag inode jnode np SecTag TransT Mass
element nonlinearBeamColumn 11 182 212 5 303018 1 ;
element nonlinearBeamColumn 12 172 222 5 303022 1 ;
element nonlinearBeamColumn 13 162 232 5 303022 1 ;
element nonlinearBeamColumn 14 152 242 5 303018 1 ;
# Third Floor Tag inode jnode np SecTag TransT Mass
element nonlinearBeamColumn 21 282 312 5 303018 1 ;
element nonlinearBeamColumn 22 272 322 5 303022 1 ;
element nonlinearBeamColumn 23 262 332 5 303022 1 ;
element nonlinearBeamColumn 24 252 342 5 303018 1 ;


## Beams
## First Floor
## Tag inode jnode np SecT TransT Mass
element nonlinearBeamColumn 101 1232 12332 5 30405 2
element nonlinearBeamColumn 102 1242 12432 5 30405 2
element nonlinearBeamColumn 103 1252 12532 5 30405 2
# Second Floor
# Tag inode jnode np SecT TransT Mass
element nonlinearBeamColumn 201 1332 13332 5 30405 2
element nonlinearBeamColumn 202 1342 13432 5 30405 2
element nonlinearBeamColumn 203 1352 13532 5 30405 2
# Third Floor
# Tag inode jnode np SecT TransT Mass
element nonlinearBeamColumn 301 1432 14332 5 30405 2
element nonlinearBeamColumn 302 1442 1443 5 30405 2
element nonlinearBeamColumn 303 1452 14532 5 30405 2











puts "End of Define Model"



#COLUMNS/Spring
element zeroLength 111 1 8 -mat 3030183 -dir 6
element zeroLength 112 2 7 -mat 3030223 -dir 6
element zeroLength 113 3 6 -mat 3030223 -dir 6
element zeroLength 114 4 5 -mat 3030183 -dir 6
# UP
element zeroLength 1111 11 112 -mat 3030183 -dir 6
element zeroLength 1112 12 122 -mat 3030223 -dir 6
element zeroLength 1113 13 132 -mat 3030223 -dir 6
element zeroLength 1114 14 142 -mat 3030183 -dir 6
# Second Floor
# Down
element zeroLength 218 18 182 -mat 3030183 -dir 6
element zeroLength 217 17 172 -mat 3030223 -dir 6
element zeroLength 216 16 162 -mat 3030223 -dir 6
element zeroLength 215 15 152 -mat 3030183 -dir 6
# UP
element zeroLength 2211 21 212 -mat 3030183 -dir 6
element zeroLength 2212 22 222 -mat 3030223 -dir 6
element zeroLength 2213 23 232 -mat 3030223 -dir 6
element zeroLength 2214 24 242 -mat 3030183 -dir 6
# Third Floor
# Down
element zeroLength 318 28 282 -mat 3030183 -dir 6
element zeroLength 317 27 272 -mat 3030223 -dir 6
element zeroLength 316 26 262 -mat 3030223 -dir 6
element zeroLength 315 25 252 -mat 3030183 -dir 6
# UP
element zeroLength 3311 31 312 -mat 3030183 -dir 6
element zeroLength 3312 32 322 -mat 3030223 -dir 6
element zeroLength 3313 33 332 -mat 3030223 -dir 6
element zeroLength 3314 34 342 -mat 3030183 -dir 6
#################################################################################
#BEAMS/Spring

element zeroLength 9911 123 1232 -mat 304055 -dir 6
element zeroLength 9912 1233 12332 -mat 304055 -dir 6
element zeroLength 9913 124 1242 -mat 304055 -dir 6
element zeroLength 9914 1243 12432 -mat 304055 -dir 6
element zeroLength 9915 125 1252 -mat 304055 -dir 6
element zeroLength 9916 1253 12532 -mat 304055 -dir 6
element zeroLength 9917 133 1332 -mat 304055 -dir 6
element zeroLength 9918 1333 13332 -mat 304055 -dir 6
element zeroLength 9919 134 1342 -mat 304055 -dir 6
element zeroLength 9920 1343 13432 -mat 304055 -dir 6
element zeroLength 9921 135 1352 -mat 304055 -dir 6
element zeroLength 9922 1353 13532 -mat 304055 -dir 6
element zeroLength 9923 143 1432 -mat 304055 -dir 6
element zeroLength 9924 1433 14332 -mat 304055 -dir 6
element zeroLength 9925 144 1442 -mat 304055 -dir 6
element zeroLength 9926 1443 14432 -mat 304055 -dir 6
element zeroLength 9927 145 1452 -mat 304055 -dir 6
element zeroLength 9928 1453 14532 -mat 304055 -dir 6
###

# EQUALDOF Rotational Springs
# Columns
# First Floor
equalDOF 1 8 1 2
equalDOF 2 7 1 2
equalDOF 3 6 1 2
equalDOF 4 5 1 2
equalDOF 11 112 1 2
equalDOF 12 122 1 2
equalDOF 13 132 1 2
equalDOF 14 142 1 2
# Second Floor
equalDOF 18 182 1 2
equalDOF 17 172 1 2
equalDOF 16 162 1 2
equalDOF 15 152 1 2
equalDOF 21 212 1 2
equalDOF 22 222 1 2
equalDOF 23 232 1 2
equalDOF 24 242 1 2
# Third Floor
equalDOF 28 282 1 2
equalDOF 27 272 1 2
equalDOF 26 262 1 2
equalDOF 25 252 1 2
equalDOF 31 312 1 2
equalDOF 32 322 1 2
equalDOF 33 332 1 2
equalDOF 34 342 1 2

################################################
#Beams
#################
equalDOF 123 1232 1 2
equalDOF 1233 12332 1 2
equalDOF 124 1242 1 2
equalDOF 1243 12432 1 2
equalDOF 125 1252 1 2
equalDOF 1253 12532 1 2
#####################
equalDOF 133 1332 1 2
equalDOF 1333 13332 1 2
equalDOF 134 1342 1 2
equalDOF 1343 13432 1 2
equalDOF 135 1352 1 2
equalDOF 1353 13532 1 2
#############################
equalDOF 143 1432 1 2
equalDOF 1433 14332 1 2
equalDOF 144 1442 1 2
equalDOF 1443 14432 1 2
equalDOF 145 1452 1 2
equalDOF 1453 14532 1 2
#######################




puts "model build!"

#Define Eigen Parameters
#set a [eigen 6] ;
#set W11 [lindex $a 0] ;
#set W22 [lindex $a 1] ;
#set W33 [lindex $a 2] ;
#set W44 [lindex $a 3] ;
#set W55 [lindex $a 4] ;
#set W66 [lindex $a 5] ;
#set W1 [expr pow($W11,0.5)] ;
#set W2 [expr pow($W22,0.5)] ;
#set W3 [expr pow($W33,0.5)] ;
#set W4 [expr pow($W44,0.5)] ;
#set W5 [expr pow($W55,0.5)] ;
#set W6 [expr pow($W66,0.5)] ;
#set T1 [expr 2.0*$pi/$W1] ;
#set T2 [expr 2.0*$pi/$W2] ;
#set T3 [expr 2.0*$pi/$W3] ;
#set T4 [expr 2.0*$pi/$W4] ;
#set T5 [expr 2.0*$pi/$W5] ;
#set T6 [expr 2.0*$pi/$W6] ;
#set Load [expr (10000)] ;
#puts "*************"
#puts "W1=$W1 Rad/Sec"
#puts "T1=$T1 Sec"
#puts "*************"
#puts "W2=$W2 Rad/Sec"
#puts "T2=$T2 Sec"
#puts "*************"
#puts "W3=$W3 Rad/Sec"
#puts "T3=$T3 Sec"
#puts "*************"
#puts "W4=$W4 Rad/Sec"
#puts "T4=$T4 Sec"
#puts "*************"
#puts "W5=$W5 Rad/Sec"
#puts "T5=$T5 Sec"
#puts "*************"
#puts "W6=$W6 Rad/Sec"
#puts "T6=$T6 Sec"
#puts "****

set lambda [eigen -fullGenLapack 6];

# calculate frequencies and periods of the structure
set omega {}
set f {}
set T {}
set pi 3.141593

foreach lam $lambda {
lappend omega [expr sqrt($lam)]
lappend f [expr sqrt($lam)/(2*$pi)]
lappend T [expr (2*$pi)/sqrt($lam)]
}
puts "Periods are $T"

set Load [expr (20000+10000) ]

# Define Load
pattern Plain 1 Linear { ;
eleLoad -ele 101 102 103 -type -beamUniform -$Load
eleLoad -ele 201 202 203 -type -beamUniform -$Load
eleLoad -ele 301 302 303 -type -beamUniform -$Load
} ;





recorder Element -file ele302.out -time -ele 301 disp ;
recorder Node -file reaction1.out -time -node 388 -dof 1 2 3 disp ;


puts "si"

set GravSteps 10
set Tol 1.0e-8
set TimeStep [expr 1/$GravSteps]



system BandGeneral
constraints Transformation
numberer RCM
test NormDispIncr $Tol 6
algorithm ModifiedNewton
integrator LoadControl $TimeStep
analysis Static
analyze $GravSteps
loadConst -time 0.1
puts "Gravity Analysis Complete"



set lambda [eigen -fullGenLapack 6];

# calculate frequencies and periods of the structure
set omega {}
set f {}
set T {}
set pi 3.141593

foreach lam $lambda {
lappend omega [expr sqrt($lam)]
lappend f [expr sqrt($lam)/(2*$pi)]
lappend T [expr (2*$pi)/sqrt($lam)]
}
puts "Periods are $T"
Post Reply