Hello Community
I have a question related to insert/pack command in Liggghts. I want to generate a dense packing of polydispersed particles (density 2650kg/m3) in certain region of my domain (region bc). I find is that the mass of particle injected is much higher (when "insert_every 1000" is used) and fill whole geometry intead of desired region (bc). On the other hand, when "insert_every once" is used the expected mass in the region is obtained without any problem but some particles are also thrown out of the region bc. To give you an idea, here is the list of command for generating dense pack:
case 1: when particles are inserted in a defined region @every 1000 time steps till the desired solid fraction in the region is achieved.
region bc block 0.0 0.3 0.0 0.1 0.0 0.3 units box
fix ins all insert/pack seed 91428863 distributiontemplate pdd1 vel constant 0. 0. 0. insert_every 1000 overlapcheck no all_in yes volumefraction_region 0.5 region bc
case 2: when particles are inserted in a defined region once till the desired solid fraction in the region is achieved.
region bc block 0.0 0.3 0.0 0.1 0.0 0.3 units box
fix ins all insert/pack seed 91428863 distributiontemplate pdd1 vel constant 0. 0. 0. insert_every once overlapcheck no all_in yes volumefraction_region 0.5 region bc
In both the cases, solid fraction of 0.5 in the region bc, should have resulted 11.925kg particles (=0.5*0.3*0.1*0.3*2650). What I actually get is very different than what I want. for case 1, a total of 41.67 kg particles and injected (till 30000 time steps) and the insertion stops and particle settled. the ouput form log file is:
INFO: Particle insertion ins: inserted 352 particle templates (mass 1.106831e-01) at step 30001
- a total of 132019 particle templates (mass 4.166810e+01) inserted so far.
31000 130360 0.77722198 0.3359016 0.059024 ...
for case 2, a total of 11.92 kg of particles are injected at once. The output says:
INFO: Particle insertion ins: inserted 37794 particle templates (mass 1.192620e+01) at step 1
- a total of 37794 particle templates (mass 1.192620e+01) inserted so far.
1 37794 4.9705751 0 0.059024 ...
In my understanding, both cases should should have resulted the same mass but only difference is that "insert_every 1000" should inject particles at specified times till the desired mass is achieved. I wonder, why keyword "insert_every" results that kind of strange behavour?
Best Regards
Atul
Daniel Queteschiner | Thu, 10/28/2021 - 11:33
Seems to work as expected
In case 1 you are repeatedly checking if the volume fraction in the insertion region is 0.5. If this is not the case you insert more particles. If particles are leaving this region during the simulation (which I can only assume since you are not showing the complete script) then of course in total you will insert more particles than the amount of particles required to fill the region once with 0.5 volume fraction ...
>>some particles are also thrown out of the region bc
You are using
overlapcheck no
which potentially (and in case of volume fraction 0.5 very likely) inserts particles with an initial overlap, thus introducing energy into the system. The larger the initial overlap the higher the acceleration of the particles ...atul2018 | Sat, 11/06/2021 - 16:39
more particles even when particles are not allowed to leave
Thanks for your answer!
even if the particles are not allowed to leave the region (by providing the walls in left and right side of the region) in that case also, more particles are inserted when insert_every command is used. On the other hand "insert_every once" inserts the desired number of particles. I dont get why this difference?
Best Regards
Atul