← Back to team overview

yade-users team mailing list archive

Re: hello? -help with a spinning bucket!


> this should be easy in yade, but I can't spot the easy solution that
> must be there.  I have beads in a container.  I want to model their
> friction against it's walls.  I can get the friction of the beads
> themselves by measuring the angle of internal friction.  assuming I
> know the poissons ratio and young's modulus,  I am set.  but for the
> walls, it is a different story.  is there no way to simply specify the
> coefficients of static and kinetic friction of the wall material?  or
> do I have to measure the angle of internal friction of beads made with
> the same material?  also, how do I take into account that the
> coefficients of friction between, say, glass and teflon, teflon and
> teflon, and glass and glass, are all different, for both the cases of
> static and kinetic friction?
> I feel i'm pushing it a bit, but these also seem valid questions when
> it is taken into account that this program operates at timesteps of
> e-6 seconds, and therefore necessarilly takes into account a great
> deel of physics.

Hi Mike,

Material and Shape are orthogonal for each body, so you can specify
friction coefficient for wall as for any other body. A different
question is how is the friction coefficient translated to some parameter
of an interaction. The way it works is that InteractionPhysics is
created via Ip2_* functors which typically compute something from two
Materials (averages for Young's moduli, for instance).

To have all the combinations you need, if there is no explicit formula
that is common (such as always taking the average or minimum value), you
can proceed in two ways:

1. Create a new Material sub-class for each type of particle, then Ip2*
functor for each admissible combination, each containing a special
algorithm that will do whatever you want. A little overkill perhaps, but
it will work.

2. Create one new Material which will contain something integer
identifier of what kind of material it is supposed to represent. Then
one new Ip2* functor will switch the algorithm based on the combination
of identifiers. (Anton uses this approach to make the difference between
interaction of particles within one grain and particle where each is
from different grain in his RockPM classes IIRC).

Yo ucan describe your needs in more detail if you feel you need more
information to get started. We are here to help you coding your new
classes if you need them. There is no performance penalty for that, it
will be as fast as those that exist, and we can write some of that code
for you -- everybody has the experience it is harder the first time, but
it is really not complicated.

HTH, Václav