hi every body
i am having a convergence problem when do a pushover analysis,and how can i do to improve the convergence? thank you !
wipe
# Define the model builder
model BasicBuilder -ndm 2 -ndf 3
# Define nodes and constraints
source nodesandconstraints.tcl
#Define materials and Section
source materialsandsection.tcl
# Geometric transformation
#geomTransf Linear 1
geomTransf PDelta 1
# Number of integration points
set colnP 4
set beamnP 5
#Define element
source lbcelement.tcl
#Define Mass
source mass.tcl
# ///////////////////////////////////////////////////////////////////
# Mode analysis for determine rayleigh damping matrix
# ///////////////////////////////////////////////////////////////////
# Perform an eigenvalue analysis
puts "eigen values for Mode analysis: [eigen 5]"
# ///////////////////////////////////////////////////////////////////
# End of Mode analysis for determine rayleigh damping matrix
# ///////////////////////////////////////////////////////////////////
# define gravity load
source gravityload.tcl
# initialize the model, done to set initial tangent
initialize
# perform the gravity load analysis, requires 10 steps to reach the load level
set gravityok [analyze $GravSteps]
if {$gravityok == 0} {
puts "Gravity load analysis completed SUCCESSFULLY";
} else {
puts "Gravity load analysis completed FAILED";
}
# Set the gravity loads to be constant & reset the time in the domain
loadConst -time 0.0
# Define pushover loads
# mode2
#-0.002224-0.0027548
set D 0.02753570
set Dmaxpush 0.0272983
set HloadLevel1 -15.7232
set HloadLevel2 -29.0939
set HloadLevel3 -38.3202
set HloadLevel4 -41.1786
set HloadLevel5 -38.0481
set HloadLevel6 -26.9826
set HloadLevel7 -10.8369
set HloadLevel8 10.0819
set HloadLevel9 29.006
set HloadLevel10 41.3899
set pushsteps 1000000
set Dxpush [expr $Dmaxpush/$pushsteps];
# ID for the nodes where lateral loads are applied in reference load
set iIDpushNodeLevel1 "5 6 7 8";
set iIDpushNodeLevel2 "9 10 11 12";
set iIDpushNodeLevel3 "13 14 15 16";
set iIDpushNodeLevel4 "17 18 19 20";
set iIDpushNodeLevel5 "21 22 23 24";
set iIDpushNodeLevel6 "25 26 27 28";
set iIDpushNodeLevel7 "29 30 31 32";
set iIDpushNodeLevel8 "33 34 35 36";
set iIDpushNodeLevel9 "37 38 39 40";
set iIDpushNodeLevel10 "41 42 43 44";
#
# create load pattern for lateral loads
pattern Plain 2 Linear {
foreach IDpushNodeLevel1 $iIDpushNodeLevel1 IDpushNodeLevel2 $iIDpushNodeLevel2 IDpushNodeLevel3 $iIDpushNodeLevel3 IDpushNodeLevel4 $iIDpushNodeLevel4 IDpushNodeLevel5 $iIDpushNodeLevel5 IDpushNodeLevel6 $iIDpushNodeLevel6 IDpushNodeLevel7 $iIDpushNodeLevel7 IDpushNodeLevel8 $iIDpushNodeLevel8 IDpushNodeLevel9 $iIDpushNodeLevel9 IDpushNodeLevel10 $iIDpushNodeLevel10 {
load $IDpushNodeLevel1 $HloadLevel1 0.0 0.0
load $IDpushNodeLevel2 $HloadLevel2 0.0 0.0
load $IDpushNodeLevel3 $HloadLevel3 0.0 0.0
load $IDpushNodeLevel4 $HloadLevel4 0.0 0.0
load $IDpushNodeLevel5 $HloadLevel5 0.0 0.0
load $IDpushNodeLevel6 $HloadLevel6 0.0 0.0
load $IDpushNodeLevel7 $HloadLevel7 0.0 0.0
load $IDpushNodeLevel8 $HloadLevel8 0.0 0.0
load $IDpushNodeLevel9 $HloadLevel9 0.0 0.0
load $IDpushNodeLevel10 $HloadLevel10 0.0 0.0
}
}
# Start of recorder generation
set dir opresult/modepushover2
# 顶点位移控制
integrator DisplacementControl 44 1 $Dxpush 1 $Dxpush $Dxpush
test NormDispIncr 1.0e-6 10000 0
algorithm Newton
numberer RCM
constraints Plain
system UmfPack
#system BandGeneral
#system BandSPD
#system ProfileSPD
#system SparseGeneral -piv
#system SparseSPD
#system BandGeneral
analysis Static
# ----------------------------------------------------
# End of modifications to analysis for transient analysis
# ----------------------------------------------------
file mkdir $dir/disp $dir/force $dir/drift $dir/section
set beamEndnP $beamnP
set colEndnP $colnP
source record1.tcl
source record2.tcl
#source record3.tcl
# Perform the analysis
set ok [analyze $pushsteps]
# Perform the transient analysis
if {$ok != 0} {
set ok 0
set controlDisp 0.0;
while {$controlDisp < $D && $ok == 0} {
set ok [analyze 1]
set controlDisp [nodeDisp 44 1]
if {$ok != 0} {
puts "Trying ModifiedNewton .."
algorithm ModifiedNewton
set ok [analyze 1]
algorithm Newton
}
if {$ok != 0} {
puts "Trying ModifiedNewton with Initial Tangent .."
algorithm ModifiedNewton -initial
set ok [analyze 1]
algorithm Newton
}
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
algorithm Newton -initial
set ok [analyze 1]
algorithm Newton
}
if {$ok != 0} {
puts "Trying KrylovNewton .."
#test NormDispIncr 1.0e-6 1000 0
algorithm KrylovNewton
set ok [analyze 1]
algorithm Newton
}
if {$ok != 0} {
puts "Trying KrylovNewton with Initial Tangent.."
#test NormDispIncr 1.0e-6 1000 0
algorithm KrylovNewton -initial
set ok [analyze 1]
algorithm Newton
}
if {$ok != 0} {
puts "Trying BFGS .."
algorithm BFGS
#test NormDispIncr 1.0e-6 10000 0
set ok [analyze 1]
algorithm Newton
}
if {$ok != 0} {
puts "Trying BFGS with Initial Tangent.."
algorithm BFGS -initial
#test NormDispIncr 1.0e-6 10000 0
set ok [analyze 1]
algorithm Newton
}
if {$ok != 0} {
puts "Trying NewtonLineSearch.."
algorithm NewtonLineSearch 0.8
#test NormDispIncr 1.0e-6 10000 0
set ok [analyze 1]
algorithm Newton
}
}
}
if {$ok == 0} {
puts "pushover analysis SUCCESSFULL";
} else {
puts "pushover analysis FAILED";
}
# ---------------------------------------------------------
# End of pushover analysis
# ---------------------------------------------------------
about pushover analysis convergence
Moderators: silvia, selimgunay, Moderators
and in the pushover drift record document ,the drift have a great change in some time such as
1.06375 -0.00623771
1.06375 -0.00623771
1.06376 -0.00623771
1.06376 -0.00623775
1.06377 -0.00623777
1.06377 -0.00623779
1.06377 -0.0062378
1.06377 -0.00623782
1.06379 -0.00623804
1.06385 -0.0062387
1.06382 -0.00623907
1.06381 -0.00623908
1.06382 -0.00623907
1.06382 -0.0062391
1.06381 -0.00623911
1.06381 -0.00623912
1.06382 -0.00623912
1.06381 -0.00623909
1.06382 -0.00623912
1.0638 -0.00623906
1.14731 -0.0108975
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
i don't know why that
1.06375 -0.00623771
1.06375 -0.00623771
1.06376 -0.00623771
1.06376 -0.00623775
1.06377 -0.00623777
1.06377 -0.00623779
1.06377 -0.0062378
1.06377 -0.00623782
1.06379 -0.00623804
1.06385 -0.0062387
1.06382 -0.00623907
1.06381 -0.00623908
1.06382 -0.00623907
1.06382 -0.0062391
1.06381 -0.00623911
1.06381 -0.00623912
1.06382 -0.00623912
1.06381 -0.00623909
1.06382 -0.00623912
1.0638 -0.00623906
1.14731 -0.0108975
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
1.1473 -0.0108974
i don't know why that