Defining Restitution with matchmaker

Asked by ipemath

I am doing projectile impact studies on a bed of spheres bounded by walls. I am assiging the same material for all the bodies(walls and spheres). How will I use MatchMaker to assign coefficient of restitution between bodies. The code snippet is given below

 steelId=O.materials.append(FrictMat(young=193e6,poisson=.3,density=8000e-9,frictionAngle=.42285,label='steel'))

O.engines=[
 ForceResetter(),
 InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Wall_Aabb()]),
 InteractionLoop(
   [Ig2_Sphere_Sphere_ScGeom(),Ig2_Wall_Sphere_ScGeom()],
   [Ip2_FrictMat_FrictMat_MindlinPhys(en=MatchMaker(matches=((steelId,steelId,1.0))),es=MatchMaker(matches=((steelId,steelId,1.0))))],
   [Law2_ScGeom_MindlinPhys_Mindlin()],
   ),
 NewtonIntegrator(),
 PyRunner(iterPeriod=50,command='trial()')
 ]

If I run this script I get the following error

[Ip2_FrictMat_FrictMat_MindlinPhys(en=MatchMaker(matches=(steelId,steelId,1.0)),es=MatchMaker(matches=(steelId,steelId,1.0)))],
TypeError: No registered converter was able to produce a C++ rvalue of type Eigen::Matrix<double, 3, 1, 0, 3, 1> from this Python object of type int

Please help

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Klaus Thoeni (klaus.thoeni) said :
#1

Hi,

you have two possibilities. As you are only using one material there is no need to define a matchmaker, i.e. en=1, es=1. If you still want to use matchmaker define two materials with the same material parameters, i.e. en=MatchMaker(matches=(mat1,mat2,1.0)).

Klaus

Can you help with this problem?

Provide an answer of your own, or ask ipemath for more information if necessary.

To post a message you must log in.