Implementing a new contact model

Asked by Nima Goudarzi

Dear All,

I am trying to implement a new contact model into YADE. The model has some common features with HM but is different in some ways. I need to implement 8 responses in 4 directions [Normal, Tangential, Rolling and Twisting] (for of which are related to contact response and the rest to damping response). The model has 7 free parameters (E, ξ, ξ_c, β,μ,c_n,c_s)
From above parameters, two are almost new comparing to classical DEM models:
 a) ξ_c which is a local crushing parameter describing the effects of local asperity crushing (in rolling direction) and related to the hardness of the particle mineral material
 b) β which is dimensionless shape parameter which has been introduced to link the contact radius R ̅ and the radius of the contact spheres (β can be regarded as a shape parameter, used to consider the effects of particle shape on the overall mechanical behavior of granular materials.
R ̅=βr
r=(2r_i* r_j)/(r_i+r_j )
In addition, K_n (Normal stiffness) is different from HM. Here K_n=2rE . E represents the modulus of the particle material
And K_s=K_n/ξ. ξ is the ratio of the normal to the tangential contact stiffness. (It seems to be an input parameter)

The model also proposes to calculate c_n as follow:
c_n=(2*sqrt(K_n* m) ln⁡(η))/sqrt(ln^2 (η)+π^2 )

For responses please see page 153 of this paper (A novel three-dimensional contact model for granulates incorporating rolling and twisting resistances )
www.sciencedirect.com/science/article/pii/S0266352X14002390

(I can send you the paper if required)

Actually, I am trying to modify HM to capture all the behavior I need.

I have some questions:

1- Do I need to write a new class of material for introducing parameter described above? (I need ξ_c for the peak resistance in rolling direction) (I need β for calculating R ̅ which directly incorporates in the calculation of rolling stiffness [K_r], twisting stiffness [K_t], rolling damping coefficient [c_r], twisting damping coefficient [c_t] and peak resistances in rolling and twisting directions. I need ξ for calculating K_s. If yes, can FrictMaterial be the base class? If not, is it possible to define them outside the .hpp file somewhere in .cpp?

2- Can I still use MindlinPhys (by some modification) or I need to define a new physics too?

3- Do I need to include the functions for counting the number of adhesive contacts, returning ratio between the number of sliding contacts to the total number, calculating the normal elastic potential energy of the system and calculating adhesion energy of the system as implemented in HM.

4- Do I need to define new Law or the existing in HM can be employed?

I have some other questions I will ask after getting the response.

Sincerely Yours,

Nima

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

Hi Nima,

1,2,4) If I understood correctly, you have new parameters of material, new parameters to be stored on contacts and new material model. So most likely you will need new Material, IPhys, Ip2 and Law2 classes.
Theoretically, new material parameters can be part of Ip2 and are set to IPhys by it, so you can save creating a new material, but the material is the easiest part of the implementation :-)
After detailed analysis, you might discover that some classes don't need to be created new, but in general you need 4 new classes.

3) These features are optional, so you don't need to include them. But they might be useful

cheers
Jan

Revision history for this message
Nima Goudarzi (nimagoudarzi58) said :
#2

Hi Jan,

Thanks so very much for the reply. I think I should proceed gradually. As the first step, I am trying to write a new Material (let's say the name is JiangMat) to include the parameters I explained in my previous email. I will use FrictMat would be a good base class for this new material. Some of this parameters incorporate on calculations of stiffness coefficients and some will contribute to calculate contact and damping responses. Once I calculated the stiffness coefficients, I will pass them to my Iphys.

This is my specific question as the first step
1- can I write a new material (entitled JiangMat) with the base class FrictMat and include all explained parameters in it? In HM, they have used FrictMat directly since they only needed E, Friction Angle and Poisson Ratio for calculating coefficients of stiffness.

If possible would you please take a quick look at the paper (page 153 includes the summary of the model) for helping me if I can introduce all parameters in JiangMat. I have explained about all the parameters in the previous email.

Thanks so much for your patience and support

Nima

Sent from my iPhone

> On Jul 12, 2017, at 4:08 AM, Jan Stránský <email address hidden> wrote:
>
> Your question #647543 on Yade changed:
> https://answers.launchpad.net/yade/+question/647543
>
> Status: Open => Answered
>
> Jan Stránský proposed the following answer:
> Hi Nima,
>
> 1,2,4) If I understood correctly, you have new parameters of material, new parameters to be stored on contacts and new material model. So most likely you will need new Material, IPhys, Ip2 and Law2 classes.
> Theoretically, new material parameters can be part of Ip2 and are set to IPhys by it, so you can save creating a new material, but the material is the easiest part of the implementation :-)
> After detailed analysis, you might discover that some classes don't need to be created new, but in general you need 4 new classes.
>
> 3) These features are optional, so you don't need to include them. But
> they might be useful
>
> cheers
> Jan
>
> --
> If this answers your question, please go to the following page to let us
> know that it is solved:
> https://answers.launchpad.net/yade/+question/647543/+confirm?answer_id=0
>
> If you still need help, you can reply to this email or go to the
> following page to enter your feedback:
> https://answers.launchpad.net/yade/+question/647543
>
> You received this question notification because you asked the question.

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

1) yes, I would do it in that way. Have a look e.g. at CohFrictMat [1]. It just adds some more material parameters than FrictMat
I would also include all materials (you can remove them any time if you find you don't need them).
Jan

[1] https://github.com/yade/trunk/blob/master/pkg/dem/CohesiveFrictionalContactLaw.hpp#L22

Can you help with this problem?

Provide an answer of your own, or ask Nima Goudarzi for more information if necessary.

To post a message you must log in.