Questions about engine settings

Asked by Xue

Hello everyone!
I encountered the following error when coupling yade with oofem for simulation.
-----------------------------------------------------------------------------------------------------------------------------------------
FATAL /home/xue/dem-fem-coupling-master/installation/_build/yade/source/pkg/common/InteractionLoop.cpp:143 action: None of given Law2 functors can handle interaction #11809+229, types geom:PolyhedraGeom=10 and phys:FrictPhys=3 (LawDispatcher::getFunctor2D returned empty functor)
-----------------------------------------------------------------------------------------------------------------------------------------
Here is the code statement I entered for the yade part.
*************************************************************************************
from libyade import yade
from yade import *
from math import *

from yade import pack,export,utils
from yade import polyhedra_utils
from yade import geom,utils
from yade import qt,ymport

matP = PolyhedraMat()
matP.density = 2650 #kg/m^3
matP.young = 5.5E9 #Pa 1E7
#matP.young = 2.75 #Pa 1E7
matP.poisson = 0.25 # 20000/1E7
matP.frictionAngle = 0.7 #rad
O.materials.append(matP)

steel = PolyhedraMat()
steel.density = 2600 #kg/m^3
steel.young = 55E9 #inital steel was
steel.poisson = 0.21
steel.frictionAngle = 0.2 #rad
O.materials.append(steel)

steel1 = FrictMat()
steel.density = 2600 #kg/m^3
steel.young = 55E9 #inital steel was
steel.poisson = 0.21
steel.frictionAngle = 0.2 #rad
O.materials.append(steel)

sphereballast = CohFrictMat()
sphereballast.density = 2000
#sphereballast.young = 5.5E8
sphereballast.young = 3E8
sphereballast.possion = 0.5
sphereballast.frictionAngle = 0.364 #rad 0.364
sphereballast.alphaKr = 2
sphereballast.etaRoll = 1
sphereballast.isCohesive = True
O.materials.append(sphereballast)

##
O.bodies.append(ymport.textPolyhedra('/tmp/plane.dat',material=matP))
ldpltheight=-0.021
ldplt=polyhedra_utils.polyhedra(steel,v=((-0.148,0,ldpltheight),(-0.073*sqrt(3),-0.073,ldpltheight),(-0.073,-0.073*sqrt(3),ldpltheight),(0,-0.148,ldpltheight),(0.073,-0.073*sqrt(3),ldpltheight),(0.073*sqrt(3),-0.073,ldpltheight),(0.148,0,ldpltheight),(0.073*sqrt(3),0.073,ldpltheight),(0.073,0.073*sqrt(3),ldpltheight),(0,0.148,ldpltheight),(-0.073,0.073*sqrt(3),ldpltheight),(-0.073*sqrt(3),0.073,ldpltheight),(-0.148,0,ldpltheight+0.02),(-0.073*sqrt(3),-0.073,ldpltheight+0.02),(-0.073,-0.073*sqrt(3),ldpltheight+0.02),(0,-0.148,ldpltheight+0.02),(0.073,-0.073*sqrt(3),ldpltheight+0.02),(0.073*sqrt(3),-0.073,ldpltheight+0.02),(0.148,0,ldpltheight+0.02),(0.073*sqrt(3),0.073,ldpltheight+0.02),(0.073,0.073*sqrt(3),ldpltheight+0.02),(0,0.148,ldpltheight+0.02),(-0.073,0.073*sqrt(3),ldpltheight+0.02),(-0.073*sqrt(3),0.073,ldpltheight+0.02)),fixed=True, color=(0.75,0.65,0.65))
O.bodies.append(ldplt)
O.bodies.append(ymport.textPolyhedra('/tmp/pack2120qq.dat',material=matP))
O.bodies.append(ymport.textExt('/tmp/nsphere2120qq.dat',format='x_y_z_r',material=sphereballast))

O.bodies.append(utils.facet([(-0.15,-0.15,0),(0.15,-0.15,0),(0.15,0.15,0)],material=steel1))

O.engines =[
 ForceResetter(),
 InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb(),Bo1_Polyhedra_Aabb()]),
 InteractionLoop(
  [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom(),Ig2_Facet_Polyhedra_PolyhedraGeom(),Ig2_Polyhedra_Polyhedra_PolyhedraGeom(),Ig2_Sphere_Polyhedra_ScGeom()],
  [Ip2_FrictMat_FrictMat_FrictPhys(),Ip2_PolyhedraMat_PolyhedraMat_PolyhedraPhys(),Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(),Ip2_FrictMat_PolyhedraMat_FrictPhys()],
  [Law2_ScGeom_FrictPhys_CundallStrack(),Law2_PolyhedraGeom_PolyhedraPhys_Volumetric(),Law2_ScGeom6D_CohFrictPhys_CohesionMoment()],
 ),
 NewtonIntegrator(damping=0.7,gravity=(0,0,-9.8),label='newton'),
]
*****************************************************************************************************************
It can be seen that the model contains sphere, polyhedra, facet. The materials include polyhedramat and CohFrictMat. Is the error in the calculation related to the wrong engine setting?

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Xue
Solved:
Last query:
Last reply:
Revision history for this message
Xue (1q12) said :
#1

Hi everyone´╝î
I found out that it was caused by not defining the engine correctly for CohFrictmat, I added Ip2_CohFrictMat_CohFrictMat_CohFrictPhys() and Law2_Sc Geom6D_CohFrictPhys_CohesionMoment() and the problem was solved.