yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #25960
Re: [Question #696253]: Polyhedra-Sphere-Facet Coefficient of Restitution
Question #696253 on Yade changed:
https://answers.launchpad.net/yade/+question/696253
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.