When I run my program, I got some errors and I do not know where the error is.I have got the period of the modle.anyone can help me?
WARNING: CTestNormDispIncr::test() - failed to converge
after: 10 iterations
NewtnRaphson::solveCurrentStep() -the ConvergenceTest object failed in test()
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 11.674
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 11.674
OpenSees > analyze failed, returned: -3 error flag
My modle is very simple and the program is:
wipe;
model basic -ndm 3 -ndf 6;
logFile errorFile;
file mkdir data;
node 9 -85 0 126.06;#1å
converge errors
Moderators: silvia, selimgunay, Moderators
Try removing mass density from elements. Define elements this way:
element nonlinearBeamColumn 121 9 21 5 121 2;
element nonlinearBeamColumn 122 21 22 5 122 2;
element nonlinearBeamColumn 123 22 10 5 123 2;
I would also change the code where you analyze the model to:
set tFinal [expr 2000 * 0.02];
set tCurrent [getTime];
set ok 0;
while {$ok == 0 && $tCurrent < $tFinal} {
set ok [analyze 1 0.02]
if {$ok != 0} {
puts "regular newton failed .. lets try an initail stiffness for this step"
test NormDispIncr 1.0e-6 1000
algorithm ModifiedNewton -initial
set ok [analyze 1 0.02]
if {$ok == 0} {puts "that worked .. back to regular newton"}
test NormDispIncr 1.0e-6 10
algorithm Newton
}
set tCurrent [getTime]
}
# Print a message to indicate if analysis succesfull or not
if {$ok == 0} {
puts "Transient analysis completed SUCCESSFULLY";
} else {
puts "Transient analysis completed FAILED";
};
It should work with this changes.
element nonlinearBeamColumn 121 9 21 5 121 2;
element nonlinearBeamColumn 122 21 22 5 122 2;
element nonlinearBeamColumn 123 22 10 5 123 2;
I would also change the code where you analyze the model to:
set tFinal [expr 2000 * 0.02];
set tCurrent [getTime];
set ok 0;
while {$ok == 0 && $tCurrent < $tFinal} {
set ok [analyze 1 0.02]
if {$ok != 0} {
puts "regular newton failed .. lets try an initail stiffness for this step"
test NormDispIncr 1.0e-6 1000
algorithm ModifiedNewton -initial
set ok [analyze 1 0.02]
if {$ok == 0} {puts "that worked .. back to regular newton"}
test NormDispIncr 1.0e-6 10
algorithm Newton
}
set tCurrent [getTime]
}
# Print a message to indicate if analysis succesfull or not
if {$ok == 0} {
puts "Transient analysis completed SUCCESSFULLY";
} else {
puts "Transient analysis completed FAILED";
};
It should work with this changes.
-
- Posts: 11
- Joined: Wed Sep 01, 2010 12:52 am
- Location: 1q2w3e4r