## Viscous damper with MultipleSupport disp input

**Moderators:** silvia, selimgunay, Moderators

### Viscous damper with MultipleSupport disp input

Hi everyone,

I am using the twonodelink element to build a viscous damper, and I want to control the displacement input to get the hysteresis loops of the damper. But I found that if I use displacement as input, the force of the damper is always 0. Acc and Vel input will give the force. Could anyone tell me how to use the displacement as input?

Following is my script:

wipe

puts "system"

model basic -ndm 3 -ndf 6

puts "node"

node 1 0 0 0

node 2 1 0 0

fix 1 1 1 1 1 1 1

fix 2 0 1 1 1 1 1

puts "element"

#uniaxialMaterial ViscousDamper $matTag $K $Cd $alpha <$LGap> < $NM $RelTol $AbsTol $MaxHalf>

set K 300.0

set Cd 280.3

set alpha 0.3

uniaxialMaterial ViscousDamper 1 $K $Cd $alpha

element twoNodeLink 1 1 2 -mat 1 -dir 1

puts "recoeder"

recorder Node -file node2_disp.out -time -node 2 -dof 1 disp;

recorder Node -file node2_vel.out -time -node 2 -dof 1 vel;

recorder Element -file ele1_f.out -time -ele 1 -dof 1 force;

puts "timeseries"

timeSeries Trig 1 0 2 2

puts "load"

pattern MultipleSupport 1 {

groundMotion 1 Plain -disp 1

imposedMotion 2 1 1

}

puts "analysis"

constraints Transformation

integrator Newmark 0.5 0.25 ;

numberer RCM

system UmfPack

test EnergyIncr 1.0e-8 100 2

algorithm Newton;

analysis Transient

analyze 20 0.1

I am using the twonodelink element to build a viscous damper, and I want to control the displacement input to get the hysteresis loops of the damper. But I found that if I use displacement as input, the force of the damper is always 0. Acc and Vel input will give the force. Could anyone tell me how to use the displacement as input?

Following is my script:

wipe

puts "system"

model basic -ndm 3 -ndf 6

puts "node"

node 1 0 0 0

node 2 1 0 0

fix 1 1 1 1 1 1 1

fix 2 0 1 1 1 1 1

puts "element"

#uniaxialMaterial ViscousDamper $matTag $K $Cd $alpha <$LGap> < $NM $RelTol $AbsTol $MaxHalf>

set K 300.0

set Cd 280.3

set alpha 0.3

uniaxialMaterial ViscousDamper 1 $K $Cd $alpha

element twoNodeLink 1 1 2 -mat 1 -dir 1

puts "recoeder"

recorder Node -file node2_disp.out -time -node 2 -dof 1 disp;

recorder Node -file node2_vel.out -time -node 2 -dof 1 vel;

recorder Element -file ele1_f.out -time -ele 1 -dof 1 force;

puts "timeseries"

timeSeries Trig 1 0 2 2

puts "load"

pattern MultipleSupport 1 {

groundMotion 1 Plain -disp 1

imposedMotion 2 1 1

}

puts "analysis"

constraints Transformation

integrator Newmark 0.5 0.25 ;

numberer RCM

system UmfPack

test EnergyIncr 1.0e-8 100 2

algorithm Newton;

analysis Transient

analyze 20 0.1

### Re: Viscous damper with MultipleSupport disp input

the viscous material is looking at change in vel of two connected nodes to get a force value .. as you only provide an imposed displacement at the node and no associated vel, the material is going to have a 0 force as there is no delta velocity between the nodes.

### Re: Viscous damper with MultipleSupport disp input

Thank you very much for your reply, Mr.McKenna.

I changed the timeSeries of groundMotion into -vel using the differential of the sinusoidal displacement. I got the force and displacement. However, the recorded displacement of the node is not perfect as a sinusoidal function. There is some triangle at the peak especially when the period is small. Also the starting point of the force-displacement curve is far away from the origin. I found the explanation in the state of "Plain GroundMotion" here I quote "2. If only the acceleration TimeSeries is provided, numerical integration will be used to determine the velocities and displacements." and "4. For earthquake excitations it is important that the user provide the displacement time history, as the one generated using the trapezoidal method will not provide good results."

So I wonder if there is a way to get a perfect force-displacement hysteresis loop of the damper. Thank you very much!

I changed the timeSeries of groundMotion into -vel using the differential of the sinusoidal displacement. I got the force and displacement. However, the recorded displacement of the node is not perfect as a sinusoidal function. There is some triangle at the peak especially when the period is small. Also the starting point of the force-displacement curve is far away from the origin. I found the explanation in the state of "Plain GroundMotion" here I quote "2. If only the acceleration TimeSeries is provided, numerical integration will be used to determine the velocities and displacements." and "4. For earthquake excitations it is important that the user provide the displacement time history, as the one generated using the trapezoidal method will not provide good results."

So I wonder if there is a way to get a perfect force-displacement hysteresis loop of the damper. Thank you very much!

### Re: Viscous damper with MultipleSupport disp input

I got it!

there is also a state in "Plain GroundMotion" which says "Any combination of the acceleration, velocity and displacement time-series can be specified."

So the groundMotion could be defined with both vel and dis as " groundMotion 1 Plain -disp 1 -vel 2 " , in which the 2nd "1" for timeSeries of dis and "2" for timeSeries of vel.

The results seem good. I will give a notification if there are other accidents.

there is also a state in "Plain GroundMotion" which says "Any combination of the acceleration, velocity and displacement time-series can be specified."

So the groundMotion could be defined with both vel and dis as " groundMotion 1 Plain -disp 1 -vel 2 " , in which the 2nd "1" for timeSeries of dis and "2" for timeSeries of vel.

The results seem good. I will give a notification if there are other accidents.

### Re: Viscous damper with MultipleSupport disp input

Can you upload the complete code?