Oedometer test based on PSD

Asked by Soheil Safari

Dear all,

I am a new user of YADE. A part of my PhD project is investigation of the effects of compaction on pore structure and soil hydraulic properties. To this aim, we want to follow the DEM approach proposed by ”Mahmoodlu, M. G., Raoof, A., Sweijen, T., & Van Genuchten, M. T. (2016). Effects of sand compaction and mixing on pore structure and the unsaturated soil hydraulic properties. Vadose Zone Journal, 15(8).” which is done using YADE.

I am trying to reproduce the compaction process of a granular material under oedometric conditions based on my desired pore size distribution (PSD).

Now I am using [1] code. My first question is how can I change the sphere packing function (makeCloud)) based on the PSD? And how can I fix the side walls to obtain the oedometric condition (just vertical force)?

P.S. I should mention that I tried the oedometric sample on the yade website but it is not proper for me due to its gravity composition. Also, I tried to mix some PSD functions with this code but I could not get any result.

[1] https://gitlab.com/yade-dev/trunk/-/blob/3e9a209234b7f23241d5f4bdef1b586056e97582/examples/simple-scene/save-then-reload.py

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Robert Caulk
Solved:
Last query:
Last reply:
Revision history for this message
Robert Caulk (rcaulk) said :
#1

Hello,

Welcome to Yade! You are asking quite a few disparate questions here, so please in the future, limit your threads to a single question each. Open as many threads as you want. We have other important forum guidelines that you should keep in mind if you desire quick and efficient help [3].

>>how can I change the sphere packing function (makeCloud)) based on the PSD?

You can add the PSD arguments to the makeCloud function. Please refer to the documentation [1].

>> And how can I fix the side walls to obtain the oedometric condition (just vertical force)?

You can activate and deactivate walls, please refer to the documentation [2].

>>Now I am using [1] code.

But you want to use FlowEngine? I do not see how your referenced script (save_then_reload.py) has anything to do with your proposed simulation. By the way, saving and reloading does not work "out of the box" with FlowEngine.

>> I should mention that I tried the oedometric sample on the yade website but it is not proper for me due to its gravity composition. Also, I tried to mix some PSD functions with this code but I could not get any result.

It seems the main question here has to do with your "P.S." But as is, you have not provided enough information for us to help you. For example what does "could not get any result" mean? Which script are you referring to? The odeometer.py does not have gravity composition.

Cheers,

Robert

[1]https://yade-dem.org/doc/yade.pack.html#yade._packSpheres.SpherePack.makeCloud
[2]https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.TriaxialStressController.wall_back_activated
[3]https://www.yade-dem.org/wiki/Howtoask

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

Dear Robert and Bruno;

Thank you very much for your kind reply and valuable information.

I am so sorry for asking several questions here.

Fortunately, I could add the PSD arguments to the makeCloud function and it works.[1]

Regarding the FlowEngine, as I am fresh in yade, I do not know what function is proper for compression specially in oedometer test.

For the oedometer test, I used 03-oedometric-test.py [2] which has gravity composition.

Would you please let me know what your recommendation is for the oedometer test?

[1] https://gitlab.com/yade-dev/trunk/-/blob/master/examples/test/psd.py
[2] https://gitlab.com/yade-dev/trunk/blob/master/doc/sphinx/tutorial/03-oedometric-test.py

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

Dear Dr. Chareyre;

Thank you very much for the useful link.

It would be very useful for the next step of my project.

Unfortunately, when I executed the code [1], I could not see any changes in the volume of packing.

Would you please tell me how I can import the vertical load in this code?

[1] https://gitlab.com/yade-dev/trunk/-/blob/master/examples/FluidCouplingPFV/oedometer.py

Revision history for this message
Robert Caulk (rcaulk) said :
#6

Hello,

We are happy to help you, but we cannot do so if you do not take a moment to understand how to ask a question. ****Please read [1] and then reformulate your question with the necessary information. **** <-- very important.

>>Unfortunately, when I executed the code [1], I could not see any changes in the volume of packing.

What does "see" mean? Literally looking with your eyes in the GUI? Or did you use some yade command for checking volume in a tim-series? I suspect the former. Again, we need you to communicate clearly and effectively.

>>Would you please tell me how I can import the vertical load in this code?

What does "import vertical load" mean? You want to load the specimen vertically? The code already has a vertical loading, why is that present loading not sufficient? It would help us to understand what you are after if you told us the commands you have already tried and failed using. --> Again, please read [1] <--

[1]https://www.yade-dem.org/wiki/Howtoask

Revision history for this message
Soheil Safari (soheilsafari) said :
#7

Dear Robert;

Thank you very much for your valuable information.

I am sorry for my vague questions.

I am afraid to tell you that by just looking in GUI. I do not know how to check the volume in a time-series.

I just executed the code [1] without any changes.

Yes, I want to load the specimen vertically. Unfortunately, I could not see any changes in the volume after a long time watching the GUI by running this code.

I want to decrease the porosity by compaction as much as possible.

Thank you once again for your kind consideration.

Cheers,
Soheil

[1] https://gitlab.com/yade-dev/trunk/-/blob/master/examples/FluidCouplingPFV/oedometer.py

Revision history for this message
Robert Caulk (rcaulk) said :
#8

>>I am afraid to tell you that by just looking in GUI. I do not know how to check the volume in a time-series.

Ok. The script you reference [1] automatically plots the strain in a time-series...so why is that not sufficient? Why do you believe a changing strain != volume change?

[1]https://gitlab.com/yade-dev/trunk/-/blob/master/examples/FluidCouplingPFV/oedometer.py

Revision history for this message
Soheil Safari (soheilsafari) said :
#9

Dear Robert;

You are right. Sorry, I got distracted. It automatically plots the strain in a time-series.

But I can not see any volume changes and particles structure changes in GUI.

For example, in [2] there is a moving plane that pushes the sample down, changing the volume and structure is so clear. I am looking for adding something like this but without gravity deposition in the previous code [1].

[2] https://gitlab.com/yade-dev/trunk/blob/master/doc/sphinx/tutorial/03-oedometric-test.py

Revision history for this message
Best Robert Caulk (rcaulk) said :
#10

Hello,

>> I am looking for adding something like this but without gravity deposition in the previous code [1].

Ok, so have you tried removing gravity?

Cheers,

Robert

Revision history for this message
Soheil Safari (soheilsafari) said :
#11

Thanks Robert Caulk, that solved my question.