← Back to team overview

yade-users team mailing list archive

[Question #696376]: Contact between sphere-gridconnection not detected in a pfacet edge

 

New question #696376 on Yade:
https://answers.launchpad.net/yade/+question/696376

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()

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.