Convergence Problem in Nonlinear Dynamic Analysis

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

Moderators: silvia, selimgunay, Moderators

Post Reply
aminamini
Posts: 24
Joined: Thu Jun 06, 2013 10:14 am
Location: SUT

Convergence Problem in Nonlinear Dynamic Analysis

Post by aminamini »

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]"
aminamini
Posts: 24
Joined: Thu Jun 06, 2013 10:14 am
Location: SUT

Re: Convergence Problem in Nonlinear Dynamic Analysis

Post by aminamini »

No Comment ...
fmk
Site Admin
Posts: 5884
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: Convergence Problem in Nonlinear Dynamic Analysis

Post by fmk »

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
Post Reply