Warmings for "there are no sub-contacts in the range"

Hello, I try to run a model with a dropping block.
When I run the code the block penetrated to the bottom one. And there is a warmings “there are no sub-contacts in the range”. I tried to add “block contact gen-sub generate-subcontacts” in the code. But it didn’t work. How can I solve this?

Here is my code

model new
model config dynamic
model large-strain on

block create brick 0 10 0 10 -10 0
block cut joint-set dip 90 dip-dir 90 num 10 spac 1 or 5 5 5
block cut joint-set dip 90 dip-dir 0 num 10 spac 1 or 5 5 5

block join
mark region 1
block hide on

block create brick 1.75 2.25 1.75 2.25 10 10.5

mark region 2
block hide off

block fix range region 1
model grav 0 0 -10
block prop dens 2000
block contact generate-subcontacts
block contact gen-sub generate-subcontacts
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

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

model solve time 3

Subcontacts are only created for deformable blocks, therefore you get this warning and it might not be related to your problem.

I haven’t checked your example, but you also don’t specify any strength values for your mohr-model, which could also lead to problems.

You get the warning because you cannot create subcontacts when blocks are not touching, and you also cannot assign properties. However, this should still work because the subcontacts will get default properties when the blocks collide.

The problem here is that the top block is very small and is moving very fast by the time it gets to the bottom block. By default, 3DEC only checks for new subcontacts every 100 steps. In this model, the block passes through the top face in less than 100 steps, and contacts do not form.

You can fix this by giving the command:
block update subcontact 1

or by reducing the timestep:
model dynamic timestep fix 1e-4

1 Like