I am filling in for Steve and Paul this week, so I am going to try and
reply to every message, just so they know I was not derelict in my
duties. However, since Axel wrote the SMD package, he better qualifie
than anyone to reply. I will just express a couple of opinions.
-There is probably no fundamental difficulty with providing
PBC-support for SMD
-As Axel rightly said, doing it properly will require a substantial
amount of thought and testing on his part, which may not be warranted.
the following should correct the problem for the case
of using "couple" mode. please give it a try and let
me know if it works or not.
for "tether" mode, it will require more programming as
the code currently includes some optimizations that
cannot be used with "couple". and i'm not sure i want
to do this. since tether point is not moving, it would
be better to move the system accordingly in the first place.
cvs diff: Diffing USER-SMD
Index: USER-SMD/fix_smd.cpp
--- USER-SMD/fix_smd.cpp 2 Aug 2008 16:44:19 -0000 1.1.1.2
+++ USER-SMD/fix_smd.cpp 14 Jun 2009 22:35:20 -0000
@@ -277,6 +277,9 @@
dx -= xn*r_old;
dy -= yn*r_old;
dz -= zn*r_old;
+ // the reference point cannot be further away
+ // than half a box length from the target.
+ domain->minimum_image(dx,dy,dz);
if (!xflag) dx = 0.0;
if (!yflag) dy = 0.0;
-LAMMPS makes it is easy for the user to move the location of the
periodic boundaries in LAMMPS. Just modify xlo/xhi in the data file.
-I am guessing that a well-posed SMD simulation will never move the
tether point more than 1 periodic cell length, so it might be better
just to update the documentation accordingly, and possibly put some
checks in the code.
i agree completely. i'll look into updating/revising the documentation
along those lines. for "couple" the situation is a bit different,
because both atoms/groups may diffuse around, so the code from above
makes sense to include. i'll have a look into adding a check for
"tether" as soon as i get some more time.
cheers,
axel.