Hello,
My model will not converge during a time history analysis and I have been stuck on this problem for quite some time. I use an analysis loop as in many of the example files to catch convergence problems but this does not help.
It is a multistorey steel building with cross bracing. The braces are simplified tension-only members, modeled in OpenSees as trussSections with the material uniaxialMaterial ElasticPP. The abrupt changes in stiffness may be contributing to the problem. If I use Kcurrent in the Rayleigh definition, the model does not converge when performing THA. If i change it to Kinitial the model converges.
Why is this happening?
Here are the analysis options I am currently using unsuccessfully.
while {$controlTime < $tMax && $ok == 0} {
set controlTime [getTime]
constraints Plain
numberer RCM
test EnergyIncr 1.0e-8 3000 0
system BandGeneral; #UmfPack ; # try UmfPack for large problems
algorithm ModifiedNewton;
integrator Newmark 0.5 0.25
analysis Transient
set ok [analyze 1 $dt_analysis]
set currentTime [expr $controlTime + $dt_analysis]
if {$ok != 0} {
puts "Trying Newton with Initial Tangent at $currentTime"
test NormDispIncr 1.0e-8 2000 0
algorithm Newton -initial
set ok [analyze 1 $dt_analysis]
test EnergyIncr 1.0e-8 2000 0
algorithm ModifiedNewton
}
if {$ok != 0} {
puts "Trying Newton at $currentTime"
test NormDispIncr 1.0e-8 2000 0
algorithm Newton
set ok [analyze 1 $dt_analysis]
test EnergyIncr 1.0e-8 2000 0
algorithm ModifiedNewton
}
if {$ok != 0} {
puts "Trying Newton with Initial then Current Tangent at $currentTime"
test NormDispIncr 1.0e-8 2000 0
algorithm Newton -initialThenCurrent
set ok [analyze 1 $dt_analysis]
test EnergyIncr 1.0e-8 2000 0
algorithm ModifiedNewton
}
if {$ok != 0} {
puts "Trying ModifiedNewton with Initial at $currentTime"
test NormDispIncr 1.0e-8 2000 0
algorithm ModifiedNewton -initial
set ok [analyze 1 $dt_analysis]
test EnergyIncr 1.0e-8 2000 0
algorithm ModifiedNewton
}
if {$ok != 0} {
puts "Trying NewtonWithLineSearch .."
test NormDispIncr 1.0e-8 2000 0
algorithm NewtonLineSearch .8
set ok [analyze 1 $dt_analysis]
test EnergyIncr 1.0e-8 2000 0
algorithm ModifiedNewton
}
if {$ok != 0} {
puts "Trying Broyden at $currentTime"
algorithm Broyden 16
set ok [analyze 1 $dt_analysis]
algorithm ModifiedNewton
}
if {$ok != 0} {
puts "Trying BFGS at $currentTime"
algorithm BFGS
set ok [analyze 1 $dt_analysis]
algorithm ModifiedNewton
}
}
Convergence Problem
Moderators: silvia, selimgunay, Moderators
-
- Posts: 28
- Joined: Fri Oct 18, 2013 6:35 am
- Location: University of Oxford
Re: Convergence Problem
the choice of damping effects the response because the initial stiffness provides much higher damping forces than the current stiffness .. recommendations from most papers and manuals i have seen are to use the current as the initial is overestimating the damping.
on your scripts:
1) ModifiedNewton and Newton both with -initial are the same thing, so you are wasting your time in some parts of the script
2) put a 1 at the end of test for one of the initial iterations you decide to keep to see if the solution is flip-flopping between 2 states or is converging but you are not giving it enough iterations to converge; if the latter increase the number of iterations
3) look at relaxing the convergence tolerance or decreasing the time step.
on your scripts:
1) ModifiedNewton and Newton both with -initial are the same thing, so you are wasting your time in some parts of the script
2) put a 1 at the end of test for one of the initial iterations you decide to keep to see if the solution is flip-flopping between 2 states or is converging but you are not giving it enough iterations to converge; if the latter increase the number of iterations
3) look at relaxing the convergence tolerance or decreasing the time step.
-
- Posts: 28
- Joined: Fri Oct 18, 2013 6:35 am
- Location: University of Oxford
Re: Convergence Problem
Thank you Dr. McKenna,
I have put a flag on my tests but the solution is flip-flopping between 2 states rather than converging. I decreased the time step to 0.001 and decreased the tolerance from 1e-8 as in most examples to 1e-3. Unfortunately it is not converging.
(1) How can I determine an appropriate number for the tolerance? I have read that it is a equal to the energy unbalance in the system for EnergyIncr and equal to the displacement increments that are to be applied to the model for NormDispIncr but do not understand how the number/magnitude is calculated.
If I do not apply Rayleigh damping to my bracing members, the solution converges. The bracing accounts for nearly all of the lateral stiffness so I need to include it in order for the Rayleigh damping to be meaningful. The braces are tension-only with strain hardening.
(2) Is it likely that the convergence issue is due to the abrupt change in the bracing material when the damping forces are calculated? If so, are there any other steps I can take to try to solve the issue?
I have put a flag on my tests but the solution is flip-flopping between 2 states rather than converging. I decreased the time step to 0.001 and decreased the tolerance from 1e-8 as in most examples to 1e-3. Unfortunately it is not converging.
(1) How can I determine an appropriate number for the tolerance? I have read that it is a equal to the energy unbalance in the system for EnergyIncr and equal to the displacement increments that are to be applied to the model for NormDispIncr but do not understand how the number/magnitude is calculated.
If I do not apply Rayleigh damping to my bracing members, the solution converges. The bracing accounts for nearly all of the lateral stiffness so I need to include it in order for the Rayleigh damping to be meaningful. The braces are tension-only with strain hardening.
(2) Is it likely that the convergence issue is due to the abrupt change in the bracing material when the damping forces are calculated? If so, are there any other steps I can take to try to solve the issue?
Re: Convergence Problem
if it is flip-flopping no solution algorithm is going to work; some people try just swiching to a CentralDifferece algorithm with a very small time step (others just use a small time step, keep Newmark or HHT and use a liniear solution algorithm)