Best way to insert particles

Submitted by pfalkingham on Tue, 04/30/2013 - 15:56

I'm trying to get a nice bed of particles for a simulation, but I'm having difficulties getting the particles in there correctly.

As can be seen in the attached image, plenty of particles are inserted, but they are piling up in the middle, and not really filling the volume (this image is some 50000 timesteps after insertion is unfixed, nothing else happens).

I'm trying to get a rectangular volume filled, with a reasonably flat surface.

I'm currently using insert/pack:

region tray block 0.04 0.16 0.015 0.2 -0.055 0.02 units box
group nve_group region simbox

#distributions for insertion
fix pts1 all particletemplate/sphere 115 atom_type 1 density constant 1600 radius constant 0.0005
fix pdd1 all particledistribution/discrete 5331 1 pts1 1.0

#particle insertion
fix ins nve_group insert/pack seed 546 distributiontemplate pdd1 maxattempt 500 &
insert_every 1 overlapcheck yes all_in yes region tray volumefraction_region 0.9 ntry_mc 10000

I'm only running this for a few steps, because computation time starts to increase after that. Is this the best way to fill a volume with particles, just running it for longer?

The documentation lists multiple ways of inserting particles (fix insert/stream, fix insert/rate/region, fix pour, fix pour/dev/packing), but they don't seem to be describing better methods. Am I best just over-inserting then removing particles above the max desired height?

AttachmentSize
Image icon Particle_insertion.png540.22 KB

jtvanlew | Tue, 04/30/2013 - 21:24

This is a problem in the real world too when you want to have a flat surface on the top of your particle bed. When we've done experiments in the lab, you can pour pebbles into a volume but they always will end up with a small stacked pile. So often you can vibrate or shake the bed to make them settle to a flatter surface. Or you can physically rake them to spread the pebbles evenly.

In simulations, when I want to recreate this, I'll often 1) calculate how many pebbles should be in the size volume I want (assuming some good packing fraction like 61%), then 2) insert a top wall above this height (to make sure it's above any pebble stack height) and 3) do the moving mesh command to bring the height of the top wall down to my desired z-height.

Your x and y dimensions are much greater than mine (i'm usually doing a tall stack instead of a wide flat one like you seem to have), so this may not work as well. The pebbles getting pressed by the roof may not relocate to all the areas of your volume. But you could give it a shot.

You could also bring down this command: volumefraction_region 0.9 to something more reasonable. If you've got mono-size pebbles you'll never get much higher than 0.64 for a random packing.

jon

ckloss's picture

ckloss | Thu, 05/02/2013 - 13:30

Hi pfalkingham,

just insert more particles than necesary and cut the remainder using delete_atoms

Cheers
Christoph