Hi,

I am creating a particle made out of atoms which occupy a spherical region in space. Obviously, after creating the atoms, the volume of the sphere changes initially. After the system has reached an equilibrium state, is there a way to calculate the volume occupied by this particle?

Thanks in advance for any help

Hi,

I am creating a particle made out of atoms which occupy a spherical region

in space. Obviously, after creating the atoms, the volume of the sphere

changes initially. After the system has reached an equilibrium state, is

there a way to calculate the volume occupied by this particle?

something like this perhaps?

Thanks for your response. That looks quite promising. However, does that calculate the volume occupied by a whole group or does it calculate per atom volumes, each volume corresponding to the region in which that atom has an effect on?

Thanks for your response. That looks quite promising. However, does that

calculate the volume occupied by a whole group or does it calculate per atom

volumes, each volume corresponding to the region in which that atom has an

effect on?

i never used it myself. your question reminded me of it and it is a

fairly new feature.

since it is labeled as a per-atom compute, you may need to combine it with this:

LAMMPS Molecular Dynamics Simulator to sum over all atoms.

should be easy enough to set up some test examples...

axel.

I think I probably need the union over all atoms rather than the sum. Is that easy to do?

I think I probably need the union over all atoms rather than the sum. Is

that easy to do?

"easy" is a very vague term. what is easy for one person, may be

impossible for another. why don't you just try?

Just a warning here. One has to be careful with this technique because

the voronoi volume of boundary atoms could be quite large as per

definition, the voronoi volume is the set of points closest to a give

point in space. If your spherical particle is compact, what you can do

is to plot the per atom voronoi volume distribution and then cutoff

the tail at large volumes. With the rest you can calculate a per atom

average from which the final volume can be easily computed.

Carlos

PS: If you sum the voronoi volume of all the atoms you'll get the

total volume of your simulation box, not the one of your particle

The atoms of the particle form group of their own. So if I compute the voronoi volume using that group-ID shouldnâ€™t it only calculate the volumes occupied by those atoms?

Also, as I understand, the voronoi volume of one particle might overlap with those of its neighbors. In that case the sum of all the volumes will probably be much higher than the actual one. Is this right or is there something wrong with my logic?

I never used the code but the Voronoi volume of one particle is

UNIQUE. No overlap whatsoever with the neighbors. The Voronoi

construction is nothing but a tessellation of the space where each

node (atom in your case) is assigned a volume that corresponds to the

set of points in space that are closest to the given node.

Your logic is wrong. The space is divided into non-overlapping cells

that cover the whole space domain.

Carlos

The point of a Voronoi tesselation is that the per-atom volumes

don't overlap. The sum is the union.

Steve

The atoms of the particle form group of their own. So if I compute the

voronoi volume using that group-ID shouldn't it only calculate the volumes

occupied by those atoms?

It will still compute the voronoi volumes with respect to -all_a toms

in the sample, but it will only initialize the atom vector for the

group atoms. All other atoms will be assigned a volume of 0.

Also, as I understand, the voronoi volume of one particle might overlap with

those of its neighbors. In that case the sum of all the volumes will

Absolutely not. The sum of voronoi volumes should be the volume of the

simulation cell (for well behaved dense systems such as bulk solids or

liquids)

I have used this to compute the total volume VCr of a chromium

precipitate (group Cr).

compute 1 Cr voronoi/atom

compute 2 Cr reduce sum c_1[1]

variable VCr equal c_2

This works because my particle is embedded in a matrix. If your

particle floats in space the voronoi tesselation of the boundary atoms

is not meaningful.

Daniel

And I assume it will only calculate the volume of the group given by the Group-ID right?

And I assume it will only calculate the volume of the group given by the

Group-ID right?

Don't 'assume' read the replies you got and if that still does not

help you, read the source code!

From the doc page:

Define a computation that calculates the Voronoi tesselation of the

atoms in the simulation box. The tesselation is calculated using all

atoms in the simulatoin, but non-zero values are only stored for atoms

in the group.

Steve

Great. Thank you all very much for your help