I want to model some kind of semi-active control using viscous damper. for this purpose I used this piece of code:
[code]
constraints Plain
numberer RCM
system SparseGeneral -piv
test NormDispIncr 1.0e-8 10
algorithm ModifiedNewton
integrator Newmark 0.5 0.25
analysis Transient
for {set i 1} {$i<[expr ($tGM/$dtAn)+1]} {incr i} {
analyze 1 $dtAn
if {[expr abs([nodeDisp 4 1])]>[expr 0.005*3.5]} {
puts "[getTime] [nodeDisp 4 1]"
element zeroLength 55 1 4 -mat $Viscous $Viscous -dir 1 2
analyze 1 $dtAn
set i [expr $i+1]
remove element 55
}
}
[/code]
but when I run this code at most of analysis time steps, I get this kind of error:
2.295000 -0.03055376890078784900
WARNING ZeroLength::setDomain(): Element 55 has L= 6.94622, which is greater than the tolerance
WARNING: CTestNormDispIncr::test() - failed to converge
after: 10 iterations
ModifiedNewton::solveCurrentStep() -the ConvergenceTest object failed in test()
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 2.3
OpenSees > analyze failed, returned: -3 error flag
WARNING: CTestNormDispIncr::test() - failed to converge
after: 10 iterations
ModifiedNewton::solveCurrentStep() -the ConvergenceTest object failed in test()
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 2.3
OpenSees > analyze failed, returned: -3 error flag
However, when I use passive viscous damper, the code runs well.
Please help me with this.
Thank you
Convergence problem
Moderators: silvia, selimgunay, Moderators
Re: Convergence problem
if the analysis fails, break it into steps and do 1 step at a time. if a step fails try an alternative algorithm or step size.
http://opensees.berkeley.edu/wiki/index ... e_Analysis
http://opensees.berkeley.edu/wiki/index ... e_Analysis
Re: Convergence problem
If you have used Maxwell as a material, it had a bug in OpenSees 2.4.0. For it to work you need to use the latest version of OpenSees.