← Back to team overview

yade-users team mailing list archive

Re: [Question #696759]: How can polyhedron use CpmMat 、Ip2_CpmMat_CpmMat_CpmPhys()and Law2_ScGeom_CpmPhys_Cpm() ?

 

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

    Status: Answered => Open

weijie is still having a problem:
Hi Jan, and thank you again.

I tried to make a simple version first. Based on the above script(#4),
firstly, the polyhedron material was set to CPM, the material of the
wall was set to FrictMat, and then I ran a step to set the polyhedron
material to frictmat, and an error occurred. The script and error are as
follows:

script:
###########
from __future__ import print_function
from yade import polyhedra_utils,qt
concrete = CpmMat(
	young = 24e9,
	poisson =  .2,
	frictionAngle = atan(0.8),
	epsCrackOnset = 1e-4,
	relDuctility =30,
	sigmaT = 3.5e6,
)
concreteId = O.materials.append(concrete)
poly1= polyhedra_utils.polyhedra(material=concrete,size=(1,1,1),seed=5) 
O.bodies.append(poly1)
poly1.state.pos = (0,0,0)
m=FrictMat(density=1000,young=1e5,poisson=0.5,frictionAngle=radians(20))
O.materials.append(m)
w1 = utils.wall((-0.75,0,0), axis=0, sense=0,material=m)
w2 = utils.wall((0.75,0,0), axis=0, sense=0,material=m)
v=0.1
w1.state.vel = (+v,0,0)
w2.state.vel = (-v,0,0)
O.bodies.append((w1,w2))

O.engines = [
    ForceResetter(),
    InsertionSortCollider([Bo1_Polyhedra_Aabb(),Bo1_Wall_Aabb()]),
    InteractionLoop(
        [Ig2_Polyhedra_Polyhedra_ScGeom(),Ig2_Wall_Polyhedra_PolyhedraGeom()],
        [Ip2_CpmMat_CpmMat_CpmPhys(),Ip2_FrictMat_FrictMat_FrictPhys()],
        [Law2_ScGeom_CpmPhys_Cpm(),Law2_ScGeom_FrictPhys_CundallStrack()],
    ),
    NewtonIntegrator(),
]

O.dt = 0.  #run one iteration
poly1.material=m  #change material
O.dt = 1e-6
##########################
error:

<FATAL ERROR> InteractionLoop:182 virtual void yade::InteractionLoop::action(): None of given Law2 functors can handle interaction #1+0, types geom:PolyhedraGeom=10 and phys:FrictPhys=3 (LawDispatcher::getFunctor2D returned empty functor)
QObject::~QObject: Timers cannot be stopped from another thread

Best regards
Jie

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