Positioning of wall particles

Submitted by Selim Duneskater on Mon, 11/24/2014 - 14:38

Hi all,

I would like to know how particles are placed on a wall (primitive and/or mesh). Are they put on a regular network or randomly?

Thank you guys,

Selim Duneskater | Mon, 12/01/2014 - 21:30

Hi all,

My question might be unclear, I'll put it differently. Does LIGGGHTS offer the possibility to build a granular wall (static or moving) which particles are placed on a regular (triangular, hexagonal, ...) lattice?

Thank you in advance,

richti83's picture

richti83 | Tue, 12/02/2014 - 08:26

Do you want a wall made of particles ? Then use:
lattice sc $D
create atoms region wall
set region wall group wall
fix freezed wall freeze (forces will be zerored before time integration for atoms in group wall)

When you have a wall (primitive or STL-Geometry) and want particles to be generated in front of this wall, create a region in front of your wall with extends = wallx,wally,ParticleDiameter and create atoms there, but be carefull that there is no initial overlap between atoms and wall, otherwise neighbor bin search might crash ..

Hope that helps,
Christian

I'm not an associate of DCS GmbH and not a core developer of LIGGGHTS®
ResearchGate | Contact

Selim Duneskater | Fri, 12/05/2014 - 12:29

Hi Christian,

Thank you very much indeed, it helps a lot but "there can only be a single freeze fix defined" while I may need multiple walls. In my opinion, including meshes is the easiest way to build fixed or moving walls. May I ask another question: where does LIGGGHTS place the particles on a mesh wall, in the centers of the faces or their vertices?

Thank you in advance,

richti83's picture

richti83 | Fri, 12/05/2014 - 17:28

I don't realy understand your intend. Why do you not use fix wall .. mesh n_meshes 4 meshes cad1 cad2 cad3 cad4 to make solid walls ?
To solve the "there can only be a single fix freeze defined" just put all particles which should represent a wall in the same group, no matter to which wall they belong to. You can use group by type instead of group by region.

There is no build-in function to generate particles on a wall in a regular order (insert stream inserts randomly in the volume spaned by mesh and extrusion length)
BUT I've got a good idea to do this:
1. open your stl mesh in Paraview, than File->save data chose csv format -> you should get a file with the triangle coordinates. (when you are interested in the center of a triangle use the integrate filter, this will generate one point in the mass-center of each triangle, and save that output to file).
2. open the stl file in OpenOffice and make the following format (column A..G) atom-ID atom-type diameter density x y z, save as data.csv
3. open data.csv in a texteditor and add the following header:
--- snip---
LAMMPS data file from restart file: timestep = 1, procs = 1

12 atoms

2 atom types

-5.0000000000000000e-01 5.0000000000000000e-01 xlo xhi
-5.0000000000000000e-01 5.0000000000000000e-01 ylo yhi
-1.0000000000000000e+00 1.0000000000000000e+00 zlo zhi

Atoms
-------snip------
after the line "Atoms" the "atom-ID atom-type diameter density x y z" values of the initial csv file needs to follow, seperated by a whitespace.
(adapt xlo/xhi/ylo/yhi/zlo/zhi and '12 atoms' to your problem)
Save as DATA.pour
4. in you simulation: don't create any atoms, instead use read_data DATA.pour add before the first run command.

Let's say the atom type in your DATA.pour is two:

group fixed type 2
fix wall fixed freeze

this will freeze the atoms you read via read_data
now you can insert your "free particles".

Note: I did not test this procedure, maybe there are some syntax errors or the pour file format is not correct, test with 3 particles in a simple testcase first.
The Idea is to use the coordinates of the stl file as position data for fixed particles.

What is your intend to make walls like that ? The mesh handling in LIGGGHTS is realy good and for "nice" meshes very fast (runs in parallel !)

Best,
Christian.

I'm not an associate of DCS GmbH and not a core developer of LIGGGHTS®
ResearchGate | Contact

Selim Duneskater | Sat, 12/06/2014 - 09:09

Q: What is your intend to make walls like that ? The mesh handling in LIGGGHTS is realy good and for "nice" meshes very fast (runs in parallel !)

Hi Christian,

We do agree that LIGGGHTS has an excellent mesh handling. However, I want to have control over walls roughness/rugosity, not only the size of wall particles matters but also the spacing between them.

Best,
Selim

richti83's picture

richti83 | Sat, 12/06/2014 - 17:44

Hi Selim,

OK, I understand. I spent this afternoon creating an example for you.
You did not told us what kind of geometry you want to simulate, so I've chosen a ball mill because it is mathematicaly easy to discribe:
http://www.richtisoft.de/transfer/phase1_GEO.png

I made this script to generate the ball positions:
http://www.richtisoft.de/transfer/make_wall.py
And this sample input file where you can see how the data is read and how I fixed wall-particles and created the free particle:
http://www.richtisoft.de/transfer/in.lmp

Here is a nice animation of the result:
https://www.youtube.com/watch?v=Mdlz5WlGj5g

Feel free to adapt to own needs,
Best,
Christian.

I'm not an associate of DCS GmbH and not a core developer of LIGGGHTS®
ResearchGate | Contact

naren | Mon, 12/08/2014 - 09:42

Thank you Christian. It's very useful.

Naren

Selim Duneskater | Sun, 12/07/2014 - 11:49

Hi Christian,

Your solution works out of the box, it's amazing! You make my day Christian, thank you very much indeed.
By now, I just have to adopt this to my geometry which is rather simple.

Thank you guy,
Selim

serdarhd | Tue, 08/18/2020 - 17:42

Hi Christian,

I exactly need the rotating granular wall you created in youtube animation. However, I cannot access to the input script via above link. Can you upload the input script again or send it hicdurmazserdar@gmail.com ?

Thanks in advance
Serdar