I have two questions for the theory background.
In the model we set kn and ks. It defined as the [stress] / [relative displacement]. So, there must have the area if you use stress in the setting. And my question is
How to determine the sub-contact area when the blocks contact by vertex-face?
As shown in the figure. It’s only contact at Point A. So the sub-contact area should be 1/3 of triangleABD and triangleADC and triangle ABC. Am I right?
And also the edge-edge contact. How to determine the sub-contact area?
We know it in 3DEC it has a common plane when block touch to each other. Does it has any size or range of it?
For a vertex-vertex contact, or an edge-edge contact, the subcontact area is set to a calculated minimum area, which is 0.01 x 0.5 x (average face area). Below is a little example.
As far as I know, the common plane doesn’t have a size or range. It is just considered an infinite plane.
block create brick -0.5 0.5
block create tet (0,0,0.5) (1,1,1) (-1,-1,1) (1,-1,1)
block contact mat-tab default prop s-n 1e8 s-s 1e8
block prop dens 2000
model grav 0 0 -10
block fix range pos-z -0.5 0.5
model large-strain on
model cyc 1
fish def compute_area
avgarea = 0.0
loop foreach face block.face.list
avgarea += block.face.area(face)
avgarea /= block.face.num
; compare to subcontact area
cx = block.subcontact.find(1)
io.out('subcontact area: ‘+string(block.subc.area(cx))+’ calculated area: '+string(avgarea * 0.5 * 0.01))
Thank you very much.
I have a further question about face-face contact. There are two blocks A and B have face-face contact (contact area is C-a square) and they are rigid blocks. We know that the sub-contact area based on the grid point contact to common plane. So, for the A block there are 4 grid points contact with common plane and the contact area is C-a. But for the B there is no grid point contact on the common plane. As I know 3DEC would pick the smaller one when two blocks have face-face contact. In this case the contact area should be 0? Or is there any theory that I misunderstanding?
There is currently a bug in the calculation of areas for this case. When gridpoints match, you will have a subcontact for each gridpoint and the calculated areas for each gridpoint are divided by 2 to account for the fact you have 2 subcontacts at each location. In your model, the areas should not be divided by 2, since there are no gridpoints on the bottom block in contact with the top block. We are working on this now.
In the short term, you can zone the blocks to ensure the gridpoints match, or you can cut and join the bottom block so that there are matching gridpoints with the top block.