How to induce stress-control compression test.

Submitted by tshan on Wed, 11/10/2010 - 10:42

Hi all,

I have no idea how liggghts generates stress-control compression tests, although I know that liggghts has a powerful engine to conduct strain-control ones. However, it is necessary to do stress-control if want to conduct drained triaxial test because I need to maintain the confined stress constant.

Could someone told me how to do stress-control compression or give me some suggestions?

Thanks!

Best,
Tong

ckloss's picture

ckloss | Wed, 11/10/2010 - 10:59

>>I have no idea how liggghts generates stress-control compression tests
I am not sure if someone has done this before (maybe George Marketos has done thsi already?) - so you would have to go into the code for that

But I can give you some hints: Fix mesh/gran/stressanalysis outputs the total force on the mesh. What you would need is an adapted moving mesh that reads the force on the mesh and controlls the motion according to that

Christoph

marketos | Mon, 11/15/2010 - 16:56

Hi,

This is certainly something we would like to be able to do but unfortunately have not managed to find the time to do yet.
As Christoph said you would need to write some more code. The user would specify some target force (or stress) that could either be constant or vary with time (eg a constant stress rate). The code would then check what the difference between the force on the mesh and the user-required force value is and accordingly set the wall velocity to a positive or negative value. This would be an initial attempt to a stress-controlled wall but of course you could try to use more complicated controllers if required.

Please let us know if you decide to implement this.

Cheers,

George

tshan | Wed, 11/17/2010 - 14:36

Hi, George

I want to implement this but I am beginner with liggghts and also coding (just have attended 2 courses in C++ coding), so it takes time.

Actually, I am waiting for CFD-DEM code and try to do something about it, for example, the debris flow. There is no doubt that I will do some coding on such kind of multiphysics in the future.

Do you think the stress-control function is suitable for the beginner like me?

Best,
Tong

marketos | Wed, 11/17/2010 - 15:51

Hi Tong,
I guess you need to start from somewhere... You first need to understand which part of the code actually does what you want to change (eg here wall movement) and then find a way to change the relevant parameter (eg wall velocity) according to the way you want it to.
You could also ask Christoph if he is running any courses on LIGGGHTS again soon.
George

alexander.polson | Tue, 02/15/2011 - 10:58

Hi Tong

Did you find a solution? Now I am also looking for this.

Assuming that the applied pressure you need acts in the same direction as gravity, then a trick I use in PFC3D (commercial DEM program) is to slave the specified wall's movement to a special "master" sphere with force feed-back in the following steps:
0) I create a sphere somewhere in the simulation space away from the main model, using a suitable radius
1) I choose the density of the sphere so that its weight is the required force

Then, at each iteration:
2) I set the wall's speed to be the same as that of the sphere
3) I measure the force acting on the wall, and apply it to the master sphere

This gives me an easy way to do this in PFC, and it works very well.

My C++ is not good, so I wonder (if you did not find a solution) if anyone knows how to do the steps (2)-(3) above in LIGGGHTS?

Thank you

Alexander

tshan | Thu, 02/17/2011 - 07:22

Hi Alexander!

Thanks for your information!

I tried to understand what you mean and I was thinking to use such kind of method to induce stress-control compression also.

In LIGGGHTS, I think it cannot bond the stress-inducing particle with one of the walls, and it is because the wall's position is controlled by the command, i.e., it can only be displacement-controlled.

If you really want to this currently, from my perspective, it may be possible to set a "particle wall", which the "wall" is actually particles:
1)use lattice and create atom command to creat a dense particle wall (make sure it is dense enough, or the inner particles will explode);
2)bond them together (fix rigid?) and then induce gravity to the particle wall group;
3)let the particle wall to compress the inner particles.

However, you may see there is limitation in this method, if you want to induce triaxial test, the "particle walls" will interact with each other, so how do you disable their interaction?

So, the most convenient way is to enable such functionality in this LIGGGHTS code.

Best,
Tong

ckloss's picture

ckloss | Fri, 02/18/2011 - 17:22

Hi Tong and Alex,

>>However, you may see there is limitation in this method, if you want to induce triaxial test,
>>the "particle walls" will interact with each other, so how do you disable their interaction?
You can do that via "neigh_modify exclude"

As for "real" stress controlled walls, that would surely be possible, but somebody would have to code it :-)
You can currently keep track of the total force on a mesh, see the doc for fix mesh/gran. This would have to be fed to the fix move/mesh/gran somehow. Have a look at fix_move_tri.cpp, I think it is not too difficult to read.

Christoph

alexander.polson | Tue, 02/22/2011 - 08:30

Hi Tong and Christoph

Thank you for your suggestions. I think your suggestion can work, Tong, and will try that. I am not sure how I will be able to constrain such a particle wall, so that it does not rotate/tilt. I want it to present a flat horizontal wall that moves downward under gravity without "falling over".

If I find a way, I will let you know.

Alex

tshan | Mon, 02/28/2011 - 06:34

Hi, Alex!

I think fix lineforce command may help you, used to constrain atoms to move in a line.

Best,
Tong

ckloss's picture

ckloss | Wed, 11/17/2010 - 15:52

>>Do you think the stress-control function is suitable for the beginner like me?
Well, it would be better to do one or two simpler tasks first, but believe me, the code is relatively easy to read

>>Actually, I am waiting for CFD-DEM code
We already released a first version, see the announcements

Cheers,
Christoph