rayleigh command
Moderators: silvia, selimgunay, Moderators
-
luuquanghieu
- Posts: 12
- Joined: Mon Jan 25, 2010 6:22 pm
- Location: Montreal-Canada
rayleigh command
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
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
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
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
-
luuquanghieu
- Posts: 12
- Joined: Mon Jan 25, 2010 6:22 pm
- Location: Montreal-Canada
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]
}
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
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
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
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
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.
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:
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
> 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
Re: rayleigh command
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
Hi...
Is there any practical method to determine variables in rayleigh command for 2D and 3D structures?
Is there any practical method to determine variables in rayleigh command for 2D and 3D structures?
Re: rayleigh command
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
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?
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?