There is an error fixing DOFs of pfacet?

Asked by Rohit John on 2021-02-15

Hello,

I want to fix the rotation DOF of a pfacet. But when I tried that, the face disappeared in the GUI. I used inspect to check the state of the facet. It said nan for some values (pos, vel). Can you help me find a way to contrain the motion of a pfacet. The minimum working code is given below,

Regards,
Rohit

------------------------------------------------------------------------
from yade.gridpfacet import *

O.engines = [
        ForceResetter(),

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

        InteractionLoop(
            [
                Ig2_PFacet_PFacet_ScGeom(),
                Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),
                Ig2_GridNode_GridNode_GridNodeGeom6D(),
                Ig2_GridConnection_PFacet_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,9.81], damping = 0),
    ]
O.materials.append(CohFrictMat(young=1e7,poisson=1,density=1e2,frictionAngle=radians(30),normalCohesion=3e7,shearCohesion=3e7,momentRotationLaw=True,label='gridNodeMat'))
O.materials.append(FrictMat(young=1e7,poisson=1,density=1e2,frictionAngle=radians(30),label='gridConnectionMat'))

node_id_list = []
cyl_id_list = []
pfacet_id_list = []
pfacetCreator1(
                [
                    [1,0,0],
                    [0,1,0],
                    [0,0,1]
                ],
                radius = 0.05,
                wire = False,
                fixed = False,
                color = [0.5,0.5,0.5],
                materialNodes = 'gridNodeMat',
                material = 'gridConnectionMat'
                )

for i in O.bodies:
    i.state.blockedDOFs = 'XYZ'

O.dt = 1e-6
O.saveTmp()
----------------------------------------------------------------

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Klaus Thoeni
Solved:
2021-03-12
Last query:
2021-03-12
Last reply:
2021-02-22
Best Klaus Thoeni (klaus.thoeni) said : #1

You need to impose the blockedDOFs to the GridNodes. Also, blocking rotation will nit help here, you have to block displacements, because their is no rotation of the pFacet. It is given by the displacements of the nodes.

Klaus

Rohit John (rohitkjohn) said : #2

Thanks Klaus Thoeni, that solved my question.