Hi,
I have modeled a 3-story, 3-bay steel moment frame to perform nonlinear time history analyses. I have used nonlinear beam column elements with fiber sections.
my difficulty is the convergence problem, even when a weak earthquake (PGA=0.1g) is implemented. I increased the number of iterations, but the problem was not solved. can anyone help me, please?
Here is my code;
# UNIT kgf , m
wipe
model basic -ndm 2 -ndf 3
# Define Geometry
set X 5
set Y 3.2
# Define Node Cordinate
# ID X Y
node 01 0 0
node 02 [expr 1*$X] 0
node 03 [expr 2*$X] 0
node 04 [expr 3*$X] 0
node 11 0 $Y
node 12 [expr 1*$X] $Y
node 13 [expr 2*$X] $Y
node 14 [expr 3*$X] $Y
node 21 0 [expr 2*$Y]
node 22 [expr 1*$X] [expr 2*$Y]
node 23 [expr 2*$X] [expr 2*$Y]
node 24 [expr 3*$X] [expr 2*$Y]
node 31 0 [expr 3*$Y]
node 32 [expr 1*$X] [expr 3*$Y]
node 33 [expr 2*$X] [expr 3*$Y]
node 34 [expr 3*$X] [expr 3*$Y]
# Boundary Conditions
fix 01 1 1 1
fix 02 1 1 1
fix 03 1 1 1
fix 04 1 1 1
equalDOF 11 12 1
equalDOF 11 13 1
equalDOF 11 14 1
equalDOF 21 22 1
equalDOF 21 23 1
equalDOF 21 24 1
equalDOF 31 32 1
equalDOF 31 33 1
equalDOF 31 34 1
# Define Material
set matID 1
set E 2.06e10
set Fy 2.4e7
set nu 0.3
set Gs [expr $E/[expr 2.*(1+$nu)]]
set matID 1
uniaxialMaterial Steel01 $matID 2.4e7 2.06e10 0.02 ;
proc Wsection { secID matID d bf tf tw nfdw nftw nfbf nftf} {
# create a standard W section given the nominal section properties
# input parameters
# secID - section ID number
# matID - material ID number
# d = nominal depth
# tw = web thickness
# bf = flange width
# tf = flange thickness
# nfdw = number of fibers along web depth
# nftw = number of fibers along web thickness
# nfbf = number of fibers along flange width
# nftf = number of fibers along flange thickness
set dw [expr $d - 2 * $tf]
set y1 [expr -$d/2]
set y2 [expr -$dw/2]
set y3 [expr $dw/2]
set y4 [expr $d/2]
set z1 [expr -$bf/2]
set z2 [expr -$tw/2]
set z3 [expr $tw/2]
set z4 [expr $bf/2]
section Fiber $secID {
# nfIJ nfJK yI zI yJ zJ yK zK yL zL
patch quad $matID $nfbf $nftf $y1 $z4 $y1 $z1 $y2 $z1 $y2 $z4
patch quad $matID $nftw $nfdw $y2 $z3 $y2 $z2 $y3 $z2 $y3 $z3
patch quad $matID $nfbf $nftf $y3 $z4 $y3 $z1 $y4 $z1 $y4 $z4
}
}
#................................ BEAM SECTION .....................................
# Section "B1":
# Wsection $GirdSecTagFiber $matIDhard $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
Wsection 1 1 0.35 0.225 0.02 0.008 16 4 16 4
set A1 0.0028
set MatID 2
uniaxialMaterial Elastic 2 [expr $Gs*$A1]
section Aggregator 11 2 Vy -section 1
# Section "B2":
# Wsection $GirdSecTagFiber $matIDhard $d $bf $tf $tw $nfdw $nftw $nfbf $nftf
Wsection 5 1 0.3 0.225 0.02 0.006 16 4 16 4
set A2 0.0018
set MatID 3
uniaxialMaterial Elastic 3 [expr $Gs*$A2]
section Aggregator 12 3 Vy -section 5
proc BOXsection { secID matID b1 h1 t1 t2 nfh1 nft2 nfb1 nft1} {
# create a standard BOXsection given the nominal section properties
# input parameters
# secID - section ID number
# matID - material ID number
# h1 = nominal depth
# t2 = web thickness
# b1 = flange width
# t1 = flange thickness
# nfh = number of fibers along web depth
# nft2 = number of fibers along web thickness
# nfb1 = number of fibers along flange width
# nft1 = number of fibers along flange thickness
set b [expr $b1-2*$t2]
set h [expr $h1-2*$t1]
set y1 [expr $h1/2.]
set y2 [expr $h/2.]
set y3 [expr -$h1/2.]
set y4 [expr -$h/2.]
set z1 [expr $b1/2.]
set z2 [expr $b/2.]
set z3 [expr -$b1/2.]
set z4 [expr -$b/2.]
section Fiber $secID {
patch quad $matID $nfb1 $nft1 $y2 $z2 $y2 $z4 $y1 $z4 $y1 $z2
patch quad $matID $nfb1 $nft1 $y3 $z2 $y3 $z4 $y4 $z4 $y4 $z2
patch quad $matID $nft2 $nfh1 $y3 $z1 $y3 $z2 $y1 $z2 $y1 $z1
patch quad $matID $nft2 $nfh1 $y3 $z4 $y3 $z3 $y1 $z3 $y1 $z4
}
}
#........................COLUMN SWCTION..........................
# Section "C1":
#BOXsection secID matID b1 h1 t1 t2 nfh1 nft2 nfb1 nft1
BOXsection 6 1 0.35 0.35 0.025 0.025 16 4 16 4
set A3 0.0175
set MatID 4
uniaxialMaterial Elastic 4 [expr $Gs*$A3]
section Aggregator 13 4 Vy -section 6
# Section "C2":
#BOXsection secID matID b1 h1 t1 t2 nfh1 nft2 nfb1 nft1
BOXsection 7 1 0.3 0.3 0.025 0.025 16 4 16 4
set A4 0.015
set MatID 5
uniaxialMaterial Elastic 5 [expr $Gs*$A4]
section Aggregator 14 5 Vy -section 7
set IDcolTrans 1
geomTransf PDelta $IDcolTrans
set IDBeamTrans 2
geomTransf Linear $IDBeamTrans
# Define Element
set numIntgrPts 5
# COLUMN
# Base Story
element nonlinearBeamColumn 101 01 11 $numIntgrPts 13 $IDcolTrans
element nonlinearBeamColumn 102 02 12 $numIntgrPts 13 $IDcolTrans
element nonlinearBeamColumn 103 03 13 $numIntgrPts 13 $IDcolTrans
element nonlinearBeamColumn 104 04 14 $numIntgrPts 13 $IDcolTrans
# 1 Story
element nonlinearBeamColumn 111 11 21 $numIntgrPts 13 $IDcolTrans
element nonlinearBeamColumn 112 12 22 $numIntgrPts 13 $IDcolTrans
element nonlinearBeamColumn 113 13 23 $numIntgrPts 13 $IDcolTrans
element nonlinearBeamColumn 114 14 24 $numIntgrPts 13 $IDcolTrans
# 2 Story
element nonlinearBeamColumn 121 21 31 $numIntgrPts 13 $IDcolTrans
element nonlinearBeamColumn 122 22 32 $numIntgrPts 13 $IDcolTrans
element nonlinearBeamColumn 123 23 33 $numIntgrPts 13 $IDcolTrans
element nonlinearBeamColumn 124 24 34 $numIntgrPts 13 $IDcolTrans
# BEAM
# 1 Story
element nonlinearBeamColumn 211 11 12 $numIntgrPts 11 $IDBeamTrans
element nonlinearBeamColumn 212 12 13 $numIntgrPts 11 $IDBeamTrans
element nonlinearBeamColumn 213 13 14 $numIntgrPts 11 $IDBeamTrans
# 2 Story
element nonlinearBeamColumn 221 21 22 $numIntgrPts 11 $IDBeamTrans
element nonlinearBeamColumn 222 22 23 $numIntgrPts 11 $IDBeamTrans
element nonlinearBeamColumn 223 23 24 $numIntgrPts 11 $IDBeamTrans
# 3 Story
element nonlinearBeamColumn 231 31 32 $numIntgrPts 12 $IDBeamTrans
element nonlinearBeamColumn 232 32 33 $numIntgrPts 12 $IDBeamTrans
element nonlinearBeamColumn 233 33 34 $numIntgrPts 12 $IDBeamTrans
# Define Mass
set M 5440.
mass 11 [expr $M/4.] 0.001 0.001
mass 12 [expr $M/4.] 0.001 0.001
mass 13 [expr $M/4.] 0.001 0.001
mass 14 [expr $M/4.] 0.001 0.001
mass 21 [expr $M/4.] 0.001 0.001
mass 22 [expr $M/4.] 0.001 0.001
mass 23 [expr $M/4.] 0.001 0.001
mass 24 [expr $M/4.] 0.001 0.001
mass 31 [expr $M/4.] 0.001 0.001
mass 32 [expr $M/4.] 0.001 0.001
mass 33 [expr $M/4.] 0.001 0.001
mass 34 [expr $M/4.] 0.001 0.001
set DEAD 3250
set LIVE 1000
pattern Plain 1 Linear {
# element loading
eleLoad -ele 211 -type -beamUniform [expr -($DEAD+$LIVE)]
eleLoad -ele 212 -type -beamUniform [expr -($DEAD+$LIVE)]
eleLoad -ele 213 -type -beamUniform [expr -($DEAD+$LIVE)]
eleLoad -ele 221 -type -beamUniform [expr -($DEAD+$LIVE)]
eleLoad -ele 222 -type -beamUniform [expr -($DEAD+$LIVE)]
eleLoad -ele 223 -type -beamUniform [expr -($DEAD+$LIVE)]
eleLoad -ele 231 -type -beamUniform [expr -($DEAD+$LIVE)]
eleLoad -ele 232 -type -beamUniform [expr -($DEAD+$LIVE)]
eleLoad -ele 233 -type -beamUniform [expr -($DEAD+$LIVE)]
}
constraints Plain;
numberer Plain ;
system BandGeneral ;
test NormDispIncr 1.e-8 100 1
algorithm Newton ;
integrator LoadControl 0.1
analysis Static ;
analyze 10
# ---------------------------------------------------------------------------------------------------------------------------------
puts "Model Built"
##################################################################################################
# Eigen Analysis #
#####################################################################################
puts "\n********* EIGEN VALUE ANALYSIS ***********************************************\n"
file mkdir Data;
# Analysis: EigenDefaultCase
recorder Node -file Data/EigenDefaultCase_Node_EigenVector_EigenVec_01.out -time -node 12 22 32 -dof 1 eigen1
recorder Node -file Data/EigenDefaultCase_Node_EigenVector_EigenVec_02.out -time -node 12 22 32 -dof 1 eigen2
recorder Node -file Data/EigenDefaultCase_Node_EigenVector_EigenVec_03.out -time -node 12 22 32 -dof 1 eigen3
set autoval [eigen generalized genBandArpack 3];
#set T1 [expr 2*3.142/sqrt([lindex $autoval 0])]
#set T2 [expr 2*3.142/sqrt([lindex $autoval 1])]
#set T3 [expr 2*3.142/sqrt([lindex $autoval 2])]
#puts " PERIODS: \n $T1 , $T2 , $T3 \n"
###################################################################################################################################
#******************************************************NTHA Analysis ***********************************************************#
###################################################################################################################################
file mkdir Data0.1;
set xDamp 0.05
set nEigenI 1
set nEigenJ 3
set lambdaN [eigen [expr $nEigenJ]]
set lambdaI [lindex $lambdaN [expr $nEigenI-1]]
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]
set omegaI [expr pow($lambdaI,0.5)]
set omegaJ [expr pow($lambdaJ,0.5)]
set alphaM [expr $xDamp*(2*$omegaI*$omegaJ)/($omegaI+$omegaJ)]
set betaKcomm [expr 2.*$xDamp/($omegaI+$omegaJ)]
rayleigh $alphaM 0.0 $betaKcomm 0.0
recorder Node -file Data0.1/node11disp.out -time -node 11 -dof 1 disp
recorder Node -file Data0.1/node21disp.out -time -node 21 -dof 1 disp
recorder Node -file Data0.1/node31disp.out -time -node 31 -dof 1 disp
set accel "Series -dt 0.005 -filePath Hollister(dt=0.005)PGA=0.7g.txt -factor 9.81" ;
pattern UniformExcitation 3 1 -accel $accel
set dt 0.005;
constraints Plain ;
numberer Plain ;
system BandGeneral ;
test NormDispIncr 1.e-8 100
algorithm Newton ;
integrator Newmark 0.5 0.25;
analysis Transient ;
analyze 8000 $dt;
puts "groundmotion 0.1pga done!. End Time: [getTime]"
Convergence Problem in Nonlinear Dynamic Analysis
Moderators: silvia, selimgunay, Moderators
Re: Convergence Problem in Nonlinear Dynamic Analysis
No Comment ...
Re: Convergence Problem in Nonlinear Dynamic Analysis
in short you do saomething in the script if the analysis fails .. look a the analysis section in this basic example
http://opensees.berkeley.edu/wiki/index ... e_Analysis
ps. if regular newton does not converge in 10 steps it is not going too
http://opensees.berkeley.edu/wiki/index ... e_Analysis
ps. if regular newton does not converge in 10 steps it is not going too