← Back to team overview

yade-users team mailing list archive

Re: [Question #692003]: How to make a cube concrete specimen with polyhedrons and small balls?

 

Question #692003 on Yade changed:
https://answers.launchpad.net/yade/+question/692003

    Status: Open => Answered

Jan Stránský proposed the following answer:
Hello,

1) follow instructions from my 1st answer

2) thanks for more info. Have a look at this MWE:
###
O.materials.append(CpmMat())

O.engines = [
    ForceResetter(),
    InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Polyhedra_Aabb()]),
    InteractionLoop(
        [
            Ig2_Sphere_Sphere_ScGeom(),
            Ig2_Sphere_Polyhedra_ScGeom(),
            Ig2_Polyhedra_Polyhedra_ScGeom(),
        ],
        [Ip2_CpmMat_CpmMat_CpmPhys()],
        [Law2_ScGeom_CpmPhys_Cpm()],
    ),
    NewtonIntegrator(),
]

sph1 = sphere((3,0,0),1)
sph2 = sphere((3,0,3),1)
poly1 = polyhedron(((0,0,0),(1,0,0),(0,1,0),(0,0,1)))
poly2 = polyhedron(((0,0,3),(1,0,3),(0,1,3),(0,0,4)))
O.bodies.append((sph1,sph2,poly1,poly2))

createInteraction(sph1.id,sph2.id)
createInteraction(sph1.id,poly1.id)
createInteraction(poly1.id,poly2.id)
###

The problem is that currently (AFAIK) you cannot create interactions for non-overlapping polyhedron-polyhedron [1] and sphere-polyhedron [2] couples.
It would need modification of source code and proper implementation of interactionDetectionFactor, see [3].

cheers
Jan

[1] https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/Polyhedra_Ig2.cpp#L557
[2] https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/Polyhedra_Ig2.cpp#L497
[3] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Ig2_Sphere_Sphere_ScGeom.interactionDetectionFactor

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