Hello everyone, I just tried version 3.7 of OpenSees to create a simple single-degree-of-freedom model, where I added a stiffness-based damping model and applied a pulse-type load. It seems the Rayleigh function isn’t correctly incorporating the value of beta_K, as the displacement history does not show any damping effect on the displacement. Please test the following model on your PC in case I’m entering something incorrectly.
CODE
#---------------------------------------------------------------------------------------------
# OPENSEES LIBRERIES
model basic -ndm 3 -ndf 6;
wipe;
# CONSTANTS VALUES
set g 9810; # Aceleración de la gravedad en mm/s^2
set pi [expr acos(-1.0)];
# MATERIALS LIBRERIES:
set E 5.0;
uniaxialMaterial Elastic 1 $E
# NODE COORDENATES
node 1 0.0 0.0 0.0 ; # x,y,z coordinates (0,0,0) of node 1
node 2 0.0 0.0 0.0 ; # x,y,z coordinates (0,0,0) of node 2
mass 1 0.0 0.0 0.0 0.0 0.0 0.0
mass 2 1.0 0.0 0.0 0.0 0.0 0.0
# BOUNDARY CONDITIONS:
fix 1 1 1 1 1 1 1;
fix 2 0 1 1 1 1 1;
# ELEMENTS:
element zeroLength 1 1 2 -mat 1 1 -dir 1 2; # Elemento de longitud cero
# TIME SERIES
timeSeries Linear 7; # Historia de aplicación de cargas en función del pseudo-tiempo
timeSeries Pulse 8 1.0 1.5 50.0
# OUTPUTS
set Outputs Res
file mkdir $Outputs
recorder Node -file $Outputs/d2Rel.out -node 2 -dof 1 disp;
# DAMPING
set numModes 1
set lambda [eigen -fullGenLapack $numModes]; #in case of [nº modes=ngdl and masses]
set omega [expr sqrt($lambda)]
puts omega=$omega
set chi 0.05;
# set alphaM [expr 2.0*$chi*$omega]; #swich
set alphaM 0.0
puts $alphaM
set betaK [expr (2.0*$chi)/$omega]; #swich
# set betaK 0.0
set betaKinit 0.0
set betaKcomm 0.0
puts $betaK
set betaKinit 0.0
set betaKcomm 0.0
rayleigh $alphaM $betaK $betaKinit $betaKcomm
# ANALYSIS
numberer RCM
set ConvInf 0;
# 0 print nothing
# 1 print information on norms each time test() is invoked
# 2 print information on norms and number of iterations at end of successful test
# 4 at each step it will print the norms and also the ΔU and R(U) vectors.
# 5 if it fails to converge at end of $numIter it will print an error message BUT RETURN A SUCCESSFUL test
puts "DYNAMIC ANALYSIS"
set tol 1e-9
set iter 50
pattern Plain 4 8 {
load 2 100.0 0.0 0.0 0.0 0.0 0.0
}
system UmfPack; # Da forma a la matriz de rigidez
constraints Plain; # Aplica las condiciones de contorno
numberer Plain; # Forma de numerar los GDL
test NormDispIncr $tol $iter $ConvInf ; # Criterio de convergencia
algorithm KrylovNewton; # Algoritmo de resolución
integrator Newmark 0.5 0.25
analysis Transient ; # Análisis dinámico
set steps 8000
set dt 0.01
analyze $steps $dt
exit
Problem with damping based on stiffness matrix
Moderators: silvia, selimgunay, Moderators
Re: Problem with damping based on stiffness matrix
I believe you need to add the -doRayleigh option to the zero length element command
Re: Problem with damping based on stiffness matrix
You're absolutely right. One gets so used to using beam-type elements that sometimes other element options slip our minds. Thanks so much!