Contact between sphere-gridconnection not detected in a pfacet edge

Asked by Rohit John

Hello,

The simulation consists of two sphere moving towards two edges of pfacet triangle. They just pass through the edges without any interaction. I think there could be something wrong with the engines I'm using, but I could not find it. Kindly help me. The code is given below.

Kind regards,
Rohit K John

# ---------------------------------------------------------------------------- Code
from yade import geom, utils
from yade.gridpfacet import *

# ---------------------------------------------------------------------------- input parameter
# ----------------------------------------------------- target
target_young = 50e9
target_density = 1000
target_poisson = 0.3
target_friction = radians(30)

p_radius = 5e-2
pfacet_side = 0.5
pfacet_circum_rad = pfacet_side/sqrt(3)
node_angle = [radians(0), radians(120), radians(240)]
pfacet_nodes = [
    Vector3([2*pfacet_circum_rad * cos(node_angle[0]), pfacet_circum_rad * sin(node_angle[0]), 0]),
    Vector3([pfacet_circum_rad * cos(node_angle[1]), pfacet_circum_rad * sin(node_angle[1]), 0]),
    Vector3([pfacet_circum_rad * cos(node_angle[2]), pfacet_circum_rad * sin(node_angle[2]), 0]),
]
# ---------------------------------------------------------------------------- Materials
target_int_mat = 'pfacet_int_mat'
target_ext_mat = 'pfacet_ext_mat'

O.materials.append(
    FrictMat(
        young = target_young,
        poisson = target_poisson,
        density = target_density,
        label = target_ext_mat,
        frictionAngle = target_friction,
    )
)

O.materials.append(
    CohFrictMat(
        young = target_young,
        poisson = target_poisson,
        density = target_density,
        label = target_int_mat,

        frictionAngle = target_friction,
        normalCohesion = 3e100,
        shearCohesion = 3e100,
        momentRotationLaw = True,
    )
)
# ---------------------------------------------------------------------------- Engines
O.engines = [
                ForceResetter(),

                InsertionSortCollider([
                    Bo1_GridConnection_Aabb(),
                    Bo1_PFacet_Aabb(),
                    Bo1_Sphere_Aabb(),
                ]),

                InteractionLoop(
                    [
                        Ig2_PFacet_PFacet_ScGeom(),
                        Ig2_GridNode_GridNode_GridNodeGeom6D(),
                        Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),
                        Ig2_GridConnection_PFacet_ScGeom(),
                        Ig2_Sphere_PFacet_ScGridCoGeom(),
                        Ig2_Sphere_GridConnection_ScGridCoGeom(),
                        Ig2_Sphere_Sphere_ScGeom()
                    ],
                    [
                        Ip2_FrictMat_FrictMat_FrictPhys(),
                        Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(
                            setCohesionNow = True,
                            setCohesionOnNewContacts = False
                            ),
                    ],
                    [
                        Law2_GridCoGridCoGeom_FrictPhys_CundallStrack(),
                        Law2_ScGeom_FrictPhys_CundallStrack(),
                        Law2_ScGridCoGeom_FrictPhys_CundallStrack(),
                        Law2_ScGeom6D_CohFrictPhys_CohesionMoment(),
                    ],
                ),
                NewtonIntegrator(gravity = [0,0,0], damping = 0.0),
            ]
# ---------------------------------------------------------------------------- objects
# ----------------------------------------------------- target

pnode = []
pcyl = []
pfacet = []
pfacetCreator1(
    pfacet_nodes,
    p_radius,
    nodesIds = pnode,
    cylIds = pcyl,
    pfIds = pfacet,
    wire = False,
    fixed = False,
    color = [0.5,0.5,0.5],
    materialNodes = target_int_mat,
    material = target_ext_mat,
    )

target_ids = pnode + pcyl + pfacet
# ----------------------------------------------------- spheres
sp1 = sphere([0, 0.25, .2], 5e-2, material = target_ext_mat)
sp2 = sphere([0, -0.25,-.2], 5e-2, material = target_ext_mat)

sp1_ID = O.bodies.append(sp1)
sp2_ID = O.bodies.append(sp2)

O.bodies[sp1_ID].state.vel = [0,0,-5]
O.bodies[sp2_ID].state.vel = [0,0, 5]

# ----------------------------------------------------- Simulation params
O.dt = utils.PWaveTimeStep()
O.saveTmp()

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Klaus Thoeni (klaus.thoeni) said :
#1

Hi John,

I am aware of the issue and I have a fix for it. However, it seems that there are some more issues with pFacets and we are trying to solve them. So please be patient.

Klaus

Revision history for this message
Rohit John (rohitkjohn) said :
#2

Dear Klaus,

Thanks for working on fixing this bug. Shall I post on launchpad if I find any additional bugs?

Kind regards,
Rohit K. John

Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#3

Hi,
Additional bugs could be discussed directly hre: https://gitlab.com/yade-dev/trunk/-/issues/210

Bruno

Can you help with this problem?

Provide an answer of your own, or ask Rohit John for more information if necessary.

To post a message you must log in.