Dynamic analysis for the 3D soil

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

Moderators: silvia, selimgunay, Moderators

Post Reply
benliangxiao
Posts: 34
Joined: Tue Feb 08, 2011 2:44 pm
Location: UC Berkeley

Dynamic analysis for the 3D soil

Post by benliangxiao »

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.
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Dynamic analysis for the 3D soil

Post by vesna »

Why don't you post your script - analysis portion only.
benliangxiao
Posts: 34
Joined: Tue Feb 08, 2011 2:44 pm
Location: UC Berkeley

Re: Dynamic analysis for the 3D soil

Post by benliangxiao »

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.
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Dynamic analysis for the 3D soil

Post by vesna »

Can you show me the last message you got before it got stuck?
benliangxiao
Posts: 34
Joined: Tue Feb 08, 2011 2:44 pm
Location: UC Berkeley

Re: Dynamic analysis for the 3D soil

Post by benliangxiao »

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.
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Dynamic analysis for the 3D soil

Post by vesna »

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.
benliangxiao
Posts: 34
Joined: Tue Feb 08, 2011 2:44 pm
Location: UC Berkeley

Re: Dynamic analysis for the 3D soil

Post by benliangxiao »

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.
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Dynamic analysis for the 3D soil

Post by vesna »

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.
benliangxiao
Posts: 34
Joined: Tue Feb 08, 2011 2:44 pm
Location: UC Berkeley

Re: Dynamic analysis for the 3D soil

Post by benliangxiao »

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.
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Dynamic analysis for the 3D soil

Post by vesna »

It should go after "analyze" command.
benliangxiao
Posts: 34
Joined: Tue Feb 08, 2011 2:44 pm
Location: UC Berkeley

Re: Dynamic analysis for the 3D soil

Post by benliangxiao »

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.
Post Reply