CPM contact parameters (stiffness & friction angle)

Asked by mohsen

In the name of god
Hello every one

On 2016-04-10 i asked a question (No 290372) about stiffness computation in CPM model and finally this question results in definition of a new method in "Ip2_CpmMat_CpmMat_CpmPhys". This new method (E(=uninitalized)) enable the user to define contact stiffness in 4 algorithm.
 Now there is two points:
1- What about friction angle?! Suppose that the friction angle of two different materials (phi1 and phi2) has been obtained experimentally and there is a great difference between the obtained value and what Ip2_CpmMat_CpmMat_CpmPhys computes i.e. using average of the two friction angle ((phi1+phi2)/2). How can we use real friction angle instead of average one?

2- Why the user is forced to choose one of the 4 algorithms? Is it possible to inter the interaction young modulus manually (As i think it is so in PFC)? Or a better approach is to develop 'algo' method of class 'MatchMaker' [1] in such a way that two coefficient is defined (e.g. C1 and C2). Then interaction young modulus and friction angle can obtained :

E=(C1* E1+C2*E2)/(C1+C2)
friction angle= (C1* phi1+C2*phi2)/(C1+C2)

Thanks

[1]: https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.MatchMaker

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
mohsen
Solved:
Last query:
Last reply:
Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#1

Hello,
MatchMakers are definitely the answer to your question.
It is not possible to hardcode in the source code, in advance, every possible relationships.

Changing manually the contact parameters is ok. The problem is it is difficult to control what happens to newly created contacts with this method.

Bruno

Revision history for this message
mohsen (agha-mohsena) said :
#2

Hello Dr. Chareyre

>MatchMakers are definitely the answer to your question.
>It is not possible to hardcode in the source code, in advance, every possible relationships.

I meant that adding another option in source code to 'algo' with capability of receiving 'C1' and 'C2' and then calculating interaction young modulus. Is there any problem with this idea?

>Changing manually the contact parameters is ok. The problem is it is difficult to control what happens to newly created >contacts with this method.

That is right. We would encounter problems with manual changes.

thanks

Mohsen Asadi Zeidbadi

Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#3

I don't see a problem in adding a new algo, but I don't understand precisely which algorithm you would like.

In (C1* E1+C2*E2)/(C1+C2) the problem I see is that you have a dependency on 4 parameters instead of 2.
If it is really what you need C1 and C2 will have to be additional material parameters, hence new classes.
Or new data is added to the MatchMaker itslef to define those constants (but then someone will want to have different values of C1,C2 for different types of materials, not possible with only one MatchMaker, it is a circular loop).
Isn't it possible to compute the constant (C1* E1+C2*E2)/(C1+C2) once in your script and use the "val" algorithm?

 Bruno

side note: I don't understand the physical relevance of this weighted average you suggest

Revision history for this message
mohsen (agha-mohsena) said :
#4

Let start from the end:

>side note: I don't understand the physical relevance of this weighted average you suggest.

It is the question for me also what is the meaning of for example arithmetic average?! Why before the modification in "Ip2_CpmMat_CpmMat_CpmPhys" (as described in question) arithmetic average was default way of computing 'E' (as it is for friction angle now)?
I do not know does it have a physical meaning or it is just an engineering simplification since finding contact stiffness is a hard job?

As discussed in [1] absolutely in some situation (e.g soft to rigid contact) arithmetic average is a wrong approach and therefore new method 'E' was added. In the following i have tried to clarify:

suppose that there is a contact between two spheres with E1=1 and E2=100. That is clear that most of deformation is due to softer sphere (sphere 1) and Therefore stiffness of sphere1 should contribute more in E (Or K) computation.

So how can we capture this reality in our modelling? May be weighted E computation. Although undoubtedly there are some points that should be answered specially when more than 2 materials has been defined.

> In (C1* E1+C2*E2)/(C1+C2) the problem I see is that you have a dependency on 4 parameters instead of 2.

That is right in some way. But is it possible to define new algo in such a way that C1 refers to smaller E? If it was possible, so in each contact always C1 works with smaller E and C2 with greater one and just two parameters is enough.

>If it is really what you need C1 and C2 will have to be additional material parameters, hence new classes.

Based on what i discussed above this approach is useful when just there are two different material and wrong when more than two materials used since we do not know in a contact which sphere is softer.

>Or new data is added to the MatchMaker itslef to define those constants (but then someone will want to have >different values of C1,C2 for different types of materials, not possible with only one MatchMaker, it is a circular loop).

As you mentioned may be for a particular case it works but not a general solution.

>Isn't it possible to compute the constant (C1* E1+C2*E2)/(C1+C2) once in your script and use the "val" algorithm?

It is true just For two materials and just two defined particles . For more than 2 particles this approach causes problems.

Regards

Mohsen Asadi Zeidabadi

[1]: https://answers.launchpad.net/yade/+question/290372

Revision history for this message
Jan Stránský (honzik) said :
#5

Hi Mohsen,

In general CPM mat was not really designed for different materials (or at
least not drastically different material), therefore many of assumptions
(like arithmetic average of stiffness or friction angle) are written "just
in case". If you want to compute the resulting IPhys parameters
differently, it is possible to modify the source code and you can:
- implement MatchMaker for some standard ways of combining two values
- use some more sophisticated formula directly in Ip2::go function

As discussed in [1] absolutely in some situation (e.g soft to rigid
> contact) arithmetic average is a wrong approach and therefore new method
> 'E' was added. In the following i have tried to clarify:
> suppose that there is a contact between two spheres with E1=1 and
> E2=100. That is clear that most of deformation is due to softer sphere
> (sphere 1) and Therefore stiffness of sphere1 should contribute more in
> E (Or K) computation.
> So how can we capture this reality in our modelling? May be weighted E
> computation. Although undoubtedly there are some points that should be
> answered specially when more than 2 materials has been defined.

I am not sure if I got this correctly, but for the stiffnesses, existing
MatchMaker and harmonic average is the correct approach to use. Or do you
get some wrong results with it?

cheers
Jan

2016-07-01 21:47 GMT+02:00 mohsen <email address hidden>:

> Question #295810 on Yade changed:
> https://answers.launchpad.net/yade/+question/295810
>
> mohsen posted a new comment:
> Let start from the end:
>
> >side note: I don't understand the physical relevance of this weighted
> average you suggest.
>
> It is the question for me also what is the meaning of for example
> arithmetic average?! Why before the modification in
> "Ip2_CpmMat_CpmMat_CpmPhys" (as described in question) arithmetic average
> was default way of computing 'E' (as it is for friction angle now)?
> I do not know does it have a physical meaning or it is just an engineering
> simplification since finding contact stiffness is a hard job?
>
> As discussed in [1] absolutely in some situation (e.g soft to rigid
> contact) arithmetic average is a wrong approach and therefore new method
> 'E' was added. In the following i have tried to clarify:
>
> suppose that there is a contact between two spheres with E1=1 and
> E2=100. That is clear that most of deformation is due to softer sphere
> (sphere 1) and Therefore stiffness of sphere1 should contribute more in
> E (Or K) computation.
>
> So how can we capture this reality in our modelling? May be weighted E
> computation. Although undoubtedly there are some points that should be
> answered specially when more than 2 materials has been defined.
>
> > In (C1* E1+C2*E2)/(C1+C2) the problem I see is that you have a
> dependency on 4 parameters instead of 2.
>
> That is right in some way. But is it possible to define new algo in
> such a way that C1 refers to smaller E? If it was possible, so in each
> contact always C1 works with smaller E and C2 with greater one and just
> two parameters is enough.
>
> >If it is really what you need C1 and C2 will have to be additional
> material parameters, hence new classes.
>
> Based on what i discussed above this approach is useful when just there
> are two different material and wrong when more than two materials used
> since we do not know in a contact which sphere is softer.
>
> >Or new data is added to the MatchMaker itslef to define those constants
> (but then someone will want to have >different values of C1,C2 for
> different types of materials, not possible with only one MatchMaker, it
> is a circular loop).
>
> As you mentioned may be for a particular case it works but not a general
> solution.
>
> >Isn't it possible to compute the constant (C1* E1+C2*E2)/(C1+C2) once
> in your script and use the "val" algorithm?
>
> It is true just For two materials and just two defined particles . For
> more than 2 particles this approach causes problems.
>
> Regards
>
> Mohsen Asadi Zeidabadi
>
>
>
>
>
> [1]: https://answers.launchpad.net/yade/+question/290372
>
> --
> You received this question notification because your team yade-users is
> an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>

Revision history for this message
mohsen (agha-mohsena) said :
#6

Hi Jan
1-
>In general CPM mat was not really designed for different materials (or at
>least not drastically different material), therefore many of assumptions
>(like arithmetic average of stiffness or friction angle) are written "just
>in case".

Thanks you! This helps so much.

2-
>I am not sure if I got this correctly;
Problem statement is not clear or the solution (i.e weighted E computation)?
What is your idea bout these sentences:
"
>It is the question for me also what is the meaning of for example arithmetic average?!

>I do not know does it have a physical meaning or it is just an engineering simplification since finding contact stiffness is a hard job?
"

3-
> Or do you get some wrong results with it?
I could not generate any experimental data to validate the 'harm average' approach, although it seems this approach is the best but not correct. Also the typical results with 'harm average' are true.

Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#7

The harmonic average is simply what comes out after cumulating the compliance of two surfaces, as explained here:
https://yade-dem.org/doc/formulation.html#normal-stiffness

It does not mean that every experiment on every possible contact will give this, but it is at least self-consistent.

Bruno

Revision history for this message
mohsen (agha-mohsena) said :
#8

Hi Bruno

What you said at seventh comment ( #7 )is completely true and i agree with it and basically because of it i asked this question.

Thank you so much Bruno!!
Thank you so much Jan!!

Regards

Asadi