Unexpected PFacet Collision Physics
I am using Yade 2020.01a. The MWE below simulates the collision of two PFacets. After PFacet 1 (on the left) collides with PFacet 2 (on the right) unrealistic physical behavior is observed. I would expect PFacet 2 to rotate clockwise about the y-axis. However, it appears that PFacet 2 has a tendency to rotate counter-clockwise about the z-axis with some angular momentum about the y-axis (but in the counter-clockwise direction). I have tried smaller and smaller time steps, but observe the same behavior.
I am not sure if this is a bug, or if I have a misconception about PFacets. At any rate, I would appreciate any time that could be allocated in addressing this issue.
MWE:
import sys
p = os.getcwd() # current working directory
sys.path.append(p)
from yade import pack, geom, PyRunner, qt
from yade.gridpfacet import *
#######
O.engines=[
ForceResetter(),
InsertionSortC
[
Bo1_PFacet_
Bo1_GridConne
]),
InteractionLoop(
[
Ig2_GridConne
Ig2_Sphere_
Ig2_GridNode_
Ig2_Sphere_
Ig2_GridConne
Ig2_PFacet_
],
[
Ip2_FrictMat_
Ip2_CohFrictM
],
[
Law2_
Law2_
Law2_
Law2_
Law2_
]),
NewtonIntegra
]
O.dt = 1.0e-9 # times step
#######
cmatName = 'cmat'
fmatName = 'fmat'
O.materials.append( CohFrictMat( young=1.
O.materials.append( FrictMat( young=1.
#######
# pfacet 1
gnh1_0 = O.bodies.append( gridNode([0.0, 0.0, 0.3],radius = 0.1,fixed=
gnh1_2 = O.bodies.append( gridNode([-1.0, 1.0, 0.3],radius = 0.1,fixed=
gnh1_3 = O.bodies.append( gridNode([-1.0, -1.0, 0.3],radius = 0.1,fixed=
O.bodies.append( gridConnection(
O.bodies.append( gridConnection(
O.bodies.append( gridConnection(
O.bodies.append( pfacet(gnh1_0, gnh1_2, gnh1_3,
# assign initial velocity to pfacet 1
vi = Vector3(10.0, 0.0, 0.0)
for b in O.bodies:
b.state.vel = vi
# pfacet 2
gnh2_0 = O.bodies.append( gridNode([0.21, 0.0, 0.0],radius = 0.1,fixed=
gnh2_1 = O.bodies.append( gridNode([0.21, 1.0, 1.0],radius = 0.1,fixed=
gnh2_2 = O.bodies.append( gridNode([0.21, -1.0, 1.0],radius = 0.1,fixed=
O.bodies.append( gridConnection(
O.bodies.append( gridConnection(
O.bodies.append( gridConnection(
O.bodies.append( pfacet(gnh2_0, gnh2_1, gnh2_2,
#######
qtr = qt.Renderer()
qt.Controller()
v = qt.View()
qtr.bgColor = [1,1,1]
Question information
- Language:
- English Edit question
- Status:
- Expired
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply: