The ConvergenceTest object failed

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

Moderators: silvia, selimgunay, Moderators

Post Reply
AnnaKowal
Posts: 14
Joined: Thu Oct 25, 2018 12:54 pm
Location: University of Otago

The ConvergenceTest object failed

Post by AnnaKowal » Tue Apr 14, 2020 2:20 pm

Hello,

I haven't been used OpenSees for a long time and would appreciate some experienced users advice.
I am trying to run Total Stress Analysis of a Layered Soil Column (Total Stress Analysis) - 2D problem. All layers defined as elastic isotropic.


I got warning on Dynamic Analysis:
After first

WARNING: CTestNormDispIncr::test() - failed to converge
after: 35 iterations current Norm: 0.000212074 (max: 0.0001, Norm deltaR: 4030.48)
AcceleratedNewton::solveCurrentStep() -The ConvergenceTest object failed in test()
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 0.10625
OpenSees > analyze failed, returned: -3 error flag
Finished with dynamic analysis...
Analysis execution time: 313411 seconds

I would be really grateful for your suggestion and ideas what I should look at and how to fix that issue.


The parametrisation I am using: after defining soil nodes, layers parameters, soil materials (all layers elastic isotropic), quad elements:

#-----------------------------------------------------------------------------------------
# 7. DEFINE ANALYSIS PARAMETERS
#-----------------------------------------------------------------------------------------

#---GROUND MOTION PARAMETERS
# time step in ground motion record
set motiondT 0.005
# number of steps in ground motion record
set nSteps 24000

#---RAYLEIGH DAMPING PARAMETERS
set pi 3.141592654
# damping ratio
set damp 0.01
# lower frequency
set omega1 [expr 2*$pi*0.0]
# upper frequency
set omega2 [expr 2*$pi*15]
# damping coefficients
set a0 [expr 2*$damp*$omega1*$omega2/($omega1 + $omega2)]
set a1 [expr 2*$damp/($omega1 + $omega2)]
puts "damping coefficients: a_0 = $a0; a_1 = $a1"


set dT $motiondT

#---ANALYSIS PARAMETERS
# Newmark parameters
set gamma 0.5
set beta 0.25

#puts "Finished defyning analysis parameters..."



#-----------------------------------------------------------------------------------------
# 10. DYNAMIC ANALYSIS
#-----------------------------------------------------------------------------------------

# define constant scaling factor for applied velocity
set cFactorH [expr 1.00*$baseArea*$dashpotCoeff_s]

# define velocity time history file
set velocityFileH /Users/annakowal/Documents/2D_site_analysis/deconvolution/Kettle_park_beach/VelocityHistory_4_OpenSees/01_Akatore_centr_NS_deconv.out

# timeseries object for force history
set mSeriesH "Path -dt $motiondT -filePath $velocityFileH -factor $cFactorH"

# loading object
pattern Plain 10 $mSeriesH {
load 18 0.50 0.00
load 172 1.00 0.00
#……
puts "Dynamic loading created..."


constraints Penalty 1.e20 1.e20
test NormDispIncr 1e-4 35 1
algorithm ModifiedNewton
numberer RCM
system ProfileSPD
integrator Newmark $gamma $beta
rayleigh $a0 $a1 0.0 0.0
analysis Transient

# perform analysis with timestep reduction loop
set ok [analyze $nSteps $dT]

# if analysis fails, reduce timestep and continue with analysis
if {$ok != 0} {
puts "did not converge, reducing time step"
set curTime [getTime]
puts "curTime: $curTime"
set curStep [expr $curTime/$motiondT ]
puts "curStep: $curStep"
set remStep [expr int(($nSteps-$curStep)*2.0)]
puts "remStep: $remStep"
set motiondT [expr $motiondT /2.0]
puts "motiondT : $motiondT "

set ok [analyze $remStep $motiondT ]

# if analysis fails again, reduce timestep and continue with analysis
if {$ok != 0} {
puts "did not converge, reducing time step"
set curTime [getTime]
puts "curTime: $curTime"
set curStep [expr $curTime/$motiondT ]
puts "curStep: $curStep"
set remStep [expr int(($remStep-$curStep)*2.0)]
puts "remStep: $remStep"
set motiondT [expr $motiondT 2.0]
puts "motiondT : $motiondT "

analyze $remStep $motiondT
}
}
set endT [clock seconds]
puts "Finished with dynamic analysis..."
puts "Analysis execution time: [expr $endT-$startT] seconds"

wipe
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Many thanks,
Anna

selimgunay
Posts: 913
Joined: Mon Sep 09, 2013 8:50 pm
Location: University of California, Berkeley

Re: The ConvergenceTest object failed

Post by selimgunay » Thu Apr 16, 2020 5:51 pm

You can try Transformation constraints and the EnergyIncr test. The best way would be to use an adaptive solution that tries other integration methods and nonlinear solution methods as well.

surojitmondal
Posts: 2
Joined: Mon Jul 13, 2020 10:42 am
Location: india
Contact:

Re: The ConvergenceTest object failed

Post by surojitmondal » Mon Jul 13, 2020 10:59 am

Hi dear,

Changing your algorithm to Krylov-Newton is one of the ways of solving the convergence problem.

Also visit this articles:https://www.lyrics2world.com/2020/06/un ... logic.html

Post Reply