Natural frequency of oscillation prediction

3DEC → Options → Damping

I am running “; Block under gravity - 3 critically damped cases”.

I want to use “block mech damp rayleigh stiffness” in my model. When I try the different block size I got different result as I predict. I change the upper block to a smaller block and the frequency seems not good(fig1) as shown in the example(fig2). Is there any suggestion to make it like the one in example?
image
fig1

image
fig2

======================================
Here is my code:

model new
model config dynamic
model large-strain on

block create brick 0 10 0 1 0 5
block create brick 3 7 0 1 5 10
block cut j-set or 0 0 5

block fix range pos-z 0 5
model grav 0 0 -10

block prop dens 1000

block contact gen-sub
block contact jmodel assign mohr
block contact property stiffness-normal 5e7 stiffness-shear 5e7
block contact material-table default property stiffness-normal 5e7 …
stiffness-shear 5e7

block mechanical damp rayleigh 0 0

hist interval 1
block his vel-z pos 5 0 10
block his disp-z pos 5 0 10
model his dynamic time-total

;no damping
model solve time 1
model title "Vertical displacement v time (undamped)

ret

I think the problem here is that there is a very coarse, asymmetric discretization of the faces. Try adding the command BLOCK FACE TRI RADIAL before generating the subcontacts. This will give a better, symmetric distribution of subcontacts and the velocity histories should look better.

1 Like

Thank you very much. It works.
But I still get some problem in the frequency part. I have two questions.

Question 1

I make two block the upper one is 1 * 1 * 1 times and the down one is 15 * 15 * 50 (fixed). In the Options-> Damping mention that the frequency can get form a function.
image
When I use this function I assume that the frequency show be 11.25cycle/second. But I got around 23 cycle/second in the result(fig1). Is there any misunderstand that I made?

Question 2

I try to use “block mech damp contact” command. What my input is 'block mech damp contact ‘group 1’ ‘2’ ‘test123’ 0.1 0 0.1 0 0.1 0 0.1 0 0.1 0 0.1 0 '. And make a error. Where can I change?

Here is the code:

code for the first question

========
model new
model config dynamic
model large-strain on

block create brick 7 8 7 8 50 51
block group “1”
block hide on
block create brick 0 15 0 15 0 50
block group “2”
block hide off

;block face tri radial range pos-z 0 10

block fix range group “2”
model grav 0 0 -10

block prop dens 2000

block contact gen-sub
block contact jmodel assign mohr
block contact property stiffness-normal 1e7 stiffness-shear 1e7
block contact material-table default property stiffness-normal 1e7 …
stiffness-shear 1e7

;block mechanical damp rayleigh 0 0

hist interval 1
block his vel-z pos 7.5 7.5 51
model his dynamic time-total

;no damping
model solve time 1
ret

======

code for the second question

=====
model new
model config dynamic
model large-strain on

block create brick 6.5 8.5 6.5 8.5 60 62
block group “1”
block hide on
block create brick 0 15 0 15 0 50
block group “2”
block hide off

block fix range group “2”
model grav 0 0 -10

block prop dens 2000

block contact gen-sub
block contact jmodel assign mohr
block contact property stiffness-normal 1e7 stiffness-shear 1e7
block contact material-table default property stiffness-normal 1e7 …
stiffness-shear 1e7

;block mechanical damp rayleigh 0 0

hist interval 1
block his vel-z pos 7.5 7.5 51
model his time
model his dynamic time-total

block mech damp contact ‘group 1’ ‘2’ ‘test123’ 0.1 0 0.1 0 0.1 0 0.1 0 0.1 0 0.1 0
model solve time 2
ret

Thank you very much

I can answer the second one. See here for the documentation for that command: block mechanical command — 3DEC 7.0 documentation (itascacg.com)

It should look something like:
block mech damp contact group1 ‘1’ group2 ‘2’ betaffn 0.1 betaffs 0 …

Note that in this case you will only have one contact so you don’t need to specify the groups. You also don’t need to give the zero values. So this will work:
block mech damp contact betaffn 0.1 betavvn 0.1 …

I’m not sure what’s going on with the first question. If you make the blocks the same size, then you get the expected frequency. I’ll look into it.

I just want to try different size in the beginning for the frequency. I have tried the upper block size with 2 * 2 * 2. And it suit the estimate value. But when size down to certain value the frequency become very strange.

There is a bug in the calculation of areas when you have rigid blocks with mismatching faces. The pseudo-static stresses and displacements are OK, but since the area is off (by a factor of 2) then the dynamic response is off (frequency is too high by a factor of 2).

I’ll work on a fix. In the short term, you can either use deformable blocks, or ensure the faces match by cutting and joining. For example:

block create brick 7 8 7 8 50 51
block group ‘1’
block hide on
block create brick 0 15 0 15 0 50

; cut and join to match top block
block cut joint-set dip 90 dip-dir 90 or 7 7 50
block cut joint-set dip 90 dip-dir 90 or 8 7 50
block cut joint-set dip 90 dip-dir 0 or 7 7 50
block cut joint-set dip 90 dip-dir 0 or 7 8 50
block join

block group ‘2’
block hide off