Creating a pack with Nc more than 6

Asked by M.Meidani

Hi,

I want to simulate direct shear test. At first step I created a pack with Nc=3.92 . Numerical results did not match with experimental one and results showed that my pack is loose.
So I made it denser. Final value that I can reach is 5.23 but it is still not enough (behavior is like dense sand but it is not match).
I have tried different method but i cannot make it denser than Nc=5.23.

Do you have any idea to make the pack denser?

P.S: My main goal is calibrating model with Direct shear test. So I tried different values of E,Phi and BetaR to calibrate the model.

Question information

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

Hello,
IMHO seeking Nc>5 for sphere packings is unphysical, hence not possible with DEM.
There are so many other parameters in the model but you are blaming Nc for the mismatch between tests and simulation. Why? Do you have measurements of Nc in the tests?
Bruno

Revision history for this message
Christian Jakob (jakob-ifgt) said :
#2

Hi,

You can use clumps instead of spheres to increase number of contacts. But the packing will not be denser by doing so...

Christian

Revision history for this message
Luc Scholtès (luc) said :
#3

I would just add that, as Bruno said, Nc>5 is not possible with DEM using SPHERICAL particles. However, it is conceivable by using non spherical particles (e.g clumps or polyhedra) as it is sometimes done for modelling rocks. An alternative for that is to allow near neighbour contacts (contact between non overlapping particles) using the aabbEnlargeFactor and interactionDetectionFactor. It is working pretty well as shown in [1].

The questions now are more about what mterial do you want to simulate? Rock? Soil? And also why are you saying that there is a mismatch between simulations and experiments? This could also be due to an inappropriate contact law...

[1] http://www.sciencedirect.com/science/article/pii/S0022509612002268

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

Of course compacting spheres before clumping leads to arbitrary large Nc depending on the number of spheres per clump, but I'm not really sure that clumps will give Nc>5 if they are compacted as clumps (I mean starting from a clump cloud).
Do you guys have results about that?

Revision history for this message
Christian Jakob (jakob-ifgt) said :
#5

>Of course compacting spheres before clumping leads to arbitrary large Nc depending on the number of spheres per clump, but I'm not really sure that clumps will give Nc>5 if they are compacted as clumps (I mean starting from a clump cloud).
Do you guys have results about that?

Yes, I see, that the difference between 100% spheres and 100% clumps (two spherical members) is not much (around +0.1 ... +0.2). On one hand there are more contacts, but on the other hand the porosity is higher and hence less contacts. A denser packing can be achieved by using lower friction while consolidation. Also using more members per clump will lead to more contacts, but I did notdo this, yet.

Revision history for this message
M.Meidani (masood-meidani) said :
#6

Thanks for your prompt responses.

@Bruno
After creating the first pack(Nc=3.92), I run direct shear test model with different values of E,Phi and BetaR. Results showed that the pack behaves as a loose sand, but experimental result shows that it is a dense sand.
So I tried to create a second pack and it was Nc=4.96. This pack behaves similar to dense sand but it was not match with experimental one (slope of the line and peak value were checked). So again I tried different values of those three parameters to calibrate my model. But with E=100Mpa it was still not good. So I think that may be I should make the pack denser.
But maximum value that I could reach is 5.32. This pack behaves better than previous ones with the same values of E,Phi and BetaR.
What is the other parameter that have an effect on the results?
P.S. : Yes, after creating each pack I calculated Nc with utils.plotDirections()

@Luc
I want to simulate sand. So I think using spheres is better than clumps as you mentioned that is good for rocks.
I used "Law2_ScGeom6D_NormalInelasticityPhys_NormalInelasticity" as a contact law.
I tried to calibrate the model and find micro values of E,Phi. So I want to match the result of simulation with experimental to find these values.

Revision history for this message
Best Jérôme Duriez (jduriez) said :
#7

Hi,

I used / wrote (at a time copy-paste improvements were not strictly banned) Law2_ScGeom6D_NormalInelasticityPhys_NormalInelasticity for the work presented mainly in [Duriez2011] (see https://yade-dem.org/doc/publications.html#journal-articles).

And you have other parameters than E, Phi, BetaR, to play with to calibrate your model. As presented in the article and somehow in the doc, this law includes 6 local parameters. One is in fact unfortunately hardcoded in the source code (etaR = 1, which controls the moment threshold and also the peak strength if I remember well). I have to confess some improvements could surely be done to this years old code (and unfortunately I won't do it myself in a not far future).

You have the wiki page https://www.yade-dem.org/wiki/ConstitutiveLaws, the doc of different related classes, the paper and my answers to enjoy as possible this contact law.
Switching to another one with moment transfer law - if needed - such as Law2_ScGeom6D_CohFrictPhys_CohesionMoment (this law is quite similar, "mine" has the extra feature of normal inelasticity) would also be a possibility in the end.

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

>CohFrictPhys_CohesionMoment (this law is quite similar, "mine" has the extra feature of normal inelasticity)

For the sake of accuracy:
I would say that "NormalInelasticity" is quite similar to a very old version of "CohesionMoment", maybe.
Just have a look at the respective cpp files now and how many lines of real code they have. There is bunch of things not implemented in the former: elastic energy, creep, irreversible rolling moment, torsional stiffness, assigning adhesion on the fly...
I would not recommend NormalInelasticity unless normal inelasticity is explicitely needed.

Revision history for this message
M.Meidani (masood-meidani) said :
#9

Hi,

Thanks Jerome and Bruno for your answers.

I changed material to "CohFrictMat" and also ip functor to " Ip2_CohFrictMat_CohFrictMat_CohFrictPhys" and the contact law to "Law2_ScGeom6D_CohFrictPhys_CohesionMoment".

After starting a simulation I got this error:
 <TypeError: No registered converter was able to produce a C++ rvalue of type boost::shared_ptr<IPhysFunctor> from this Python object of type Boost.Python.class >

I looked at launchpad to get an idea about this error but I cannot find the solution.
Do you know what is a problem with "IPhysFunctor" mentioned in error?

Thanks

Masood

Revision history for this message
Jérôme Duriez (jduriez) said :
#10

There was surely an error in the syntax of your python script. You should show it to us.

Revision history for this message
M.Meidani (masood-meidani) said :
#11

Thanks Jérôme Duriez, that solved my question.