Академический Документы
Профессиональный Документы
Культура Документы
# SET UP ----------------------------------------------------------------------------
model BasicBuilder -ndm 3 -ndf 6; # Define the model builder, ndm=#dimension, ndf=#dofs
puts "Number of Stories in Y: $NStory; Number of bays in X: $NBay; Number of bays in Z: $NBayZ"
set X1 0.;
set Y1 0.;
set Z1 0.0;
set RigidDiaphragm ON ; # options: ON, OFF. specify this before the analysis parameters
are set the constraints are handled differently.
node 1121 $Xa $Y2 $Za; # master nodes for rigid diaphragm -- story 2, bay 1, frame 1-2
node 1131 $Xa $Y3 $Za; # master nodes for rigid diaphragm -- story 3, bay 1, frame 1-2
node 1141 $Xa $Y4 $Za; # master nodes for rigid diaphragm -- story 4, bay 1, frame 1-2
fix 1121 0 1 0 1 0 1
fix 1131 0 1 0 1 0 1
fix 1141 0 1 0 1 0 1
set perpDirn 2;
# BOUNDARY CONDITIONS
# Set up parameters that are particular to the model for displacement control
set IDctrlNode 141; # node where displacement is read for displacement control
set ColSecTag 1
set BeamSecTag 2
set GirdSecTag 3
set ColSecTagFiber 4
set BeamSecTagFiber 5
set GirdSecTagFiber 6
set SecTagTorsion 70
if {$SectionType == "Elastic"} {
# material properties:
set matIDhard 1; # material numbers for recorder (this stressstrain recorder will
be blank, as this is an elastic section)
} elseif {$SectionType == "FiberSection"} {
set nu 0.3;
set Hiso 0
set matIDhard 1
# ELEMENT properties
Wsection $ColSecTagFiber $matIDhard $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
Wsection $BeamSecTagFiber $matIDhard $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
Wsection $GirdSecTagFiber $matIDhard $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
} else {
puts "No section has been defined"
return -1
geomTransf $ColTransfType $IDColTransf 0 0 1 ; # only columns can have PDelta effects (gravity
effects)
# Frame 1
# columns
element nonlinearBeamColumn 1111 111 121 $np $ColSecTag $IDColTransf; # level 1-2
element nonlinearBeamColumn 1121 121 131 $np $ColSecTag $IDColTransf; # level 2-3
element nonlinearBeamColumn 1131 131 141 $np $ColSecTag $IDColTransf; # level 3-4
# beams
# Frame 2
# columns
element nonlinearBeamColumn 2111 211 221 $np $ColSecTag $IDColTransf; # level 1-2
element nonlinearBeamColumn 2121 221 231 $np $ColSecTag $IDColTransf; # level 2-3
element nonlinearBeamColumn 2131 231 241 $np $ColSecTag $IDColTransf; # level 3-4
# beams
# --------------------------------------------------------------------------------------------------------------------------------
# calculate dead load of frame, assume this to be an internal frame (do LL in a similar manner)
set Lslab [expr $LGird/2]; # slab extends a distance of $LGird/2 in/out of plane
set QdlBeam [expr $Qslab + $QBeam]; # dead load distributed along beam (one-way slab)
# frame 1
# frame 2
# --------------------------------------------------------------------------------------------------------------------------------
# calculate distribution of lateral load based on mass/weight distributions along building height
set WiHi2 [expr $FloorWeight2*$Y2]; # storey weight times height, for lateral-load
distribution
set WiHi3 [expr $FloorWeight3*$Y3]; # storey weight times height, for lateral-load
distribution
set WiHi4 [expr $FloorWeight4*$Y4]; # storey weight times height, for lateral-load
distribution
recorder Node -file $dataDir/DBase.out -time -node 111 112 211 212 -dof 1 2 3 disp; #
displacements of support nodes
recorder Node -file $dataDir/RBase.out -time -node 111 112 211 212 -dof 1 2 3 reaction;
# support reaction
recorder Drift -file $dataDir/DrNode.out -time -iNode 111 -jNode 141 -dof 1 -perpDirn 2; #
lateral drift
recorder Element -file $dataDir/Fel1.out -time -ele 1111 localForce; #
element forces in local coordinates
recorder Element -file $dataDir/ForceEle1sec$np.out -time -ele 111 section $np force;
# section forces, axial and moment, node j
recorder Element -file $dataDir/DefoEle1sec$np.out -time -ele 1111 section $np deformation;
# section deformations, axial and curvature, node j
recorder Element -file $dataDir/SSreinfEle1sec1.out -time -ele 1111 section $np fiber $yFiber $zFiber
stressStrain; # steel fiber stress-strain, node i
set xLoc1 10; # horizontal location of graphical window (0=upper left-most corner)
set yLoc1 10; # vertical location of graphical window (0=upper left-most corner)
set dAmp 2; # scaling factor for viewing deformed shape, it depends on the dimensions of the model
# Frame 1
# columns
# beams
# Frame 2
# columns
# beams
# Frame 1-2
if {$RigidDiaphragm=="ON"} {
}; # if rigid diaphragm is on
system BandGeneral ; # how to store and solve the system of equations in the analysis (large
model: try UmfPack)
test EnergyIncr $Tol 6 ; # determine if convergence has been achieved at the end of an iteration
step
algorithm Newton; # use Newton's solution algorithm: updates tangent stiffness at
every iteration
integrator LoadControl $DGravity; # determine the next time step for an analysis