← Back to team overview

yade-users team mailing list archive

Re: [Question #696253]: Polyhedra-Sphere-Facet Coefficient of Restitution


Question #696253 on Yade changed:

    Status: Answered => Open

Andrew Jennings is still having a problem:
Hi Jan,

I finally found time to try out your recommendation.  This is the
function I created:

void Ip2_FrictMat_PolyhedraMat_PolyhedraPhys::go(const shared_ptr<Material>& pp1, const shared_ptr<Material>& pp2, const shared_ptr<Interaction>& interaction)
	if (interaction->phys) return;
	const shared_ptr<FrictMat>&     mat1 = YADE_PTR_CAST<FrictMat>(pp1);
	const shared_ptr<PolyhedraMat>& mat2 = YADE_PTR_CAST<PolyhedraMat>(pp2);
	interaction->phys                               = shared_ptr<PolyhedraPhys>(new PolyhedraPhys());
	const shared_ptr<PolyhedraPhys>& contactPhysics = YADE_PTR_CAST<PolyhedraPhys>(interaction->phys);
	Real                             Kna            = mat1->young;
	Real                             Knb            = mat2->young;
	Real                             Ksa            = mat1->young * mat1->poisson;
	Real                             Ksb            = mat2->young * mat2->poisson;
	Real                             frictionAngle  = math::min(mat1->frictionAngle, mat2->frictionAngle);
	contactPhysics->tangensOfFrictionAngle          = math::tan(frictionAngle);
	contactPhysics->kn                              = Kna * Knb / (Kna + Knb);
	contactPhysics->ks                              = Ksa * Ksb / (Ksa + Ksb);

This does allow me to assign friction material to the polys.
Unfortunately, I still seem to need CundallStrack or I get this error:

 <FATAL ERROR> InteractionLoop:182 virtual void
yade::InteractionLoop::action(): None of given Law2 functors can handle
interaction #8+239, types geom:ScGeom=1 and phys:PolyhedraPhys=18
(LawDispatcher::getFunctor2D returned empty functor)

as soon as the polys touch the facets.  When I add CundallStrack the
particles explode as soon as they touch the facets.

Maybe I need to try to create a Ig2_Facet_Polyhedron_ScGeom so
everything uses friction material.

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