Hi Zaftrox,

Thank you for the follow up. To help us better identify the problem, could you please upload the "test PLATE.obj" file? In addition, could you please provide information on how do you install the PyChrono. Specifically, if you install PyChrono via conda, could you please also attach your "conda list" output?

Best,

Bocheng Zou

On 8/25/25 06:50, Zaftrox wrote:
No, there's nothing.
When the simulation starts and the rendering window pop-up it freezes instantaneously and crash. It comes from the collision so if the particles cloud is set fixed or by disabling the collision, the simulation works fine.

Le lundi 25 août 2025 à 04:22:01 UTC+1, [email protected] a écrit :

    Hi Zaftrox,

    Thank you for raising the issue. To help us investigate, could you
    please report if there's any output in the terminal before the
    program crashes?

    Best,

    Bocheng Zou

    On 8/25/25 01:07, Zaftrox wrote:
    here's the code :

    import pychrono.core as chrono
    import pychrono.irrlicht as chronoirr
    import random
    import numpy as np

    # Sim-DATA :
    simData = {
        "Density" : 5200,
        "ExpectedDiameter" : .05e-3
    }
    simData["ParticleVolume"] =
    (3/4)*np.pi*np.power((simData["ExpectedDiameter"]/2), 3)
    simData["ParticleMass"] =
    simData["ParticleVolume"]*simData["Density"]
    simData["ParticleInertia"] =
    (2/5)*simData["ParticleMass"]*np.power((simData["ExpectedDiameter"]/2),
    2)

    # Create Chrono physical system
    system = chrono.ChSystemNSC()
    system.SetCollisionSystemType(chrono.ChCollisionSystem.Type_MULTICORE)
    system.SetGravitationalAcceleration(chrono.ChVector3d(0, -9.81, 0))
    ground = chrono.ChBody()
    ground.SetFixed(True)
    system.Add(ground)
    material = chrono.ChContactMaterialNSC()
    material.SetFriction(.5)

    def constrain_to_2D(body):
        # Dummy body as reference :
        dummy = chrono.ChBodyAuxRef()
        dummy.SetFixed(True)
        system.AddBody(dummy)

        # Planar constraint and its frame :
        plane_constraint = chrono.ChLinkLockPlanar()
        frame_abs = chrono.ChFramed(body.GetPos(), chrono.QUNIT)
        # Init :
        plane_constraint.Initialize(body, dummy, True, frame_abs,
    frame_abs)
        # constraint generic mate :
        lock = chrono.ChLinkMateGeneric()
        lock.Initialize(body, dummy, False, frame_abs, frame_abs)
        # Constrain Tz and X/Y rotation in case of offset :
        lock.SetConstrainedCoords(False, False, True,  # Tx, Ty, Tz
                                  True, True, False)   # Rx, Ry, Rz

        system.Add(lock)
        system.AddLink(plane_constraint)

    def importMeshBody(meshFile, material, contrained2D=False,
    fixed=True, scale=0.001, initialPos=chrono.ChVector3d(0, 0, 0),
    colorVec=chrono.ChColor(0.3, 0.3, 0.3)):
        # Prior :
        body = chrono.ChBody()
        system.Add(body)
        body.SetPos(initialPos)
        if contrained2D :
            constrain_to_2D(body)
        # mesh :
        mesh = chrono.ChTriangleMeshConnected()
        mesh.LoadWavefrontMesh(meshFile)
        transformationMatrix = chrono.ChMatrix33d(scale)
        mesh.Transform(chrono.ChVector3d(0,0,0), transformationMatrix)

        # Visualization part :
        visShape = chrono.ChVisualShapeTriangleMesh()
        visShape.SetMesh(mesh)
        visShape.SetColor(colorVec)
        body.AddVisualShape(visShape)

        # Collision part :
        body_ct_shape = chrono.ChCollisionShapeTriangleMesh(material,
    mesh, False, False, 0.01)
        body.AddCollisionShape(body_ct_shape)
        body.EnableCollision(True)
        body.SetFixed(fixed)
        return body

    plate = importMeshBody("test PLATE.obj", material,
    contrained2D=True, scale=.001, fixed=True)

    # Particles cloud :
    particles = chrono.ChParticleCloud()
    particles.SetMass(simData["ParticleMass"])
    particles.SetInertiaXX(chrono.ChVector3d(simData["ParticleInertia"],
    simData["ParticleInertia"], simData["ParticleInertia"]))

    # Collision shape/model :
    colModel = chrono.ChCollisionModel()
    colModel.Clear()
    cylShape = chrono.ChCollisionShapeCylinder(material, .01, .002)  
    # radius
    colModel.AddShape(cylShape)
    particles.AddCollisionModel(colModel)
    particles.AddCollisionShape(cylShape)

    visShape = chrono.ChVisualShapeCylinder(.01, .002)
    frame = chrono.ChFramed(chrono.ChVector3d(0,0,0),
    chrono.QuatFromAngleAxis(chrono.CH_PI/2, chrono.ChVector3d(1,0,0)))
    particles.AddVisualShape(visShape, frame)

    # Add particles (positions only)
    for i in range(20):
        possys = chrono.ChCoordsysd(
            chrono.ChVector3d(random.uniform(-.3, .3),
    random.uniform(-.3, .3), 0),
            chrono.QuatFromAngleAxis(-chrono.CH_PI/2,
    chrono.ChVector3d(1,0,0))
        )
        particles.AddParticle(possys)
    particles.EnableCollision(True)
    system.Add(particles)

    vis = chronoirr.ChVisualSystemIrrlicht()
    vis.AttachSystem(system)
    vis.SetWindowSize(1024, 768)
    vis.SetWindowTitle("Mixer simulator")
    vis.Initialize()
    vis.AddSkyBox()
    vis.AddCamera(chrono.ChVector3d(0, 0, 2))
    vis.AddTypicalLights()

    time_step = 0.005
    while vis.Run():
        vis.BeginScene()
        vis.Render()
        vis.EndScene()
        system.DoStepDynamics(time_step)


    Le lundi 25 août 2025 à 01:47:32 UTC+1, Dan Negrut a écrit :

        Hi, would you mind dropping the entire PyChrono script, top
        to bottom, that demonstrates the problem?

        NOTE: this is a public forum, remove any sensitive
        information/data.

        Thank you,

        Dan

        ---------------------------------------------

        Bernard A. and Frances M. Weideman Professor

        NVIDIA CUDA Fellow

        Department of Mechanical Engineering

        Department of Computer Science

        University of Wisconsin - Madison

        4150ME, 1513 University Avenue

        Madison, WI 53706-1572

        608 772 0914 <tel:(608)%20772-0914>

        http://sbel.wisc.edu/ <http://sbel.wisc.edu/>

        http://projectchrono.org/
        
<https://urldefense.com/v3/__http://projectchrono.org/__;!!Mak6IKo!ITBwK6AoQ7iC2NneNT03ytYMiDYSaYAZrEKJuUflDp6oKyToFy5ZnziS6wqNOxZebNMoYz5M9krJyntijC-1gw$>


        ---------------------------------------------

        *From:*[email protected]
        <[email protected]> *On Behalf Of *Zaftrox
        *Sent:* Sunday, August 24, 2025 4:04 PM
        *To:* ProjectChrono <[email protected]>
        *Subject:* [chrono] Question about the ChParticleCloud, Crash
        when collisions are enabled

        Hi, i wanted to create a particlecloud to handle a bunch of
        cylindrical objects in pychrono. However, when i setup the
        particlecloud then enable the collisions, it crashs immediately.

        Here's the snippet :

        # Particles cloud :
        particles = chrono.ChParticleCloud()
        particles.SetMass(simMat["ParticleMass"])
        particles.SetInertiaXX(chrono.ChVector3d(
        simMat["ParticleInertia"], simMat["ParticleInertia"],
        simMat["ParticleInertia"]))

        # Collision shape/model :
        colModel = chrono.ChCollisionModel()
        colModel.Clear()
        cylShape = chrono.ChCollisionShapeCylinder(material, .01, .002)
        colModel.AddShape(cylShape)
        particles.AddCollisionModel(colModel)
        particles.AddCollisionShape(cylShape)

        visShape = chrono.ChVisualShapeCylinder(.01, .002)
        frame = chrono.ChFramed(chrono.ChVector3d(0,0,0),
        chrono.QuatFromAngleAxis(chrono.CH_PI/2,
        chrono.ChVector3d(1,0,0)))
        particles.AddVisualShape(visShape, frame)

        # addition loop :
        for i in range(20):
            possys = chrono.ChCoordsysd(
                chrono.ChVector3d(random.uniform(-.3, .3),
        random.uniform(-.3, .3), 0),
        chrono.QuatFromAngleAxis(-chrono.CH_PI/2,
        chrono.ChVector3d(1,0,0))
            )
            particles.AddParticle(possys)
        #particles.EnableCollision(True)
        system.Add(particles)

-- You received this message because you are subscribed to the
        Google Groups "ProjectChrono" group.
        To unsubscribe from this group and stop receiving emails from
        it, send an email to [email protected].
        To view this discussion visit
        
https://groups.google.com/d/msgid/projectchrono/a2929f89-b15a-42f5-a807-c7e7d02ec0edn%40googlegroups.com
        
<https://urldefense.com/v3/__https:/groups.google.com/d/msgid/projectchrono/a2929f89-b15a-42f5-a807-c7e7d02ec0edn*40googlegroups.com?utm_medium=email&utm_source=footer__;JQ!!Mak6IKo!O70Z-enwv3qPCNU5GsB0940X-7u5DtlNMuTw3zW-RVU8aTz_03LgUXyioYkelAHDYjGP2VlV_AMEqe82eWY$>.

-- You received this message because you are subscribed to the
    Google Groups "ProjectChrono" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to [email protected].
    To view this discussion visit
    
https://groups.google.com/d/msgid/projectchrono/0c2e271d-964f-444b-81e5-ceddcb392a48n%40googlegroups.com
    
<https://urldefense.com/v3/__https://groups.google.com/d/msgid/projectchrono/0c2e271d-964f-444b-81e5-ceddcb392a48n*40googlegroups.com?utm_medium=email&utm_source=footer__;JQ!!Mak6IKo!ITBwK6AoQ7iC2NneNT03ytYMiDYSaYAZrEKJuUflDp6oKyToFy5ZnziS6wqNOxZebNMoYz5M9krJyntp0Cwicg$>.

--
You received this message because you are subscribed to the Google Groups "ProjectChrono" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/projectchrono/40557cce-5ebb-4474-a3da-a6dae265872an%40googlegroups.com <https://urldefense.com/v3/__https://groups.google.com/d/msgid/projectchrono/40557cce-5ebb-4474-a3da-a6dae265872an*40googlegroups.com?utm_medium=email&utm_source=footer__;JQ!!Mak6IKo!MINBwGaqmVlsNIgD-u_eEGI6M1M7S-NI9JQ_D0QFBo034XutZnFAC87N5M7QKEx_5zzwZcj3gDSXRavzYLUGsg$>.

--
You received this message because you are subscribed to the Google Groups 
"ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/projectchrono/911a8e3e-be2b-4232-936a-476766aca77a%40wisc.edu.

Reply via email to