Dynamic analysis for the 3D soil
Moderators: silvia, selimgunay, Moderators
-
- Posts: 34
- Joined: Tue Feb 08, 2011 2:44 pm
- Location: UC Berkeley
Dynamic analysis for the 3D soil
Hi,
I'm running a 3D finite element dynamic analysis for the soil.
I'm starting with Broyden, when it failed at some certain step, it didn't go to the alternative trail I set in the script like trying other algorithms, it just got stuck at that step.
Does anyone know what's the problems here?
Many thanks,
Xiao.
I'm running a 3D finite element dynamic analysis for the soil.
I'm starting with Broyden, when it failed at some certain step, it didn't go to the alternative trail I set in the script like trying other algorithms, it just got stuck at that step.
Does anyone know what's the problems here?
Many thanks,
Xiao.
Re: Dynamic analysis for the 3D soil
Why don't you post your script - analysis portion only.
-
- Posts: 34
- Joined: Tue Feb 08, 2011 2:44 pm
- Location: UC Berkeley
Re: Dynamic analysis for the 3D soil
vesna wrote:
> Why don't you post your script - analysis portion only.
Here is the script.
model BasicBuilder -ndm 3 -ndf 6;
source 2_CUEE_10_pileRecorder.tcl
##############################################
############ Dynamic Analysis ################
##############################################
set Tol 1.0e-2;
set maxNumIter 10;
set printFlag 1;
set TestType NormDispIncr;
# set TestType EnergyIncr;
set NewmarkGamma 0.50;
set NewmarkBeta 0.25;
set algorithmType Broyden;
constraints Penalty 1.e20 1.e20
numberer RCM;
system SparseGeneral -piv;
test $TestType $Tol $maxNumIter $printFlag;
algorithm $algorithmType ;
integrator Newmark $NewmarkGamma $NewmarkBeta;
analysis Transient;
puts "ok"
##############################################
# ---RAYLEIGH DAMPING PARAMETERS
# damping ratio
set damp 0.02
# lower frequency
set omega1 [expr 2*$pi*0.2]
# upper frequency
set omega2 [expr 2*$pi*20]
# 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"
rayleigh $a0 $a1 0.0 0.0
###################################################
set motionduration [expr $NumPts*$dt]
set DtAnalysis 0.01;
#set TmaxAnalysis [expr $dt*$NumPts];
set TmaxAnalysis $motionduration; # 1901*.005 but I analysing with dt=.01 so the TMax is the same
set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
puts "Ground Motion:";
puts " dt= $dt";
puts " NumPts= $NumPts";
puts "Analysis:";
puts " dt= $DtAnalysis";
puts " NumPts= $Nsteps";
puts " TmaxAnalysis= $TmaxAnalysis";
set j 1;
for {set ik 1} {$ik <= $Nsteps} {incr ik 1} {
set ok [analyze 1 $DtAnalysis];
# Convergence
if {$ok != 0} {
puts "Trying KrylovNewton ...";
algorithm KrylovNewton;
set ok [analyze 1 $DtAnalysis];
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying Newton with line search ...";
algorithm NewtonLineSearch;
set ok [analyze 1 $DtAnalysis];
algorithm $algorithmType;
};
# if {$ok != 0} {
# puts "Trying more iterations ...";
# set maxNumIter 20;
# test $TestType $Tol $maxNumIter $printFlag;
# set ok [analyze 1 $DtAnalysis];
# set maxNumIter 10;
# };
if {$ok != 0} {
puts "Trying BFGS ...";
algorithm BFGS;
set ok [analyze 1 $DtAnalysis];
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying Modified Newton ...";
algorithm ModifiedNewton;
set ok [analyze 1 $DtAnalysis];
algorithm $algorithmType;
};
# if {$ok != 0} {
# puts "Trying Broyden ...";
# algorithm Broyden 8;
# set ok [analyze 1 $DtAnalysis];
# algorithm $algorithmType;
# };
if {$ok != 0} {
puts "Trying Linear Algorithm ...";
algorithm Linear ;
set ok [analyze 1 $DtAnalysis];
algorithm $algorithmType;
};
if {$ok != 0} {
break;
};
set count 0;
set countt 0;
set countt [expr $countt+1] ;
#Maximum Displacemnet for each node for each DOF
for {set node 1} {$node <= 6420} {incr node 1} {
set count [expr $count+1];
set dispx($count$countt) [nodeDisp $node 1];
set dispy($count$countt) [nodeDisp $node 2];
set dispz($count$countt) [nodeDisp $node 3];
};
for {set print 1} {$print <= 6420} {incr print 1} {
puts $Maxnodedisp " $print $dispx($print$countt) $dispy($print$countt) $dispz($print$countt) "
};
set step $j;
puts "step=$step"
set j [expr $j+1];
};
wipeAnalysis ;
puts "Analysis is DONE ";
Many thanks,
Xiao.
> Why don't you post your script - analysis portion only.
Here is the script.
model BasicBuilder -ndm 3 -ndf 6;
source 2_CUEE_10_pileRecorder.tcl
##############################################
############ Dynamic Analysis ################
##############################################
set Tol 1.0e-2;
set maxNumIter 10;
set printFlag 1;
set TestType NormDispIncr;
# set TestType EnergyIncr;
set NewmarkGamma 0.50;
set NewmarkBeta 0.25;
set algorithmType Broyden;
constraints Penalty 1.e20 1.e20
numberer RCM;
system SparseGeneral -piv;
test $TestType $Tol $maxNumIter $printFlag;
algorithm $algorithmType ;
integrator Newmark $NewmarkGamma $NewmarkBeta;
analysis Transient;
puts "ok"
##############################################
# ---RAYLEIGH DAMPING PARAMETERS
# damping ratio
set damp 0.02
# lower frequency
set omega1 [expr 2*$pi*0.2]
# upper frequency
set omega2 [expr 2*$pi*20]
# 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"
rayleigh $a0 $a1 0.0 0.0
###################################################
set motionduration [expr $NumPts*$dt]
set DtAnalysis 0.01;
#set TmaxAnalysis [expr $dt*$NumPts];
set TmaxAnalysis $motionduration; # 1901*.005 but I analysing with dt=.01 so the TMax is the same
set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];
puts "Ground Motion:";
puts " dt= $dt";
puts " NumPts= $NumPts";
puts "Analysis:";
puts " dt= $DtAnalysis";
puts " NumPts= $Nsteps";
puts " TmaxAnalysis= $TmaxAnalysis";
set j 1;
for {set ik 1} {$ik <= $Nsteps} {incr ik 1} {
set ok [analyze 1 $DtAnalysis];
# Convergence
if {$ok != 0} {
puts "Trying KrylovNewton ...";
algorithm KrylovNewton;
set ok [analyze 1 $DtAnalysis];
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying Newton with line search ...";
algorithm NewtonLineSearch;
set ok [analyze 1 $DtAnalysis];
algorithm $algorithmType;
};
# if {$ok != 0} {
# puts "Trying more iterations ...";
# set maxNumIter 20;
# test $TestType $Tol $maxNumIter $printFlag;
# set ok [analyze 1 $DtAnalysis];
# set maxNumIter 10;
# };
if {$ok != 0} {
puts "Trying BFGS ...";
algorithm BFGS;
set ok [analyze 1 $DtAnalysis];
algorithm $algorithmType;
};
if {$ok != 0} {
puts "Trying Modified Newton ...";
algorithm ModifiedNewton;
set ok [analyze 1 $DtAnalysis];
algorithm $algorithmType;
};
# if {$ok != 0} {
# puts "Trying Broyden ...";
# algorithm Broyden 8;
# set ok [analyze 1 $DtAnalysis];
# algorithm $algorithmType;
# };
if {$ok != 0} {
puts "Trying Linear Algorithm ...";
algorithm Linear ;
set ok [analyze 1 $DtAnalysis];
algorithm $algorithmType;
};
if {$ok != 0} {
break;
};
set count 0;
set countt 0;
set countt [expr $countt+1] ;
#Maximum Displacemnet for each node for each DOF
for {set node 1} {$node <= 6420} {incr node 1} {
set count [expr $count+1];
set dispx($count$countt) [nodeDisp $node 1];
set dispy($count$countt) [nodeDisp $node 2];
set dispz($count$countt) [nodeDisp $node 3];
};
for {set print 1} {$print <= 6420} {incr print 1} {
puts $Maxnodedisp " $print $dispx($print$countt) $dispy($print$countt) $dispz($print$countt) "
};
set step $j;
puts "step=$step"
set j [expr $j+1];
};
wipeAnalysis ;
puts "Analysis is DONE ";
Many thanks,
Xiao.
Re: Dynamic analysis for the 3D soil
Can you show me the last message you got before it got stuck?
-
- Posts: 34
- Joined: Tue Feb 08, 2011 2:44 pm
- Location: UC Berkeley
Re: Dynamic analysis for the 3D soil
vesna wrote:
> Can you show me the last message you got before it got stuck?
It showed:
WARNING: CTestNormDispIncr:test<> - failed to converge
after: 10 iterations
CTestNormDispIncr::test<> - iteration: 1 current Norm: 701909 <max: 0.01, Norm deltaR: 4.03025e+010>
And also I tried Newton with Newmark, it got stuck in the middle of iteration
it showed:
CTestNormDispIncr::test<> - iteration: 4 current Norm: 283.757 <max: 0.01, Norm deltaR: 5.825e+011>
and it seems last forever.
Many thanks,
Xiao.
> Can you show me the last message you got before it got stuck?
It showed:
WARNING: CTestNormDispIncr:test<> - failed to converge
after: 10 iterations
CTestNormDispIncr::test<> - iteration: 1 current Norm: 701909 <max: 0.01, Norm deltaR: 4.03025e+010>
And also I tried Newton with Newmark, it got stuck in the middle of iteration
it showed:
CTestNormDispIncr::test<> - iteration: 4 current Norm: 283.757 <max: 0.01, Norm deltaR: 5.825e+011>
and it seems last forever.
Many thanks,
Xiao.
Re: Dynamic analysis for the 3D soil
To me it looks like none of the ways to fix the convergence problem worked so the program stopped the analysis after it reached "break" command.
-
- Posts: 34
- Joined: Tue Feb 08, 2011 2:44 pm
- Location: UC Berkeley
Re: Dynamic analysis for the 3D soil
vesna wrote:
> To me it looks like none of the ways to fix the convergence problem worked
> so the program stopped the analysis after it reached "break"
> command.
But it even didn't try any other different trials, since it still was using Broyden.
I didn't see any output of "Trying KrylovNewton ..."
And if it reached "break", it would show "Analysis is done"
I'm not sure if the Norm deltaR has some upper limit, since they were are very large when the simulation got stuck.
Many thanks,
Xiao.
> To me it looks like none of the ways to fix the convergence problem worked
> so the program stopped the analysis after it reached "break"
> command.
But it even didn't try any other different trials, since it still was using Broyden.
I didn't see any output of "Trying KrylovNewton ..."
And if it reached "break", it would show "Analysis is done"
I'm not sure if the Norm deltaR has some upper limit, since they were are very large when the simulation got stuck.
Many thanks,
Xiao.
Re: Dynamic analysis for the 3D soil
Why don't you create a log file :http://opensees.berkeley.edu/wiki/index ... le_Command and send it to my email: vesna at berkeley dot edu.
-
- Posts: 34
- Joined: Tue Feb 08, 2011 2:44 pm
- Location: UC Berkeley
Re: Dynamic analysis for the 3D soil
vesna wrote:
> Why don't you create a log file
> :http://opensees.berkeley.edu/wiki/index ... le_Command and send it to
> my email: vesna at berkeley dot edu.
Thanks,.
Could you tell me where I should put this command?
Best,'
Xiao.
> Why don't you create a log file
> :http://opensees.berkeley.edu/wiki/index ... le_Command and send it to
> my email: vesna at berkeley dot edu.
Thanks,.
Could you tell me where I should put this command?
Best,'
Xiao.
Re: Dynamic analysis for the 3D soil
It should go after "analyze" command.
-
- Posts: 34
- Joined: Tue Feb 08, 2011 2:44 pm
- Location: UC Berkeley
Re: Dynamic analysis for the 3D soil
vesna wrote:
> Why don't you create a log file
> :http://opensees.berkeley.edu/wiki/index ... le_Command and send it to
> my email: vesna at berkeley dot edu.
Hi vesna,
The log file has been sent to your email.
Many thanks,
Xiao.
> Why don't you create a log file
> :http://opensees.berkeley.edu/wiki/index ... le_Command and send it to
> my email: vesna at berkeley dot edu.
Hi vesna,
The log file has been sent to your email.
Many thanks,
Xiao.