Spring/self and wall movement

Dear All,

As stated in the Lammps manual using a Spring/self fix tethers the atoms to their initial location. If one considers simulating wall atoms with this fix, is it possible to perform simulations under NPT ensemble (with large displacement) or non-equilibrium studies when the wall is sheared? If not, what is the best way to modify this spring? Is there any other alternative way for keeping each wall atom mobile?

Thank you,
Padideh

Dear All,

As stated in the Lammps manual using a Spring/self fix tethers the
atoms to their initial location. If one considers simulating wall
atoms with this fix, is it possible to perform simulations under NPT
ensemble (with large displacement) or non-equilibrium studies when the
wall is sheared? If not, what is the best way to modify this spring?

if a fix doesn't do what you want it to do, you have to
change the sources and implement the missing feature.

Is there any other alternative way for keeping each wall atom mobile?

it depends a lot on what you want to do exactly.
more likely than not, there are alternate ways
to get the kind of information you want, but it
is impossible to give any advice on such a
general level.

axel.

There have been a lot of people struggling to find the optimal way to
immobilise a group of atoms in a liquid under NPT conditions. This is
not obvious. It's not clear whether this can be done correctly using
simple lammps fixes. I tried many methods including "fix spring",
"set force", "fix rigid"...

There were two methods that worked the best. I will repost two lammps
input scripts and a comparison chart. Both are examples of the same
set of immobilised atoms immersed in SPC/E water (with shake
constraints). The waters located in the middle of the simulation box
(defined by type 3 and type 4) are immobilised.

1) attachment: "nptdilatepartial+exclude+fixmodify+rigid_highp.in"
This example uses "fix rigid" to restrain the motion of a group of
atoms, and correct the virial. I apologize for the long file names.

2) attachment: "nptdilatepartial+exclude+fixmodify_highp.in"
This is an example which does not use "fix rigid" (posted by Trung last week).

The data file for these examples is large, and I won't repost it, but
you can download it here:
http://sourceforge.net/mailarchive/message.php?msg_id=28151425
(scroll down to "Thread view", download "system.data.gz" and unpack it)

-- comparison --
There has been some discussion about which method works better. Here
is a graph comparing the two methods at high pressure (10000atm):
Method (1) is in green. Method (2) is in blue. The system has been
pre-equilibrated carefully so the volume should not change except for
natural fluctuations (black line). Method (1) seems to do the best
job maintaining the correct volume. However in method (1) the
pressure which is reported does not match the target pressure at high
pressure. (I am probably computing the pressure incorrectly. This
could be because of "fix shake" needed for water is messing with the
kinetic energy.) Method (2) which does not use "fix rigid" does not
have this particular problem, but the volume is off by a few percent.

"fix spring" did not work well for me under npt conditions.
"fix spring" was discussed here:
http://sourceforge.net/mailarchive/message.php?msg_id=28151840
http://sourceforge.net/mailarchive/message.php?msg_id=28138768
http://sourceforge.net/mailarchive/message.php?msg_id=28136522

Alas, I can not answer your questions about non-equilibrium conditions
or shearing.
I hope this helps

Andrew

nptdilatepartial+exclude+fixmodify+rigid_highp.in (4.1 KB)

nptdilatepartial+exclude+fixmodify_highp.in (4.15 KB)

comparison_high_pressure.png