While running a static pushover analysis may take a single command, convergence may not always be reached with a single analysis-parameter setting. A Tcl script which tries different solutions can be incorporated to improve the chances of convergence.
No convergence issues
The following command executes the static push-over analysis when convergence is not a problem.
# ---------RunPushover.tcl------------------------------------------------------------------------------------
analyze $Nsteps
Convergence attemps
The following Tcl script should be incorporated in the input file to run a number of attempts at convergence:
# ---------RunPushover2Converge.tcl----------------------------------------------------------------
set ok [analyze $Nsteps]
# if analysis fails, try the following, performance is slowed inside this loop
if {$ok != 0} {
set ok 0;
set maxU $DmaxPush
set controlDisp 0.0;
test NormDispIncr 1.0e-8 20 0
while {$controlDisp < $maxU && $ok == 0} {
set ok [analyze 1]
set controlDisp [nodeDisp $IDctrlNode 1]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent .."
test NormDispIncr 1.0e-8 1000 1
algorithm Newton -initial
set ok [analyze 1]
test NormDispIncr 1.0e-8 20 0
algorithm Newton
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze 1]
algorithm Newton
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
algorithm NewtonLineSearch .8
set ok [analyze 1]
algorithm Newton
}
}; # end while loop
}; # end original if $ok!=0 loop
if {$ok != 0} {
puts "DispControl Analysis FAILED"
puts "Do you wish to continue y/n ?"; # include if want to pause at analysis failure
gets stdin ans; # not recommended in parameter study
if {$ans == "n"} done; # as it interrupts batch file
} else {
puts "DispControl Analysis SUCCESSFUL"
}