"analyze failed" problem

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

Moderators: silvia, selimgunay, Moderators

Post Reply
Sangwook
Posts: 18
Joined: Sun Aug 09, 2015 10:57 pm
Location: Yonsei

"analyze failed" problem

Post by Sangwook »

Hello,

I have some problem on my modeling which is designed to do dynamic analysis with ground motion data.

Before the end of the ground motion data, the analysis finished with message as below:

WARNING: CTestNormDispIncr::test() - failed to converge
after: 200 iterations current Norm: 0.010782 (max: 0.001, Norm deltaR: 3302.27)
Broyden::solveCurrentStep() -the ConvergenceTest object failed in test()
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 14.765
OpenSees > analyze failed, returned: -3 error flag
The current time is: 14.760000

I am using Bilin material for structural elements, so I think there might be convergence problem on my script.

Can I solve this problem using other algorithms or how can I overcome this circumstance?

Also, I attach the analysis part of my script.
----------------------------------------------------------------------------------------------------------------------------------------------------
############################################################################
# Time History/Dynamic Analysis #
############################################################################
if {$analysisType == "dynamic"} {
puts "Running dynamic analysis..."
# display deformed shape:
# Rayleigh Damping
# calculate damping parameters
set zeta 0.05; # percentage of critical damping
set a0 [expr $zeta*2.0*$w1*$w2/($w1 + $w2)]; # mass damping coefficient based on first and second modes
set a1 [expr $zeta*2.0/($w1 + $w2)]; # stiffness damping coefficient based on first and second modes
set a1_mod [expr $a1*(1.0+$n)/$n]; # modified stiffness damping coefficient used for n modified elements. See Zareian & Medina 2010.
# assign damping to frame beams and columns
# command: region $regionID -eleRange $elementIDfirst $elementIDlast -rayleigh $alpha_mass $alpha_currentStiff $alpha_initialStiff $alpha_committedStiff
## old commands: region 4 -eleRange 111 222 rayleigh 0.0 0.0 $a1_mod 0.0; # assign stiffness proportional damping to frame beams & columns w/ n modifications
## rayleigh $a0 0.0 0.0 0.0; # assign mass proportional damping to structure (only assigns to nodes with mass)
## updated 9 May 2012: use "-rayleigh" instead of "rayleigh" when defining damping with the "region" command
## use "region" command when defining mass proportional damping so that the stiffness proportional damping isnt canceled
region 4 -eleRange 11 44 -rayleigh 0.0 0.0 $a1_mod 0.0; # assign stiffness proportional damping to frame beams & columns w/ n modifications
region 5 -node 12 22 32 42 13 23 33 43 14 24 34 44 15 25 35 45 -rayleigh $a0 0.0 0.0 0.0; # assign mass proportional damping to structure (assign to nodes with mass)
# define ground motion parameters
set patternID 1; # load pattern ID
set GMdirection 1; # ground motion direction (1 = x)
set GMfile "Dataset_16.txt"; # ground motion filename
set dt 0.005; # timestep of input GM file
set TotalNumberOfSteps 8000; # number of steps in ground motion
set GMtime [expr $dt*$TotalNumberOfSteps + 10.0]; # total time of ground motion + 10 sec of free vibration
# define the acceleration series for the ground motion
# syntax: "Series -dt $timestep_of_record -filePath $filename_with_acc_history -factor $scale_record_by_this_amount
set accelSeries "Series -dt $dt -filePath $GMfile -factor [expr $g]";
# create load pattern: apply acceleration to all fixed nodes with UniformExcitation
# command: pattern UniformExcitation $patternID $GMdir -accel $timeSeriesID
pattern UniformExcitation $patternID $GMdirection -accel $accelSeries;
# define dynamic analysis parameters
set dt_analysis 0.005; # timestep of analysis
wipeAnalysis; # destroy all components of the Analysis object, i.e. any objects created with system, numberer, constraints, integrator, algorithm, and analysis commands
constraints Plain; # how it handles boundary conditions
numberer RCM; # renumber dofs to minimize band-width (optimization)
system UmfPack; # how to store and solve the system of equations in the analysis
test NormDispIncr 1.0e-3 200; # type of convergence criteria with tolerance, max iterations
algorithm NewtonLineSearch; # use NewtonLineSearch solution algorithm: updates tangent stiffness at every iteration and introduces line search to the Newton-Raphson algorithm to solve the nonlinear residual equation. Line search increases the effectiveness of the Newton method
integrator Newmark 0.5 0.25; # uses Newmarks average acceleration method to compute the time history
analysis Transient; # type of analysis: transient or static
set NumSteps [expr round(($GMtime + 0.0)/$dt_analysis)]; # number of steps in analysis
# perform the dynamic analysis and display whether analysis was successful
set ok [analyze $NumSteps $dt_analysis]; # ok = 0 if analysis was completed
if {$ok == 0} {
puts "Dynamic analysis complete";
} else {
puts "Dynamic analysis did not converge";
}
if {$ok != 0} {
puts "Trying Broyden .."
algorithm Broyden 8
set ok [analyze $NumSteps $dt_analysis ]
}
# output time at end of analysis
set currentTime [getTime]; # get current analysis time (after dynamic analysis)
puts "The current time is: $currentTime";
wipe all;
}
----------------------------------------------------------------------------------------------------------------------------------------------------



If you don't mind, I want to send my all files to you via E-mail.

I used some tcl files together for this modeling, so I couldn't attach whole script in this post.

Please help me.

Regards,

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

Re: "analyze failed" problem

Post by fmk »

try some initial stiffness iterations
Post Reply