yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #15747
Re: [Question #658037]: Incorporating Multiple Interaction Physics on Bodies
Question #658037 on Yade changed:
https://answers.launchpad.net/yade/+question/658037
Status: Open => Answered
Bruno Chareyre proposed the following answer:
Hi,
The short answer is "no", there is no trivial solution.
Yade handles this problem gracefully only if the material properties are of different types (e.g. FrictMat vs. CohFrictMat), which is not your case.
I don't see any solution without touching the source code. If no one else come up with a better solution, you could do this:
1. Derive (in the sense of class inheritance) a Material class called e.g. "HertzMat" and inheriting from FrictMat.
2. Duplicate the content of IP2_FrictMat_FrictMat_MindlinPhys.cpp/hpp into files IP2_HertzMat_HertzMat_MindlinPhys.cpp/hpp and replace FrictMat by HertzMat wherever it appears
___ end of changes in source code ___
3. In your script, assign FrictMat for facets and HetzMat for spheres + use the functors IP2_FrictMat_FrictMat_FrictPhys and IP2_HertzMat_HertzMat_MindlinPhys concurently. It will generate FrictPhys interactions for all pairs (sphere-facet) which are not HertzMat vs. HertzMat, and MindlinPhys interactions for the rest (sphere-sphere).
4. Introduce both Law2_ScGeom_FrictPhys_CundallStrack and Law2_ScGeom_MindlinPhys_Mindlin in the same script, the first will pick-up the facet-sphere contacts.
Let us know if you need more detailed explanation.
Regards
Bruno
p.s. On a more physical aspect, I am wondering why sphere-facet contacts
should not follow Hertz-Mindlin. Theoretically it makes no difference if
one object in contact is a flat surface.
--
You received this question notification because your team yade-users is
an answer contact for Yade.