Convergence test issue

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

Moderators: silvia, selimgunay, Moderators

Post Reply
prakash
Posts: 7
Joined: Thu Apr 30, 2015 2:18 am
Location: IIT Bombay

Convergence test issue

Post by prakash » Sun Apr 09, 2017 2:59 am

Hi everyone,

I am analyzing a framed structure modeled with Elwood shear limit state material and concentrated flexural hinge.

For a sample ground motion (having time step of dt), the solution does not converge for analysis time step, dt_ana of $dt/2 but it does for $dt/10.

I want to incorporate an adaptive algorithm to allow for reducing dt_ana to $dt/10, only where it is required during the given time history. I expect convergenceTest to throw an error when the solution is inappropriate so that reduction in $dt_ana can be triggered.

I use "set ok [analyze 1 $dt/2 $dt/100 $dt/2]" to capture whether solution has converged at each time step. For non-zero values of $ok, I reduce dt_ana.

However, OpenSees never complains about the solution. It shows convergence (i.e. ok = 0) even with an extremely low tolerance (I even tried 1e-10 for RelativeNormDispIncr).

For example- at one instance, top floor displacement with $dt/10 is 16.37 mm whereas with $dt/2 it is 2357.38 mm (arbitrarily high, a clear sign of non convergence) and yet CTestRelativeNormDispIncr returns normRatio of the order of 1e-7 after 13 iterations.

I have tried different SoE solvers---FullGeneral, SparseGEN, ProfileSPD, BandSPD, BandGeneral, and SparseSYM---and different convergenceTest criteria including the energy increment test, but there is no difference in the convergenceTest results.

What else can I try?

-Prakash

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Re: Convergence test issue

Post by fmk » Mon Apr 10, 2017 10:32 pm

convergence has nothing to do with solvers!

if you want to reduce time step only where required DO NOT USE THE analyze option you are using instaed:

while {$ok == 0 && $tCurrent < $tFinal} {
set ok [analyze 1 $dt]
if {$ok != 0} {
set ok [analyze $dt/whatever]
}
set tCurent [getTime[
}

prakash
Posts: 7
Joined: Thu Apr 30, 2015 2:18 am
Location: IIT Bombay

Re: Convergence test issue

Post by prakash » Tue Apr 11, 2017 9:50 pm

Frank, this did not help. The problem with my analysis is that condition "if {$ok != 0}" is NOT invoked despite erroneous solution (I know this from the results of the analysis with smaller time step). This is how the time histories for two cases with analysis time steps of $dt/2 and $dt/10 look like:
https://drive.google.com/file/d/0B4q3Ss ... ZQa1U/view

Post Reply