# compute voronoi/atom and temp

Dear All,
I am using LAMMPS (14 Feb 2014) and have some questions about compute voronoi/atom and temp:
1.According to manual, compute voronoi/atom has a new keyword ‘occupation’.Manual tells us: In this mode the compute returns a per-atom array with 2 columns.However,in regular dynamic tessellation mode, this compute also calculates a per-atom array with 2 columns. The first column is the Voronoi volume, the second is the neighbor count.If we use ‘occupation’ keyword, will we get 4 columns or only 2 columns generated by ‘occupation’ keyword?

2.For ‘occupation’ keyword,manual says:In this mode the compute returns a per-atom array with 2 columns.
The first column is the number of atoms currently in the Voronoi volume defined by this atom at the time of
the first invocation of the compute (note that the atom may have moved significantly).
Question:So-called ‘this atom’ may not lie in the Voronoi volume defined by itself, right?

3.For ‘occupation’ keyword,manual also says: The second column contains the total number of atoms sharing the Voronoi cell of the stored tessellation at the location of current atom. Numbers in column one can be any positive integer including zero, while column two values will always be greater than zero. Column one data can be used to locate vacancies (the coordinates are given by the atom coordinates at the time step when the compute was first invoked), while column two data can be used to identify interstitial atoms.
Question:Which atom is the so-called ‘the current atom’?For column one data, is 0 relative to one vacancy? How can column two data be used to identify interstitial atoms? In addition,I am so confused about the differences between ’ the number of atoms currently in the Voronoi volume defined by this atom at the time of
the first invocation of the compute’ and ’ the total number of atoms sharing the Voronoi cell of the stored tessellation at the location of current atom’.

4.In some papers,they display the temperature distribution in the whole samples. As we all know, lammps can output the global temperature.I wonder whether lammps can output the temperature distribution?

Best regards,

Daniel can respond to the 1st 3 Qs (CCd).

For 4, you can use fix ave/spatial to compute a temperature
distribution and output it.

Steve

I have set some commands as follow:
compute 4 all ke/atom
variable T atom c_416000/(1.51.3807)
#I have 4000 atoms in the system,Boltzmann constant K=1.3807e-23J/K
fix 3 all ave/spatial 200 1 200 z lower 0.02 v_T units reduced file bin.profile1
Are they what you mean?

Best regards,

yes, you can apply a per-atom formula
(e.g for temperature) to the atoms in
each bin.

Steve

Hello glorious marshall 荣 (is that what 简武荣 means?),

Re 1.: The docs state:

If the occupation keyword is specified the tessellation is only
performed for the first invocation of the compute and then stored. For
all following invocations of the compute the number of atoms in each
Voronoi cell in the stored tessellation is counted. In this mode the
compute returns a per-atom array with 2 columns. The first column is
the number of atoms currently in the Voronoi volume defined by this
atom at the time of the first invocation of the compute (note that the
atom may have moved significantly). The second column contains the
total number of atoms sharing the Voronoi cell of the stored
tessellation at the location of the current atom. Numbers in column
one can be any positive integer including zero, while column two
values will always be greater than zero. Column one data can be used
to locate vacancies (the coordinates are given by the atom coordinates
at the time step when the compute was first invoked), while column two
data can be used to identify interstitial atoms.

Please let me know if this needs clarification. The compute will build
the tesselation only _once_ (at the first invocation) and in
successive steps will only check the positions of the atoms against
the cells. If you also need voronoi volumes of the current
configuration you will have to add a second voronoi compute!

Re 2.: Yes, correct.

Re 3.: The current atom is the atom to which the compute value is
assigned, so the Voronoi cell we are talking about may be one that
belonged to a different atom at t=0. Sorry, I realize that this is not
totally trivial.
* At t=0 every atom n defines a voronoi cell V(n)
* The set of voronoi cells V(n) is stored and never updated with
changing atom positions
* A cell V(n) can contain an arbitrary number (0-N) of atoms at t>0
* Every atom will be contained in a voronoi cell (unless your
tessellation does not cover the entire simulation volume, which it
always will)

So we can ask two questions:
* How many atoms are in cel V(n)
* How many atoms are in the cell that atom n is currently in (this
will be at least 1, the atom n, but may be some other atoms have moved
into this cell as well)

1 Like