RigidFrame3D.tcl

# Written: MHS

# email: mhscott@ce.berkeley.edu

# Date: 3 Dec 1999

#

# Units: kip, in

#

# NOTE: to RUN this example, run the g3 interpreter and

# type the command: source RigidFrame3D.tcl

# Define the model builder

model BasicBuilder -ndm 3 -ndf 6

# Gravitational constant

set g 386.4

# Story height

set h 144

# Width in Y direction

set by 240

# Width in X direction

set bx 240

# Dead Load (ksi)

set dl [expr 0.3/144]

# Live Load (ksi)

set ll [expr 0.2/144]

# Define nodes

# X Y Z

node 1 [expr -$by/2] [expr $bx/2] 0

node 2 [expr $by/2] [expr $bx/2] 0

node 3 [expr $by/2] [expr -$bx/2] 0

node 4 [expr -$by/2] [expr -$bx/2] 0

node 5 [expr -$by/2] [expr $bx/2] $h

node 6 [expr $by/2] [expr $bx/2] $h

node 7 [expr $by/2] [expr -$bx/2] $h

node 8 [expr -$by/2] [expr -$bx/2] $h

node 10 [expr -$by/2] [expr $bx/2] [expr 2*$h]

node 11 [expr $by/2] [expr $bx/2] [expr 2*$h]

node 12 [expr $by/2] [expr -$bx/2] [expr 2*$h]

node 13 [expr -$by/2] [expr -$bx/2] [expr 2*$h]

node 15 [expr -$by/2] [expr $bx/2] [expr 3*$h]

node 16 [expr $by/2] [expr $bx/2] [expr 3*$h]

node 17 [expr $by/2] [expr -$bx/2] [expr 3*$h]

node 18 [expr -$by/2] [expr -$bx/2] [expr 3*$h]

# Set base constraints

# DX DY DZ RX RY RZ

fix 1 1 1 1 1 1 1

fix 2 1 1 1 1 1 1

fix 3 1 1 1 1 1 1

fix 4 1 1 1 1 1 1

# Mass lumped at master node

set m [expr ($dl+$ll)*$bx*$by/$g]

# Rotary inertia of floor about master node

set i [expr $m*($bx^2+$by^2)/12.0]

# Master nodes for rigid diaphragm

node 9 0 0 $h -mass $m $m 0 0 0 $i

node 14 0 0 [expr 2*$h] -mass $m $m 0 0 0 $i

node 19 0 0 [expr 3*$h] -mass $m $m 0 0 0 $i

# Define rigid diaphragm constraints

# normalDir master slaves

rigidDiaphragm 3 9 5 6 7 8

rigidDiaphragm 3 14 10 11 12 13

rigidDiaphragm 3 19 15 16 17 18

# Constraints for rigid diaphragm master nodes

fix 9 0 0 1 1 1 0

fix 14 0 0 1 1 1 0

fix 19 0 0 1 1 1 0

# Define materials

# Core concrete

# tag -f'c -epsc0 -f'cu -epscu

uniaxialMaterial Concrete01 1 -5.0 -0.005 -3.5 -0.02

# Cover concrete

uniaxialMaterial Concrete01 2 -4.0 -0.002 0.0 -0.006

# Steel model

# tag fy E b

uniaxialMaterial Steel01 3 60 30000 0.02

# Torsional stiffness

set G 2000

# Column polar moment of inertia

set Jcol 5000

# Column cross-sectional area

set Acol 576

# Column moment of inertia

set Icol 28000

# Elastic modulus of concrete

set E 4000

# Geometric transformation

# tag vecxz

geomTransf Linear 1 1 0 0

# Define elements

# COLUMNS

# tag ndI ndJ A E G Jx Iy Iz transf

element elasticBeamColumn 1 1 5 $Acol $E $G $Jcol $Icol $Icol 1

element elasticBeamColumn 2 2 6 $Acol $E $G $Jcol $Icol $Icol 1

element elasticBeamColumn 3 3 7 $Acol $E $G $Jcol $Icol $Icol 1

element elasticBeamColumn 4 4 8 $Acol $E $G $Jcol $Icol $Icol 1

element elasticBeamColumn 5 5 10 $Acol $E $G $Jcol $Icol $Icol 1

element elasticBeamColumn 6 6 11 $Acol $E $G $Jcol $Icol $Icol 1

element elasticBeamColumn 7 7 12 $Acol $E $G $Jcol $Icol $Icol 1

element elasticBeamColumn 8 8 13 $Acol $E $G $Jcol $Icol $Icol 1

element elasticBeamColumn 9 10 15 $Acol $E $G $Jcol $Icol $Icol 1

element elasticBeamColumn 10 11 16 $Acol $E $G $Jcol $Icol $Icol 1

element elasticBeamColumn 11 12 17 $Acol $E $G $Jcol $Icol $Icol 1

element elasticBeamColumn 12 13 18 $Acol $E $G $Jcol $Icol $Icol 1

# Number of Lobatto integration points

set np 4

# Beam polar moment of inertia

set Jbeam 4000

# Torsional stiffness

set GJ [expr $G*$Jbeam]

# Source in the procedure definition for generating an RC section

source RCsection.tcl

# Call the procedure to generate a column section

# id h b cover core cover steel nBars barArea nfCoreY nfCoreZ nfCoverY nfCoverZ

RCsection 1 18 15 2.5 1 2 3 3 0.79 8 8 10 10

# Linear elastic torion

uniaxialMaterial Elastic 10 $GJ

# Attach torsion to the RC section

# tag uniTag uniCode secTag

section Aggregator 2 10 T -section 1

# Geometric transformation

# tag vecxz

geomTransf Linear 2 0 0 1

# BEAMS

# tag ndI ndJ nPts secID transf

element nonlinearBeamColumn 13 5 6 $np 2 2

element nonlinearBeamColumn 14 6 7 $np 2 2

element nonlinearBeamColumn 15 7 8 $np 2 2

element nonlinearBeamColumn 16 8 5 $np 2 2

element nonlinearBeamColumn 17 10 11 $np 2 2

element nonlinearBeamColumn 18 11 12 $np 2 2

element nonlinearBeamColumn 19 12 13 $np 2 2

element nonlinearBeamColumn 20 13 10 $np 2 2

element nonlinearBeamColumn 21 15 16 $np 2 2

element nonlinearBeamColumn 22 16 17 $np 2 2

element nonlinearBeamColumn 23 17 18 $np 2 2

element nonlinearBeamColumn 24 18 15 $np 2 2

# Gravity load applied at each corner node

set p [expr -$m*$g/4]

# Define gravity loads

pattern Plain 1 Linear {

load 5 0.0 0.0 $p 0.0 0.0 0.0 -const

load 6 0.0 0.0 $p 0.0 0.0 0.0 -const

load 7 0.0 0.0 $p 0.0 0.0 0.0 -const

load 8 0.0 0.0 $p 0.0 0.0 0.0 -const

load 10 0.0 0.0 $p 0.0 0.0 0.0 -const

load 11 0.0 0.0 $p 0.0 0.0 0.0 -const

load 12 0.0 0.0 $p 0.0 0.0 0.0 -const

load 13 0.0 0.0 $p 0.0 0.0 0.0 -const

load 15 0.0 0.0 $p 0.0 0.0 0.0 -const

load 16 0.0 0.0 $p 0.0 0.0 0.0 -const

load 17 0.0 0.0 $p 0.0 0.0 0.0 -const

load 18 0.0 0.0 $p 0.0 0.0 0.0 -const

}

set accelSeries "Path -filePath tabasFN.txt -dt 0.02 -factor $g"

# Define the ground motion excitation using Tabas fault parallel and fault normal records

# tag dir accel series args

pattern UniformExcitation 2 1 -accel $accelSeries

pattern UniformExcitation 3 2 -accel $accelSeries

# Record DOF 1 and 2 displacements at nodes 9, 14, and 19

recorder Node RigidFrame3D.out disp -time -node 9 14 19 -dof 1 2

# Source in commands to display the structure

source RigidFrame3Ddisplay.tcl

# Convergence test

# tol maxIter printFlag

test EnergyIncr 1.0e-8 20 1

# Solution algorithm

algorithm Newton

# System of equations solver

system SparseGeneral -piv

# Transient integrator

# gamma beta

integrator Newmark 0.5 0.25

# DOF numberer

numberer RCM

# Constraint handler

# aSP aMP

#constraints Lagrange 1.0e6 1.0e6

constraints Transformation

# Transient analysis

# dt T

analysis Transient

# Perform the analysis

analyze 1000 0.01