[lammps-users] Decoupling atoms

Dear all,

I'm trying to add some 'dummy' or 'ghost' atoms into my model system. To
avoid wasting time,
I would like to make several things for sure before I start. I tried my best
to read the relevant
texts in the manual. But lammps is so comprehensive that I cannot make sure
if I'm doing in
the recommended way. I list what I'll do here, please point out if something
there is inappropriate.

To decouple the dummy atoms from the rest of the system:
a. do not assign any pair-wise interaction between the dummy atoms and the
rest.
b. set velocities of all dummy atoms to zero.
c. subtract 3*Nd degree of freedom from the system by 'compute_modify' for
some computes, where
Nd is the number of dummy atoms.
d. thermostat the system excluding the dummy atoms. (fix nve/nvt/npt..)

My questions are:

does this procedure ensure the dummy atoms have no ANY effect to the rest of
the system, including
the thermodynamics and dynamics and all computes and fixes?

Suppose I don't do step b, let dummy atoms have velocities, are the
properties (like T, KE, pressure...)
output by 'thermo_style' command (not the compute command) correct? Or I
should correct them
by myself? Is the modification of DOF done by "compute_modify" also valid
for these thermo output or
they are determined only by the atoms coupled to the integrator?

Finally. can I use zero masses for these dummy atoms?

I know I could get answer for these questions by trial and error. But I
think the users community should
be a better place to get helped.

Btw, relating this post with my previous one about dummy atoms, you may see
here many uncertainties
left to the users. Users have to 'put' new stuffs into the system and take
care by themselves. But if lammps
allows us simply 'get' more information from the available intermediate
variables, like computing the positions
of dummy atoms in my case, we could save some work. I'm studying the source
now. I think a self-made fix
should solve everything and good for new analysis. (As suggested by Axel. )

Thank you in advance if you can give some answer!

link

See answers below.

Steve

Dear all,

I'm trying to add some 'dummy' or 'ghost' atoms into my model system. To
avoid wasting time,
I would like to make several things for sure before I start. I tried my best
to read the relevant
texts in the manual. But lammps is so comprehensive that I cannot make sure
if I'm doing in
the recommended way. I list what I'll do here, please point out if something
there is inappropriate.

To decouple the dummy atoms from the rest of the system:
a. do not assign any pair-wise interaction between the dummy atoms and the
rest.
b. set velocities of all dummy atoms to zero.
c. subtract 3*Nd degree of freedom from the system by 'compute_modify' for
some computes, where
Nd is the number of dummy atoms.
d. thermostat the system excluding the dummy atoms. (fix nve/nvt/npt..)

fix nve, etc are not thermostats, they are integrators. If you don't include
the dummy atoms in the group used with fix nve, then they won't
be time integrated, i.e. their coords will not be updated. Then it won't
matter what their velocities are.

My questions are:

does this procedure ensure the dummy atoms have no ANY effect to the rest of
the system, including
the thermodynamics and dynamics and all computes and fixes?

Thermodynamics does output based on "computes" it defines (see the
doc page for thermo-style). By default those computes include
all atoms as their group. But you can define your own computes
on any group you want and assign those to thermo output. See
the thermo_modify command.

Suppose I don't do step b, let dummy atoms have velocities, are the
properties (like T, KE, pressure...)
output by 'thermo_style' command (not the compute command) correct? Or I
should correct them
by myself? Is the modification of DOF done by "compute_modify" also valid
for these thermo output or
they are determined only by the atoms coupled to the integrator?

See previous answer.

Finally. can I use zero masses for these dummy atoms?
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

I think mass must be > 0. But it won't affect anything.