about pushover analysis convergence

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

Moderators: silvia, selimgunay, Moderators

Post Reply
QI
Posts: 39
Joined: Sat Aug 05, 2006 4:25 am

about pushover analysis convergence

Post by QI »

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
# ---------------------------------------------------------
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

why do you have the commen perform transient analysis?
how does your problem compare to the examples?
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
QI
Posts: 39
Joined: Sat Aug 05, 2006 4:25 am

Post by QI »

my problem is the pushover analysis can not converge.what i doing is the 2ed shape modal pushover,i hope to get some help from you to improve the procedure(converge)
silvia
Posts: 3909
Joined: Tue Jan 11, 2005 7:44 am
Location: Degenkolb Engineers
Contact:

Post by silvia »

not having all the files, it is hard to do.
please e-mail the files with a description of the model, the analysis, and the problem you are having to opensees-support @berkeley.edu
Silvia Mazzoni, PhD
Structural Consultant
Degenkolb Engineers
235 Montgomery Street, Suite 500
San Francisco, CA. 94104
QI
Posts: 39
Joined: Sat Aug 05, 2006 4:25 am

Post by QI »

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