LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Mailing List Archives
[lammps-users] cna calculation on dynamic group defined by variable atom using cna results?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lammps-users] cna calculation on dynamic group defined by variable atom using cna results?

From: Christophe Ortiz <christophe.ortiz@...4080...>
Date: Fri, 23 Jun 2017 11:41:08 +0000

Dear LAMMPS users,

As I commented in previous posts, I am analysing the defect formation during collision cascades in bcc Fe with the compute cna/atom.

If my simulation box is large, most cna calculations will be done for atoms that have not been displaced, eg those that are at their lattice site, far from the cascade zone. Since the cna calculation is costly, I would like to restrict it only to atoms that have a structure different than bcc (3), ie those that are being displaced.

To do this, I am trying to define a dynamic group that only includes atoms with cna != 3 such that cna calculations will only be performed on this dynamic group, which contains much less atoms. However, this implies some redundant problem that I am not able to solve. Here is what I have done and where I am stuck.

compute  cnatom  all  cna/atom  3.45
compute  avecna  all  reduce  ave  c_cnatom

thermo_style custom step temp c_avecna
run 0

variable  cnatom  atom  "c_cnatom != 3"
group groupcna dynamic all var cnatom every 1

This way, I am able to define a dynamic group containing particles with cna !=3. However, to do this, I must use a compute all cna/atom. This means that each time the dynamic group is updated, the calculation of cna will be performed for all atoms, which is costly.

The solution to this would be to do compute dynamic_group cna/atom. However, I cannot use compute dynamic_group cna/atom at the beginning since the dynamic group is defined after with variable  cnatom  atom  "c_cnatom != 3".

Like a dog chasing its tail...

Do you think there is a solution to this?

With best regards,