# Units: kip, in
# MHS, Sept 1999
# email: mhscott@ce.berkeley.edu
#
#
#
# _________________________ _
# | | |
# | | | 12'
# | | |
# |____________|____________| _
# | | |
# | | |
# | | | 15'
# | | |
# | | | _
# === === ===
# | 24' | 24' |
#
#
# NOTE: to RUN this example, run the g3 interpreter and
# type the command: source RCFrame1.tcl
#
# $Revision: 1.3 $
# $Date: 2000/12/19 03:57:15 $
# $Source: /usr/local/cvs/OpenSees/EXAMPLES/ExampleScripts/RCFrame1.tcl,v $
# comment out one of lines
#set displayMode "displayON"
set displayMode "displayOFF"
# Define the model builder
model BasicBuilder -ndm 2 -ndf 3
# Define nodes
# tag X Y
node 1 0 0
node 2 0 180
node 3 0 324
node 4 288 0
node 5 288 180
node 6 288 324
node 7 576 0
node 8 576 180
node 9 576 324
# Single point constraints
# node DX DY RZ
fix 1 1 1 1
fix 4 1 1 1
fix 7 1 1 1
# Define materials
# Cover concrete
# tag -f'c -epsco -f'cu -epscu
uniaxialMaterial Concrete01 1 -4.00 -0.002 0.0 -0.006
# Core concrete
uniaxialMaterial Concrete01 2 -5.20 -0.005 -4.70 -0.02
# Steel model
# tag fy E b
uniaxialMaterial Steel01 3 60 30000 0.02
# Interior column section
section fiberSec 1 {
# mat nfIJ nfJK yI zI yJ zJ yK zK yL zL
patch quadr 2 1 12 -11.5 10 -11.5 -10 11.5 -10 11.5 10
patch quadr 1 1 14 -13.5 -10 -13.5 -12 13.5 -12 13.5 -10
patch quadr 1 1 14 -13.5 12 -13.5 10 13.5 10 13.5 12
patch quadr 1 1 2 -13.5 10 -13.5 -10 -11.5 -10 -11.5 10
patch quadr 1 1 2 11.5 10 11.5 -10 13.5 -10 13.5 10
# mat nBars area yI zI yF zF
layer straight 3 6 1.56 -10.5 9 -10.5 -9
layer straight 3 6 1.56 10.5 9 10.5 -9
}
# Exterior column section
section fiberSec 2 {
patch quadr 2 1 10 -10 10 -10 -10 10 -10 10 10
patch quadr 1 1 12 -12 -10 -12 -12 12 -12 12 -10
patch quadr 1 1 12 -12 12 -12 10 12 10 12 12
patch quadr 1 1 2 -12 10 -12 -10 -10 -10 -10 10
patch quadr 1 1 2 10 10 10 -10 12 -10 12 10
layer straight 3 6 0.79 -9 9 -9 -9
layer straight 3 6 0.79 9 9 9 -9
}
# Girder section
section fiberSec 3 {
patch quadr 1 1 12 -12 9 -12 -9 12 -9 12 9
layer straight 3 4 1.00 -9 9 -9 -9
layer straight 3 4 1.00 9 9 9 -9
}
# Number of integration points
set nP 4
# Geometric transformation
geomTransf Linear 1
# Define elements
# Columns
# tag ndI ndJ nPts secID transf
element nonlinearBeamColumn 1 1 2 $nP 2 1
element nonlinearBeamColumn 2 2 3 $nP 2 1
element nonlinearBeamColumn 3 4 5 $nP 1 1
element nonlinearBeamColumn 4 5 6 $nP 1 1
element nonlinearBeamColumn 5 7 8 $nP 2 1
element nonlinearBeamColumn 6 8 9 $nP 2 1
# Beams
element nonlinearBeamColumn 7 2 5 $nP 3 1
element nonlinearBeamColumn 8 5 8 $nP 3 1
element nonlinearBeamColumn 9 3 6 $nP 3 1
element nonlinearBeamColumn 10 6 9 $nP 3 1
# Constant gravity loads
pattern Plain 1 Linear {
# node FX FY MZ
load 2 0.0 -192.0 0.0 -const
load 5 0.0 -384.0 0.0 -const
load 8 0.0 -192.0 0.0 -const
load 3 0.0 -96.0 0.0 -const
load 6 0.0 -192.0 0.0 -const
load 9 0.0 -96.0 0.0 -const
}
# Load control with variable load steps
# init Jd min max
integrator LoadControl 1 3 .2 1
# Convergence test
# tolerance maxIter displayCode
test NormDispIncr 1.0e-06 10 1
# Solution algorithm
algorithm Newton
# DOF numberer
numberer RCM
# Cosntraint handler
constraints Transformation
# System of equations solver
system SparseGeneral -piv
# Analysis for gravity load
analysis Static
# Perform the gravity load analysis
analyze 1
# Reference lateral loads
pattern Plain 2 Linear {
# node FX FY MZ
load 2 10.0 0.0 0.0
load 3 10.0 0.0 0.0
}
# Create a recorder which writes to Node.out and prints
# the current load factor (pseudo-time) and dof 1 displacements at node 2 & 3
recorder Node Node.out disp -time -node 2 3 -dof 1
# Create another recorder which writes to Element.out and prints
# the section deformations at the base of the columns (elements 1,3,5)
recorder Element 1 3 5 -file Element.out section 1 deformations
# Source in some g3 commands to display the model
if {$displayMode == "displayON"} {
# a window to plot the nodal displacements versus load for node 3
recorder plot Node.out Node3Xdisp 10 340 300 300 -columns 3 1
# a window to show the displayed shape
source RCFrameDisplay.tcl
}
# Create an analysis object
analysis Static
# Perform 40 analysis steps
analyze 40
# Switch integrator to displacement control
integrator DisplacementControl 3 1 .001 3 .001 1.0
# perform 25 analysis steps
analyze 25