question on dynamic group

Hello. I am trying to simulate a problem in which a cluster of atoms (there is no relative velocity between any two atoms) keeps moving toward a region. And all the atoms that have entered into this region are thermostated using ‘fix nvt’ command. So I need two groups that change their atom members dynamically. One includes atoms outside the specific region, and the other includes all the atoms inside the region. The former group should bear the ‘fix move’ command, and the latter one should bear the ‘fix nvt’ command. But I have found that ‘fix move’ does not work with dynamics group (I am using LAMMPS 15May15). So I am trying to clumsily emulate this functionality by repeatedly deleting existing groups and redefining them. The outcome is strange, as the temperature inside the thermostated region keeps droping to 0, and the there are lots of atoms lost. An excerpt of the script is shown below:

variable a loop 60
label loop
uncompute 1
group solidLiquid delete
group others delete
group thermostat delete
group mcanonical delete
group solidLiquid region solidLiquid
group others subtract liquid solidLiquid
group 1 region thermostat
group thermostat subtract 1 solidLiquid
group 1 delete
group mcanonical subtract others thermostat
compute 1 thermostat temp
thermo_modify temp 1
fix 1 mcanonical nve
fix 2 thermostat nvt temp 100 100 5
fix_modify 2 temp 1
fix 3 solidLiquid move linear 0.25 0.0 0.0 units box
run 10000
unfix 1
unfix 2
unfix 3
next a
jump SELF loop

I am wondering whether what I did is theoretically feasible inside the LAMMPS framework and the strange outcome attributes only to my own unknown mistake(s)?

Chao-jie
Sept 13, 2015

Hello. I am trying to simulate a problem in which a cluster of atoms
(there is no relative velocity between any two atoms) keeps moving toward a
region. And all the atoms that have entered into this region are
thermostated using 'fix nvt' command. So I need two groups that change
their atom members dynamically. One includes atoms outside the specific
region, and the other includes all the atoms inside the region. The former
group should bear the 'fix move' command, and the latter one should bear
the 'fix nvt' command. But I have found that 'fix move' does not work with
dynamics group (I am using LAMMPS 15May15). So I am trying to clumsily
emulate this functionality by repeatedly deleting existing groups and
redefining them. The outcome is strange, as the temperature inside the
thermostated region keeps droping to 0, and the there are lots of atoms
lost. An excerpt of the script is shown below:

​from my understanding of your description, i don't understand the need to
thermostat a changing group of atoms.
after initial equilibration, i would not apply a thermostat at all to the
impact region and the cluster, but only the environment. if the system is
in equilibrium, there should be "natural" thermostatting through contact
and the approaching cluster will not have any thermal exchange until it
actually interacts with other particles. also, you probably would be better
off using just fix nve on the cluster after assigning an initial velocity
that gets it moving in the right direction.

in short, it looks to me as if your model is more complex than it needs to
be, and dynamic groups should not be needed.

axel. ​

Much thanks for your advice, Alex.

I apologize for I did not describe my model accurately. The model I want to build is similar to the one described in Formation, Stability, and Breakup of Nanojets (M. Moseler & U. Landman, Science 2000). In my model, a nanoscale nozzle is built with frozen gold atoms, and liquid argon atoms are filled in the nozzle. A nanojet can form with a solid panel moving and squeezing the argon atoms out of the nozzle. But now I am trying to get rid of the panel and freeze the argon atoms at the back of the nozzle, and make them keep moving forward. When the frozen argon atoms are close to the head of the nozzle then they melt to be liquid of specific temperature (using NVT thermostat or Langevin thermostat). This method is also adopted by the article I mentioned above. I want to know whether I can implement it using LAMMPS?

Thanks in advance.

Chao-jie

I suggest you reread Axel’s comment.

Do realistic systems have demons that tell atoms when and where to heat up?

Thanks for your suggestion, Eric. I think I understand Axel’s comment, but in my model I don’t care much about the purity inside the nozzle, my aim is just the resulting liquid jet. And I think the question is not about the model (let alone a very similar model have been used in a Science article), but whether it can be implemented using LAMMPS.

I am very sorry for misspelling Axel’s name in my last E-mail.

From your original email, are you saying all you want to do if turn off fix move for
atoms that have moved into a certain region? Everything else you want to
do works fine? I don’t think it would be a problem to change fix move to use
a dynamic group in that manner.

Whether that leads to a good model or not, is a different Q.

Steve

Thanks for your reply, Steve.

Yes, it is just what I want to do. I found about a week ago that the “fix move” does not allow dynamics group (an ERROR popped up warning I that can’t do it). So even though it seems I can do what I want by repeatedly deleting existing groups and redefining them ( looping a piece of the script), I was in doubt that the LAMMPS code may not work with this unusual operation.

After I read your reply, I have built a much small model (I have to admit that I should have did it before) for test, and this time it seems every thing work fine. And this solve my problem.

Much thanks again for your help.

Chao-jie Mo