Hello,
I am writing a code in which I am using the flat joint contact model to define interactions between rigid blocks.
In a very simplified version of my code (provided at the end of this post), I create two rigid block boxes separated by a void. After defining the default contact law between rblock-rblock and assigning the flat-joint contact model to it, I see that although my two rigid blocks are not touching and have a gap separating them greater than zero, PFC nevertheless detects and creates and flat-jointed contact between the two pieces (see Figure 1). When I then attempt to move one block in the direction of the other, a force emerges at the contact between the two pieces even though they are still not touching. This behavior is undesirable for my application.
Figure 1. Contact between two rblocks separated by a void
Can you tell me why this is occurring? Is there a way to prevent this from happening and ensure contacts are only creating once the two pieces overlap?
My ultimate goal is to fill the void between these two rblocks with more rblocks, each belonging to different groups and use different the flat-joint contact model to define interactions between particles belonging to each group separately.
When I ran some trials, I saw that using the command line rblock tolerance extent 0 resolves the issue but I am not sure whether this is an appropriate fix. Could it lead to instability in my model once I increase the number of particles?
The code is:
model new
model large-strain on
model domain extent -1 1
;### CREATE RIGID BLOCK ###
rblock create box …
[-50e-3] [50e-3] [10e-3] [60e-3] …
group ‘material1’
rblock create box …
[-50e-3] [50e-3] [-50e-3] [0] …
group ‘material2’
rblock attribute density 2000 damp 0.7
;rblock tolerance extent 0
;### CREATE CONTACT LAW ###
contact cmat default type rblock-rblock model flatjoint method deformability …
emod [1e9] kratio [2] …
property …
fj_ten [1e20] fj_fric [0.4] fj_coh [1e20]
model clean all
Thank you!
