hello
I built up the 2D steel frame with rotational friction damper by rotspring.tcl.
However,it does not work while I use the time history analysis.
the warning message is belows:
WARNING: CTestNormDispIncr::test() - failed to converge
after: 1000 iterations
NewtnRaphson::solveCurrentStep() -the ConvergenceTest object failed in test()
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 1.16
OpenSees > analyze failed, returned: -3 error flag
And this is my script:
wipe;
model BasicBuilder -ndm 2 -ndf 3;
source DisplayModel2D.tcl;
source DisplayPlane.tcl;
set Data stick_l$A-$Rr-$wave;
file mkdir $Data;
cd stick_l$A-$Rr-$wave;
set Data1 nodedisp;
file mkdir $Data1;
set Data2 Drift;
file mkdir $Data2;
set Data3 Column;
file mkdir $Data3;
set Data4 Beam;
file mkdir $Data4;
set Data5 damper;
file mkdir $Data5;
set Data6 rotation;
file mkdir $Data6;
cd ../;
set L 6000;
set H 4000;
#
set l $A;
set x1 0;
set x2 [expr $x1 + 0.5*($L-$l)];
set x3 [expr $x2 + $l];
set x4 $L;
#
set y1 0;
set y2 [expr $y1 + 0.5*$H];
set y3 $H;
#
node 11 $x1 $y1;
node 13 $x1 $y3;
node 41 $x4 $y1;
node 43 $x4 $y3;
node 22 $x2 $y2;
node 32 $x3 $y2;
#
node 111 $x1 $y1;
node 131 $x1 $y3;
node 411 $x4 $y1;
node 431 $x4 $y3;
#
node 221 $x2 $y2;
node 321 $x3 $y2;
node 222 $x2 $y2;
node 322 $x3 $y2;
#
fix 11 1 1 1;
fix 41 1 1 1;
#
equalDOF 11 111 1 2;
equalDOF 13 131 1 2;
equalDOF 43 431 1 2;
equalDOF 41 411 1 2;
#
equalDOF 222 221 1 2 3;
equalDOF 322 321 1 2 3;
;
#
equalDOF 13 43 1;
#
mass 13 10 1.0e-8 1.0e-8;
mass 43 10 1.0e-8 1.0e-8;
#
set E 205000.0;#
set Fy 235;
#
set C1sec 1;
set C1M 2;
set C1N 3;
set B1sec 4;
set B1N 5;
set B1M 6;
set Brsec 7;
set Pansec 8;
set Li 1;
set Co 2;
set PD 3;
geomTransf Linear $Li;#
geomTransf Corotational $Co;
geomTransf PDelta $PD;#
#
##柱
set Ac 8467;
set Ic 80900000.0;
set EIc [expr $E*$Ic];#
set EAc [expr $E*$Ac];#
set MyC [expr 759000*$Fy];#
set PhC [expr $MyC/$EIc];#
set EIcCr [expr $MyC/$PhC];#
set b 0.006;
uniaxialMaterial Steel01 $C1M $MyC $EIcCr $b;#
uniaxialMaterial Elastic $C1N $EAc;#
section Aggregator $C1sec $C1N P $C1M Mz;#
#
#梁
set Ab 4678;
set Ib 72100000;
set EIb [expr $E*$Ib];
set EAb [expr $E*$Ab];
set Myb [expr 542000*$Fy];
set Phb [expr $Myb/$EIb];
set EIbCr [expr $Myb/$Phb];
uniaxialMaterial Steel01 $B1M $Myb $EIbCr $b;
uniaxialMaterial Elastic $B1N $EAb;
section Aggregator $B1sec $B1N P $B1M Mz;
set np 3;
#brace
set AgBr 373.7;
set IzBr 141000;
section Elastic $Brsec $E $AgBr $IzBr;
#柱
element nonlinearBeamColumn 1113 11 13 $np $C1sec $PD;
element nonlinearBeamColumn 4143 41 43 $np $C1sec $PD;
#梁
element nonlinearBeamColumn 1343 13 43 $np $B1sec $Li;
#
#
#brace
element dispBeamColumn 111221 111 221 $np $Brsec $Co;
element dispBeamColumn 131222 131 222 $np $Brsec $Co;
element dispBeamColumn 411321 411 321 $np $Brsec $Co;
element dispBeamColumn 431322 431 322 $np $Brsec $Co;
#damper
element dispBeamColumn 2232 22 32 $np $Brsec $Co;
#
source RotSpring2DModIKModel.tcl
source RotLeaningCol.tcl
set Ms 3160000;#
set Mycol [expr $Ms*$Rr];#
#
set Ks 1.0e10;#
set bb 1.0e-8;#
set LS 1.0e3;#
set LK 1.0e3;#
set LA 1.0e3;#
set LD 1.0e3;#
set cS 1;#
set cK 1;#
set cA 1;#
set cD 1;#
#
#
set th_pP 1.0e6;#
set th_pN 1.0e6;#
set th_pcP 1.0e8;#
set th_pcN 1.0e8;#
set ResP 1.0;#
set ResN 1.0;#
set th_uP 1.0e8;#
set th_uN 1.0e8;#
set DP 1.0;#
set DN 1.0;#
#
rotSpring2DModIKModel 22221 222 22 $Ks $bb $bb $Mycol [expr -$Mycol] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;#
#
rotSpring2DModIKModel 32321 322 32 $Ks $bb $bb $Mycol [expr -$Mycol] $LS $LK $LA $LD $cS $cK $cA $cD $th_pP $th_pN $th_pcP $th_pcN $ResP $ResN $th_uP $th_uN $DP $DN;#
#
recorder Node -file $Data/$Data1/node13disp.out -time -dT $dT -node 13 -dof 1 disp;
recorder Node -file $Data/$Data1/node43disp.out -time -dT $dT -node 43 -dof 1 disp;
#
recorder Drift -file $Data/$Data2/DriftL1.out -time -iNode 11 -jNode 13 -dof 1 -perpDirn 2
recorder Drift -file $Data/$Data2/DriftR1.out -time -iNode 41 -jNode 43 -dof 1 -perpDirn 2;
#
recorder Element -file $Data/$Data5/dampershearsection1.out -time -dT $dT -ele 2232 section 1 force;
recorder Element -file $Data/$Data5/dampershearsection3.out -time -dT $dT -ele 2232 section 3 force;
#
recorder Element -file $Data/$Data3/CLshear.out -time -dT $dT -ele 1113 localForce;
recorder Element -file $Data/$Data3/CRshear.out -time -dT $dT -ele 4143 localForce;
#
recorder Node -file $Data/$Data6/node22disp.out -time -dT $dT -node 22 -dof 3 disp;
recorder Node -file $Data/$Data6/node32disp.out -time -dT $dT -node 32 -dof 3 disp;
recorder Node -file $Data/$Data6/node222disp.out -time -dT $dT -node 222 -dof 3 disp;
recorder Node -file $Data/$Data6/node221disp.out -time -dT $dT -node 221 -dof 3 disp;
#
set ViewScale 5;#
DisplayModel2D DeformedShape $ViewScale;
#
pattern Plain 1 Linear {
load 13 0 -98000 0;
load 43 0 -98000 0;
}
constraints Plain;
numberer RCM;
system BandGeneral;
test NormDispIncr 1.0e-6 500;
algorithm Newton;
integrator LoadControl 0.1;
analysis Static;
analyze 10;
loadConst -time 0;
#
set analysisType "dynamic";
if {$analysisType == "dynamic"} {
puts "Running dynamic analysis..."
#
set accelSeries "Series -dt 0.02 -filePath $wave.acc -factor 2";
pattern UniformExcitation 2 1 -accel $accelSeries;
set xDamp 0.02;
#
set xDamp 0.05;
set nEigenI 1;
set nEigenJ 2;
set list [eigen $nEigenJ];
set w1s [lindex $list [expr $nEigenI-1]];
set w2s [lindex $list [expr $nEigenJ-1]];
set w1 [expr pow($w1s,0.5)];
set w2 [expr pow($w2s,0.5)];
set alphaM [expr $xDamp*(2*$w1*$w2)/($w1+$w2)];
set betaKcurr [expr 2.*$xDamp/($w1+$w2)];
rayleigh $alphaM $betaKcurr 0 0;
#
constraints Plain;
numberer RCM;
system BandGeneral;
test NormDispIncr 1e-8 1000;
algorithm Newton;
integrator Newmark 0.5 0.25;
analysis Transient;
analyze 2000 0.01
}
wipe
your reply will be highly appreciated.
Thanks
failed to converge
Moderators: silvia, selimgunay, Moderators
Re: failed to converge
do something in the analysis script to try and get it to work, see the analysis part of the following .. it is in the while loop
while {$ok == 0 && $tCurrent < $tFinal} {
.. DO THINGS
}
http://opensees.berkeley.edu/wiki/index ... ple3.3.tcl
while {$ok == 0 && $tCurrent < $tFinal} {
.. DO THINGS
}
http://opensees.berkeley.edu/wiki/index ... ple3.3.tcl
Re: failed to converge
Thank you for your kindly reply .
The problem has already be solved by opensees version 2.4.1 .
But to my surprise, the version 2.4.6 cannot work on it.
The problem has already be solved by opensees version 2.4.1 .
But to my surprise, the version 2.4.6 cannot work on it.