rayleigh command

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

Moderators: silvia, selimgunay, Moderators

luuquanghieu
Posts: 12
Joined: Mon Jan 25, 2010 6:22 pm
Location: Montreal-Canada

rayleigh command

Post by luuquanghieu »

Hi everybody,
I have a question. Is it possible to use a damping model with proportionality to the mass and to the tangent stiffness matrix (not the elastic one) in OS?
Thanks
LQH
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Post by vesna »

Yes, it is possible. Check the Rayleigh damping command:

http://opensees.berkeley.edu/wiki/index ... ng_Command

Here you will see that there are three stiffness matrices the damping matrix can be proportional to:

1. Current stiffness matrix - this matrix changes with each iteration for one step of analysis
2. Initial stiffness matrix - stiffness matrix of an elastic element
3. Committed stiffness matrix - stiffness matrix of an element for the last committed step of analysis
luuquanghieu
Posts: 12
Joined: Mon Jan 25, 2010 6:22 pm
Location: Montreal-Canada

Post by luuquanghieu »

thanks for your reply. I have tried this commend, but in the commend

rayleigh $alphaM $betaK $betaKinit $betaKcomm

if I want to use the current stiffness matrix ( that will be updated after each step...) what are the others for betaKinit and BetaKcomm???

thanks
LQH
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Post by vesna »

Coefficients of stiffness matrices that you do not need in calculating damping matrix you set to 0.

One more clarification: current stiffness matrix will be updated for each iteration of one step.
luuquanghieu
Posts: 12
Joined: Mon Jan 25, 2010 6:22 pm
Location: Montreal-Canada

Post by luuquanghieu »

The problem of mine is that when I use K Initial, convergence criteria can be reached, but when I try with K current or committed, convergence criteria can not be achieved
Can you suggest me a solution for that problem?
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Post by vesna »

You can try changing the algorithm type for the analysis step that did not converge.

Here is an example of displacement control analysis:

set maxU 15.0; set dU 0.1
constraints transformation
numberer RCM
system BandGeneral
test NormDispIncr 1.0e-6 6 2
algorithm Newton
integrator DispControl 3 1 $dU
analysis Static
set ok 0
set currentDisp 0.0
while {$ok == 0 && $currentDisp < $maxU} {
set ok [analyze 1]
if {$ok != 0} {
test NormDispIncr 1.0e-6 1000 1
algorithm ModifiedNewton –initial
set ok [analyze 1]
test NormDispIncr 1.0e-6 6 2
algorithm Newton
}
set currentDisp [nodeDisp 3 1]
}
luuquanghieu
Posts: 12
Joined: Mon Jan 25, 2010 6:22 pm
Location: Montreal-Canada

Post by luuquanghieu »

Thanks so much. Could you explain me what it committed state? how does the command work when I use K committed.
thanks
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Post by vesna »

Consider i and (i+1) steps of analysis. Say that Ki is a tangent stiffness matrix for the i-th step of analysis. This matrix will be used to get the solution for the next analysis step (i+1) and will not be updated during iterations for that step of analysis. After solving the (i+1) step of analysis the tangent stiffness matrix is updated to Ki+1. This stiffness matrix is called committed and will be used for the next step of analysis.
luuquanghieu
Posts: 12
Joined: Mon Jan 25, 2010 6:22 pm
Location: Montreal-Canada

Post by luuquanghieu »

First of all, I would like to do dynamic analysis with modified newton algorithm: analysis step is 0.01(equal to time step of input ground acceleration excitation) and maximum number of iteration is 10.

Then if at analysis step number i, the convergence cannot be reached, the program will switch to NewtonLineSearch algorithm: analysis step is 0.0001 and maximum number of iteration is 1000.

Could you take a look and give me some comments.


set DtAnalysis [expr 0.01]; # time-step Dt for lateral analysis
set TmaxAnalysis [expr 23.]; # maximum duration of ground-motion analysis

set Tol 1.e-8; # Convergence Test: tolerance
set maxNumIter 10; # Convergence Test: maximum number of iterations that will be performed before "failure to converge" is returned
set printFlag 0; # Convergence Test: flag used to print information on convergence (optional) # 1: print information on each step;
set TestType EnergyIncr; # Convergence-test type
test $TestType $Tol $maxNumIter $printFlag;

set algorithmType ModifiedNewton
algorithm $algorithmType;

set Nsteps [expr int($TmaxAnalysis/$DtAnalysis)];;
set ok [analyze $Nsteps $DtAnalysis]; # actually perform analysis; returns ok=0 if analysis was successful

if {$ok != 0} { ; # if analysis was not successful.
# change some analysis parameters to achieve convergence
# performance is slower inside this loop
# Time-controlled analysis
set ok 0;
set controlTime [getTime];
while {$controlTime < $TmaxAnalysis && $ok == 0} {
set ok [analyze 1 $DtAnalysis]
set controlTime [getTime]
set ok [analyze 1 $DtAnalysis]
if {$ok != 0} {
puts "Trying with NewtonLineSearch .."
test NormDispIncr $Tol 1000 0
algorithm NewtonLineSearch .5
set ok [analyze 1 0.0001]
test NormDispIncr $Tol 1000 0
algorithm $algorithmType
}

}; # end if ok !0
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Post by vesna »

Modified Newton does not update the stiffness matrix at every iteration of a time step (like Newton), but only at the beginning of a time step. Thus, Modified Newton needs more iterations to converge to solution than Newton. Here is what I would start from:

set tFinal 23.0;
constraints Transformation
numberer RCM
system BandGeneral
test NormDispIncr 1.0e-6 6 2
algorithm Newton
integrator Newmark 0.5 0.25
analysis Transient
set ok 0
set currentTime 0.0
while {$ok == 0 && $currentTime < $tFinal} {
set ok [analyze 1 0.01]
if {$ok != 0} {
test NormDispIncr 1.0e-6 1000 1
algorithm ModifiedNewton –initial
set ok [analyze 1 0.01]
test NormDispIncr 1.0e-6 6 2
algorithm Newton
} set currentTime [
getTime]
}

If the convergence problem persist I would monitor the state of the step that did not converge and increase number of iterations if it can help or reduce the tolerance.
luuquanghieu
Posts: 12
Joined: Mon Jan 25, 2010 6:22 pm
Location: Montreal-Canada

Re:

Post by luuquanghieu »

vesna wrote:
> Consider i and (i+1) steps of analysis. Say that Ki is a tangent stiffness
> matrix for the i-th step of analysis. This matrix will be used to get the
> solution for the next analysis step (i+1) and will not be updated during
> iterations for that step of analysis. After solving the (i+1) step of
> analysis the tangent stiffness matrix is updated to Ki+1. This stiffness
> matrix is called committed and will be used for the next step of analysis.

Hello,
If I understand well, using Kcommit means that modified newton Raphson algorithm is employed in each step of analysis. Thus can I say that Kcommit requires much more computation effort to reach convergence if comparing with using Kcurrent where stiffness matrix will be updated after each iteration during each step of analysis.
However, regarding Rayleigh damping assigned to the model, while using Kcommit runned well, Kcurrent gave me problem of convergence. It even exist when I decrease step of analysis to a very small value !!!!
Is there anything wrong with my understanding?
Thanks
Hieu
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: rayleigh command

Post by vesna »

In general, using Kcomitt for calculation of Rayleigh damping coefficients requires less computation effort than Kcurrent.
amir70007
Posts: 58
Joined: Sat Sep 20, 2008 11:13 pm
Location: Tehran-Amir Kabir University of Technology (Tehran Polytechnic)
Contact:

Re: rayleigh command

Post by amir70007 »

Hi...
Is there any practical method to determine variables in rayleigh command for 2D and 3D structures?
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: rayleigh command

Post by vesna »

I am not sure I understand your question well.
amir70007
Posts: 58
Joined: Sat Sep 20, 2008 11:13 pm
Location: Tehran-Amir Kabir University of Technology (Tehran Polytechnic)
Contact:

Re: rayleigh command

Post by amir70007 »

In "rayleigh command" :
D = $alphaM * M + $betaK * Kcurrent +$betaKinit * Kinit + $betaKcomm * KlastCommit

How can I determine $alphaM, $betaK,$betaKinit and $betaKcomm to use this command in my model?
Post Reply