Convergence Problem

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

Moderators: silvia, selimgunay, Moderators

Post Reply
spratikbuff
Posts: 10
Joined: Mon Oct 06, 2014 5:52 pm

Convergence Problem

Post by spratikbuff »

Hi All,

I need a help regarding OpenSees. I am doing a pushover analysis of a three story building. The pushover analysis is OK when I am using dispBeamColumn element. But I want to use nonlinearBeamColumn element and am having convergence issue with these element. The error message is CTestNormUnbalance- Failed to converge after 400 iterations, I am attaching the code here. Please help.

# --------------------------------------------------------------------------------------------------
# 2D Portal Frame-- Build Model
# nonlinearBeamColumn element, inelastic fiber section
#
# ^Y
# |
# 3_________(3)________4 __
# | | |
# | | |
# | | |
# (1) (2) LCol
# | | |
# | | |
# | | |
# =1= =2= _|_ -------->X
# |----------LBeam------------|
#

# SET UP ----------------------------------------------------------------------------
wipe; # clear memory of all past model definitions
model BasicBuilder -ndm 2 -ndf 3; # Define the model builder, ndm=#dimension, ndf=#dofs
#set dataDir cu; # set up name of data directory
#file mkdir $dataDir; # create data directory
#file mkdir $folder; # create data directory
source DisplayModel2D.tcl; # procedure for displaying a 2D perspective of model
source DisplayPlane.tcl; # procedure for displaying a plane in the model

# source LibUnits.tcl; # define basic and system units

# define GEOMETRY -------------------------------------------------------------
set LCol [expr 80.75]; # column length
set LBeam [expr 144.]; # beam length
set Weights1 [expr 43.+11.]; # superstructure weight
set Weights2 [expr 43.+11.]; # superstructure weight
set Weights3 [expr 25.+0.] ; # superstructure weight

# define section geometry
set HCol [expr 11.]; # Column Depth
set BCol [expr 11.]; # Column Width
set HBeam [expr 14.5]; # Beam Depth
set BBeam [expr 11.]; # Beam Width

# calculated parameters
set PCols1e [expr $Weights1/4]; # nodal dead-load weight per column
set PCols1c [expr $Weights1/2]; # nodal dead-load weight per column
set PCols2e [expr $Weights2/4]; # nodal dead-load weight per column
set PCols2c [expr $Weights2/2]; # nodal dead-load weight per column
set PCols3e [expr $Weights3/4]; # nodal dead-load weight per column
set PCols3c [expr $Weights3/2]; # nodal dead-load weight per column

# calculated geometry parameters
set ACol [expr $BCol*$HCol]; # cross-sectional area
set ABeam [expr $BBeam*$HBeam];
set IzCol [expr 1./12.*$BCol*pow($HCol,3)]; # Column moment of inertia
set IzBeam [expr 1./12.*$BBeam*pow($HBeam,3)]; # Beam moment of inertia

set X1 [expr $LBeam*0]
set X2 [expr $LBeam*1]
set X3 [expr $LBeam*2]

set Y1 [expr $LCol*0]
set Y2 [expr $LCol*1]
set Y3 [expr $LCol*2]
set Y4 [expr $LCol*3]

set m1e [expr (43+11)/4/386.4]
set m1c [expr (43+11)/2/386.4]
set m2e [expr (43+11)/4/386.4]
set m2c [expr (43+11)/2/386.4]
set m3e [expr (25+11/2)/4/386.4]
set m3c [expr (25+11/2)/2/386.4]



# nodal coordinates:
node 1 $X1 $Y1; # node#, X, Y
node 2 $X2 $Y1; # node#, X, Y
node 3 $X3 $Y1; # node#, X, Y
node 4 $X1 $Y2 -mass $m1e 0 0; # node#, X, Y
node 5 $X2 $Y2 -mass $m1c 0 0; # node#, X, Y
node 6 $X3 $Y2 -mass $m1e 0 0; # node#, X, Y
node 7 $X1 $Y3 -mass $m2e 0 0; # node#, X, Y
node 8 $X2 $Y3 -mass $m2c 0 0; # node#, X, Y
node 9 $X3 $Y3 -mass $m2e 0 0; # node#, X, Y
node 10 $X1 $Y4 -mass $m3e 0 0; # node#, X, Y
node 11 $X2 $Y4 -mass $m3c 0 0; # node#, X, Y
node 12 $X3 $Y4 -mass $m3e 0 0; # node#, X, Y
node 13 $X1 $Y1; # node#, X, Y
node 14 $X2 $Y1; # node#, X, Y
node 15 $X2 $Y1; # node#, X, Y
node 16 $X3 $Y1; # node#, X, Y
node 17 $X1 $Y2; # node#, X, Y
node 18 $X2 $Y2; # node#, X, Y
node 19 $X2 $Y2; # node#, X, Y
node 20 $X3 $Y2; # node#, X, Y
node 21 $X1 $Y2; # node#, X, Y
node 22 $X2 $Y2; # node#, X, Y
node 23 $X2 $Y2; # node#, X, Y
node 24 $X3 $Y2; # node#, X, Y
node 25 $X1 $Y3; # node#, X, Y
node 26 $X2 $Y3; # node#, X, Y
node 27 $X2 $Y3; # node#, X, Y
node 28 $X3 $Y3; # node#, X, Y
node 29 $X1 $Y3; # node#, X, Y
node 30 $X2 $Y3; # node#, X, Y
node 31 $X2 $Y3; # node#, X, Y
node 32 $X3 $Y3; # node#, X, Y
node 33 $X1 $Y4; # node#, X, Y
node 34 $X2 $Y4; # node#, X, Y
node 35 $X2 $Y4; # node#, X, Y
node 36 $X3 $Y4; # node#, X, Y




# Single point constraints -- Boundary Conditions
fix 1 1 1 1; # node DX DY RZ
fix 2 1 1 1; # node DX DY RZ
fix 3 1 1 1; # node DX DY RZ


# Constrain the translational DOF with a multi-point constraint
# retained constrained DOF_1 DOF_2 ... DOF_n
equalDOF 1 13 1 2
equalDOF 2 14 1 2
equalDOF 2 15 1 2
equalDOF 3 16 1 2
equalDOF 4 17 1 2
equalDOF 5 18 1 2
equalDOF 5 19 1 2
equalDOF 6 20 1 2
equalDOF 4 21 1 2
equalDOF 5 22 1 2
equalDOF 5 23 1 2
equalDOF 6 24 1 2
equalDOF 7 25 1 2
equalDOF 8 26 1 2
equalDOF 8 27 1 2
equalDOF 9 28 1 2
equalDOF 7 29 1 2
equalDOF 8 30 1 2
equalDOF 8 31 1 2
equalDOF 9 32 1 2
equalDOF 10 33 1 2
equalDOF 11 34 1 2
equalDOF 11 35 1 2
equalDOF 12 36 1 2


# Define ELEMENTS & SECTIONS -------------------------------------------------------------
set ColSecTags1 1; # assign a tag number to the 1st story column section
set ColSecTags2 2; # assign a tag number to the 2nd story column section
set ColSecTags3 3; # assign a tag number to the 3rd story column section
set BeamSecTag 4; # assign a tag number to the beam section
set StrutSecTag 5; # assign a tag number to the strut section


# define section geometry
set coverCol [expr 1.]; # Column cover to reinforcing steel axis
set numBarsCol 1; # number of longitudinal-reinforcement bars in each side of column section. (symmetric top & bot)
set barAreaColss1 [expr (3.14/4*5/8*5/8+2*3.14/4*5/8*5/8)/2]; # total area of each longitudinal-reinforcement bars at column edge
set barAreaColcs1 [expr 3.14/4*5/8*5/8]; # total area of each longitudinal-reinforcement bars at column center
set barAreaColss2 [expr (3.14/4*4/8*4/8+2*3.14/4*5/8*5/8)/2]; # total area of each longitudinal-reinforcement bars at column edge
set barAreaColcs2 [expr 3.14/4*4/8*4/8]; # total area of each longitudinal-reinforcement bars at column center
set barAreaColss3 [expr (3.14/4*3/8*3/8+2*3.14/4*4/8*4/8)/2]; # total area of each longitudinal-reinforcement bars at column edge
set barAreaColcs3 [expr 3.14/4*3/8*3/8]; # total area of each longitudinal-reinforcement bars at column center
set barAreaBeam [expr 3.14/4*8/8*8/8];

# MATERIAL parameters -------------------------------------------------------------------
set IDconcU 1; # material ID tag -- unconfined concrete
set IDreinf 2; # material ID tag -- reinforcement
set IDmas 3; # material ID tag -- masonry infill

# nominal concrete compressive strength
set fc [expr -5.0]; # CONCRETE Compressive Strength, ksi (+Tension, -Compression)
# unconfined concrete
set fc1U $fc; # UNCONFINED concrete, maximum stress
set eps1U -0.0025; # strain at maximum strength of unconfined concrete
set fc2U [expr 1./6.*$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


# nominal masonry compressive strength
set fm [expr -3.0]; # Masonry Compressive Strength, ksi (+Tension, -Compression)
set fm1U $fm; # UNCONFINED concrete, maximum stress
set eps1U -0.001; # strain at maximum strength of unconfined concrete
set fm2U [expr 1./6.*$fm1U]; # ultimate stress
set eps2U -0.008; # strain at ultimate stress
set lambda 0.1; # ratio between unloading slope at $eps2 and initial slope $Ec

# tensile-strength properties
set ftcU [expr -$fc1U/10.]; # tensile strength +tension
set ftmU [expr -$fm1U/200.]; # tensile strength +tension

set Etcs [expr $ftcU/0.02]; # tension softening stiffness
set Etms [expr $ftmU/0.2]; # tension softening stiffness

# -----------
set Fy [expr 67.]; # STEEL yield stress
set Es [expr 29000]; # modulus of steel
set Bs 0.01; # strain-hardening ratio
set R0 18; # control the transition from elastic to plastic branches
set cR1 0.925; # control the transition from elastic to plastic branches
set cR2 0.15; # control the transition from elastic to plastic branches
# uniaxialMaterial Concrete02 $matTag $fpc $epsc0 $fpcu $epsU $lambda $ft $Ets
uniaxialMaterial Concrete02 $IDconcU $fc1U $eps1U $fc2U $eps2U $lambda $ftcU $Etcs; # build cover concrete (unconfined)
# Steel02 Material -- Giuffré-Menegotto-Pinto Model with Isotropic Strain Hardening
# uniaxialMaterial Steel02 $matTag $Fy $E $b $R0 $cR1 $cR2 <$a1 $a2 $a3 $a4 $sigInit>
uniaxialMaterial Steel02 $IDreinf $Fy $Es $Bs $R0 $cR1 $cR2; # build reinforcement material
uniaxialMaterial Concrete02 $IDmas $fm1U $eps1U $fm2U $eps2U $lambda $ftmU $Etms; # build masonry


# FIBER SECTION properties -------------------------------------------------------------
# symmetric section
# y
# ^
# |
# --------------------- -- --
# | o o o | | -- cover
# | | |
# | | |
# z <--- | + | H
# | | |
# | | |
# | o o o | | -- cover
# --------------------- -- --
# |-------- B --------|
#
# RC section:
set coverY [expr $HCol/2.0]; # The distance from the section z-axis to the edge of the cover concrete -- outer edge of cover concrete
set coverZ [expr $BCol/2.0]; # The distance from the section y-axis to the edge of the cover concrete -- outer edge of cover concrete
set coreY [expr $coverY-$coverCol]
set coreZ [expr $coverZ-$coverCol]

set coverbY [expr $HBeam/2.0]; # The distance from the section z-axis to the edge of the cover concrete -- outer edge of cover concrete
set coverbZ [expr $BBeam/2.0]; # The distance from the section y-axis to the edge of the cover concrete -- outer edge of cover concrete

set coversY 3.85
set coversZ 2.25


set nfY 20; # number of fibers for concrete in y-direction
set nfZ 10; # number of fibers for concrete in z-direction
section fiberSec $ColSecTags1 {; # Define the fiber section
# patch quad $matTag $numSubdivIJ $numSubdivJK $yI $zI $yJ $zJ $yK $zK $yL $zL
patch quadr $IDconcU $nfZ $nfY -$coverY $coverZ -$coverY -$coverZ $coverY -$coverZ $coverY $coverZ; # Define the concrete patch
# layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd $zEnd
layer straight $IDreinf 2 $barAreaColss1 -$coreY $coreZ -$coreY -$coreZ; # top layer reinfocement
layer straight $IDreinf 2 $barAreaColcs1 0 $coreZ 0 -$coreZ; # mid layer reinfocement
layer straight $IDreinf 2 $barAreaColss1 $coreY $coreZ $coreY -$coreZ; # bottom layer reinforcement
}; # end of fibersection definition

section fiberSec $ColSecTags2 {; # Define the fiber section
# patch quad $matTag $numSubdivIJ $numSubdivJK $yI $zI $yJ $zJ $yK $zK $yL $zL
patch quadr $IDconcU $nfZ $nfY -$coverY $coverZ -$coverY -$coverZ $coverY -$coverZ $coverY $coverZ; # Define the concrete patch
# layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd $zEnd
layer straight $IDreinf 2 $barAreaColss2 -$coreY $coreZ -$coreY -$coreZ; # top layer reinfocement
layer straight $IDreinf 2 $barAreaColcs2 0 $coreZ 0 -$coreZ; # mid layer reinfocement
layer straight $IDreinf 2 $barAreaColss2 $coreY $coreZ $coreY -$coreZ; # bottom layer reinforcement
}; # end of fibersection definition

section fiberSec $ColSecTags3 {; # Define the fiber section
# patch quad $matTag $numSubdivIJ $numSubdivJK $yI $zI $yJ $zJ $yK $zK $yL $zL
patch quadr $IDconcU $nfZ $nfY -$coverY $coverZ -$coverY -$coverZ $coverY -$coverZ $coverY $coverZ; # Define the concrete patch
# layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd $zEnd
layer straight $IDreinf 2 $barAreaColss3 -$coreY $coreZ -$coreY -$coreZ; # top layer reinfocement
layer straight $IDreinf 2 $barAreaColcs3 0 $coreZ 0 -$coreZ; # mid layer reinfocement
layer straight $IDreinf 2 $barAreaColss3 $coreY $coreZ $coreY -$coreZ; # bottom layer reinforcement
}; # end of fibersection definition

section fiberSec $BeamSecTag {; # Define the fiber section
# patch quad $matTag $numSubdivIJ $numSubdivJK $yI $zI $yJ $zJ $yK $zK $yL $zL
patch quadr $IDconcU $nfZ $nfY -$coverbY $coverbZ -$coverbY -$coverbZ $coverbY -$coverbZ $coverbY $coverbZ; # Define the concrete patch
# layer straight $matTag $numBars $areaBar $yStart $zStart $yEnd $zEnd
layer straight $IDreinf 4 $barAreaBeam -$coreY $coreZ -$coreY -$coreZ; # top layer reinfocement
layer straight $IDreinf 2 $barAreaBeam $coreY $coreZ $coreY -$coreZ; # bottom layer reinforcement
}; # end of fibersection definition
# BEAM section:
# section Elastic $BeamSecTag $Ec $ABeam $IzBeam; # elastic beam section

section fiberSec $StrutSecTag {; # Define the fiber section
# patch quad $matTag $numSubdivIJ $numSubdivJK $yI $zI $yJ $zJ $yK $zK $yL $zL
patch quadr $IDmas $nfZ $nfY -$coversY $coversZ -$coversY -$coversZ $coversY -$coversZ $coversY $coversZ; # Define the concrete patch
}; # end of fibersection definition




# define geometric transformation: performs a linear geometric transformation of beam stiffness and resisting force from the basic system to the global-coordinate system
set ColTransfTag 1; # associate a tag to column transformation
set BeamTransfTag 2; # associate a tag to beam transformation (good practice to keep col and beam separate)
set StrutTransfTag1 3; # associate a tag to beam transformation (good practice to keep col and beam separate)
set StrutTransfTag2 4; # associate a tag to beam transformation (good practice to keep col and beam separate)


set col_tip 0.; # no zero lenth of stiff end
set beam_tip 0.; # no zero lenth of stiff end

geomTransf Linear $ColTransfTag -jntOffset 0. 0. 0. $col_tip ;
geomTransf Linear $BeamTransfTag -jntOffset $beam_tip 0. $beam_tip 0. ;
geomTransf Linear $StrutTransfTag1 -jntOffset 0 0. 0 0. ;
geomTransf Linear $StrutTransfTag2 -jntOffset 0 0. 0 0. ;

set maxiter 100; # max. element iterations
set tol 1.0e-8; # element compatibility tolerance

# element connectivity:
set numIntgrPts 10; # number of integration points for force-based element
element nonlinearBeamColumn 1 1 4 $numIntgrPts $ColSecTags1 $ColTransfTag -iter $maxiter $tol; # self-explanatory when using variables
element nonlinearBeamColumn 2 4 7 $numIntgrPts $ColSecTags2 $ColTransfTag -iter $maxiter $tol;
element nonlinearBeamColumn 3 7 10 $numIntgrPts $ColSecTags3 $ColTransfTag -iter $maxiter $tol;
element nonlinearBeamColumn 4 2 5 $numIntgrPts $ColSecTags1 $ColTransfTag -iter $maxiter $tol;
element nonlinearBeamColumn 5 5 8 $numIntgrPts $ColSecTags2 $ColTransfTag -iter $maxiter $tol;
element nonlinearBeamColumn 6 8 11 $numIntgrPts $ColSecTags3 $ColTransfTag -iter $maxiter $tol;
element nonlinearBeamColumn 7 3 6 $numIntgrPts $ColSecTags1 $ColTransfTag -iter $maxiter $tol;
element nonlinearBeamColumn 8 6 9 $numIntgrPts $ColSecTags2 $ColTransfTag -iter $maxiter $tol;
element nonlinearBeamColumn 9 9 12 $numIntgrPts $ColSecTags3 $ColTransfTag -iter $maxiter $tol;

element nonlinearBeamColumn 10 4 5 $numIntgrPts $BeamSecTag $BeamTransfTag -iter $maxiter $tol;
element nonlinearBeamColumn 11 5 6 $numIntgrPts $BeamSecTag $BeamTransfTag -iter $maxiter $tol;
element nonlinearBeamColumn 12 7 8 $numIntgrPts $BeamSecTag $BeamTransfTag -iter $maxiter $tol;
element nonlinearBeamColumn 13 8 9 $numIntgrPts $BeamSecTag $BeamTransfTag -iter $maxiter $tol;
element nonlinearBeamColumn 14 10 11 $numIntgrPts $BeamSecTag $BeamTransfTag -iter $maxiter $tol;
element nonlinearBeamColumn 15 11 12 $numIntgrPts $BeamSecTag $BeamTransfTag -iter $maxiter $tol;

element nonlinearBeamColumn 16 13 18 $numIntgrPts $StrutSecTag $StrutTransfTag1;
element nonlinearBeamColumn 17 14 17 $numIntgrPts $StrutSecTag $StrutTransfTag2;
element nonlinearBeamColumn 18 15 20 $numIntgrPts $StrutSecTag $StrutTransfTag1;
element nonlinearBeamColumn 19 16 19 $numIntgrPts $StrutSecTag $StrutTransfTag2;
element nonlinearBeamColumn 20 21 26 $numIntgrPts $StrutSecTag $StrutTransfTag1;
element nonlinearBeamColumn 21 22 25 $numIntgrPts $StrutSecTag $StrutTransfTag2;
element nonlinearBeamColumn 22 23 28 $numIntgrPts $StrutSecTag $StrutTransfTag1;
element nonlinearBeamColumn 23 24 27 $numIntgrPts $StrutSecTag $StrutTransfTag2;
element nonlinearBeamColumn 24 29 34 $numIntgrPts $StrutSecTag $StrutTransfTag1;
element nonlinearBeamColumn 25 30 33 $numIntgrPts $StrutSecTag $StrutTransfTag2;
element nonlinearBeamColumn 26 31 36 $numIntgrPts $StrutSecTag $StrutTransfTag1;
element nonlinearBeamColumn 27 32 35 $numIntgrPts $StrutSecTag $StrutTransfTag2;

# Define RECORERS -------------------------------------------------------------
recorder Node -file dataextract_push/Disp.out -time -node 2 5 8 11 -dof 1 disp; # displacements of free nodes
recorder Node -file dataextract_push/Accel.out -time -node 2 5 8 11 -dof 1 accel; # displacements of free nodes
recorder Node -file dataextract_push/RBase.out -time -node 1 2 3 -dof 1 2 reaction; # support reaction
recorder Element -file dataextract_push/Story1.out -time -ele 1 16 17 4 18 19 7 globalForce; # Story1
recorder Element -file dataextract_push/Story2.out -time -ele 2 20 21 5 22 23 8 globalForce; # Story2
recorder Element -file dataextract_push/Story3.out -time -ele 3 24 25 6 26 27 9 globalForce; # Story3
recorder Element -file dataextract_push/StrForces.out -time -ele 16 17 18 19 globalForce; # strut reaction


#recorder Element -file $dataDir/FCol.out -time -ele 1 2 globalForce; # element forces -- column
#recorder Element -file $dataDir/FBeam.out -time -ele 3 globalForce; # element forces -- beam
#recorder Element -file $dataDir/ForceColSec1.out -time -ele 1 2 section 1 force; # Column section forces, axial and moment, node i
#recorder Element -file $dataDir/DefoColSec1.out -time -ele 1 2 section 1 deformation; # section deformations, axial and curvature, node i
#recorder Element -file $dataDir/ForceColSec$numIntgrPts.out -time -ele 1 2 section $numIntgrPts force; # section forces, axial and moment, node j
#recorder Element -file $dataDir/DefoColSec$numIntgrPts.out -time -ele 1 2 section $numIntgrPts deformation; # section deformations, axial and curvature, node j
#recorder Element -file $dataDir/ForceBeamSec$numIntgrPts.out -time -ele 3 section $numIntgrPts force;
#recorder Element -file $dataDir/DefoBeamSec$numIntgrPts.out -time -ele 3 section $numIntgrPts deformation;
#
#
recorder Element -file dataextract_push/SigEpsSteel1_$numIntgrPts.out -time -ele 1 4 7 section $numIntgrPts fiber -$coreY -$coreZ $IDreinf stressStrain
recorder Element -file dataextract_push/SigEpsSteel2_$numIntgrPts.out -time -ele 1 4 7 section $numIntgrPts fiber $coreY $coreZ $IDreinf stressStrain
#
#
#recorder Element -file $dataDir/SigEpsConcrete1_$numIntgrPts.out -time -ele 1 2 section $numIntgrPts fiber -$coreY -$coreZ $IDconcU stressStrain
#recorder Element -file $dataDir/SigEpsConcrete2_$numIntgrPts.out -time -ele 1 2 section $numIntgrPts fiber $coreY $coreZ $IDconcU stressStrain
#
##
### define GRAVITY -------------------------------------------------------------
#pattern Plain 1 Constant {
# # node FX FY MZ
# load 3 0.0 -$PCols1e 0.0
# load 4 0.0 -$PCols1c 0.0
# load 6 0.0 -$PCols1e 0.0
# load 7 0.0 -$PCols2e 0.0
# load 8 0.0 -$PCols2c 0.0
# load 9 0.0 -$PCols2e 0.0
# load 10 0.0 -$PCols3e 0.0
# load 11 0.0 -$PCols3c 0.0
# load 12 0.0 -$PCols3e 0.0
#}
#
# display the model with the node numbers
DisplayModel2D NodeNumbers
#
## eigen 4
## Perform an eigenvalue analysis
## puts "eigen values at start of transient: [eigen -frequency 4]"
#
###########################################################################
# Eigenvalue Analysis
###########################################################################
set pi [expr 2.0*asin(1.0)]; # Definition of pi
set nEigenI 1; # mode i = 1
set nEigenJ 2; # mode j = 2
set lambdaN [eigen [expr $nEigenJ]]; # eigenvalue analysis for nEigenJ modes
set lambdaI [lindex $lambdaN [expr 0]]; # eigenvalue mode i = 1
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j = 2
set w1 [expr pow($lambdaI,0.5)]; # w1 (1st mode circular frequency)
set w2 [expr pow($lambdaJ,0.5)]; # w2 (2nd mode circular frequency)
set T1 [expr 2.0*$pi/$w1]; # 1st mode period of the structure
set T2 [expr 2.0*$pi/$w2]; # 2nd mode period of the structure
puts "T1 = $T1 s"
puts "T2 = $T2 s"



## Gravity-analysis parameters -- load-controlled static analysis
#set Tol 1.0e-8;
#constraints Plain;
#numberer Plain;
#system BandGeneral;
#test NormDispIncr $Tol 10 ;
##algorithm Newton;
#algorithm ModifiedNewton -initial
#set NstepGravity 10; # set variable which will be used to apply gravity in 10 steps
#set DGravity [expr 1./$NstepGravity]; # load increment
#integrator LoadControl $DGravity;
#analysis Static;
#analyze $NstepGravity; # apply vertical loads in 10 steps
## ------------------------------------------------- maintain constant gravity loads and reset time to zero
#loadConst -time 0.0
##
## Gravity-analysis parameters -- load-controlled static analysis
#set Tol 1.0e-8;
#set NstepGravity 10 ; # set variable which will be used to apply gravity in 10 steps
#set DGravity [expr 1./$NstepGravity]; # load increment
#
#
#integrator LoadControl $DGravity;
#test NormDispIncr $Tol 20 ;
#algorithm ModifiedNewton -initial
#constraints Plain;
##numberer Plain;
#numberer RCM;
##system BandGeneral;
#system UmfPack
#analysis Static;
#
##algorithm Newton;
#
#analyze $NstepGravity; # apply vertical loads in 10 steps
## ------------------------------------------------- maintain constant gravity loads and reset time to zero
#loadConst -time 0.0



############################################################################
# Pushover Analysis #
############################################################################


set lat1 0.33; # force on each frame node in Floor 1
set lat2 0.66; # force on each frame node in Floor 2
set lat3 1.00; # force on each frame node in Floor 3

pattern Plain 200 Linear {
load 4 $lat1 0.0 0.0;
load 5 $lat1 0.0 0.0;
load 6 $lat1 0.0 0.0;
load 7 $lat2 0.0 0.0;
load 8 $lat2 0.0 0.0;
load 9 $lat2 0.0 0.0;
load 10 $lat3 0.0 0.0;
load 11 $lat3 0.0 0.0;
load 12 $lat3 0.0 0.0;
}

#
#integrator LoadControl 1.0
#constraints Plain
#system BandGen
#algorithm Linear
#numberer Plain
#constraints Plain
#analysis Static
#
## recorder Node -file rxn.out -time -node 1 -dof 1 reaction
#
#for {set i 1} {$i <= 200} {incr i 1} {
#analyze 1
#set reaction [eleResponse 1 localForce]
#puts "$i $reaction"
#}

## assign lateral loads and create load pattern
#
#
#
# display deformed shape:
set ViewScale 20;
DisplayModel2D DeformedShape $ViewScale ; # display deformed shape, the scaling factor needs to be adjusted for each model

# displacement parameters
set IDctrlNode 10; # node where disp is read for disp control
set IDctrlDOF 1; # degree of freedom read for disp control (1 = x displacement)
set Dmax [expr 0.05*3*$LCol]; # maximum displacement of pushover: 10% roof drift
set Dincr [expr 0.01]; # displacement increment

# analysis commands
constraints Plain; # how it handles boundary conditions
numberer RCM; # renumber dof's to minimize band-width (optimization)
system BandGeneral; # how to store and solve the system of equations in the analysis (large model: try UmfPack)
test NormUnbalance 1.0e-6 400; # tolerance, max iterations
algorithm Newton; # use Newton's solution algorithm: updates tangent stiffness at every iteration
integrator DisplacementControl $IDctrlNode $IDctrlDOF $Dincr; # use displacement-controlled analysis
analysis Static; # define type of analysis: static for pushover
set Nsteps [expr int($Dmax/$Dincr)]; # number of pushover analysis steps
set ok [analyze $Nsteps]; # this will return zero if no convergence problems were encountered
puts "Pushover complete"; # display this message in the command window



wipe all;
Post Reply