Metadynamics Bug report in colvar: DISTANCE
Ata Roudgar
rou... at yahoo.com
Wed Mar 2 00:47:26 UTC 2011
Hi,
I have so much fun with CP2K and really appreciate everyone who
contributes to this software. I am performing metadynamics on a system
of Triflic acids and the purpose of this metadynamics is to calculate
the activation energy or so called reconstruction free energy of
lateral proton transfer. The proton which is in form of hydronium
should overcome a hydrogen bond and travel along y direction (around
7bohr) and reach to transition state and then provide a final state.
There is a inconsistency which introduce a bug to my metadynmics:
File colvar_methods.F
line 2265 - 2269
CALL get_coordinates(colvar, i, xpi, my_particles)
CALL get_coordinates(colvar, j, xpj, my_particles)
ss=MATMUL(cell%h_inv,xpi-xpj)
ss=ss-NINT(ss)
xij=MATMUL(cell%hmat,ss)
For my system line 2272: ss=ss-NINT(ss) is totally inappropriate.
Here is the explanation about what these lines do.
The first two lines get the coordination of two atoms which are listed
in DISTANCE colvar. ss in third line calculate the coordination
difference between these two atoms in direct coordinate (not in
Cartesian). The forth line consider periodic boundary condition which
means if the distance between two atoms during the metadynamics become
more than half of the unitcell, this line will consider the atoms of
the next unitcell to calculate the distance. Thus there will be huge
jump in my real CV (S(r)) from x to -x or from y to -y or z to -z.
This brings a huge difference between k(s-S(x)) and consequently a
huge jump in total energy. So, it might a be good idea to implement a
keyword (like the one in angle) to tell the user if he need a periodic
boundary condition or not during metadynamics. I hope it help to
improve the next version of CP2K
Regards,
Ata
More information about the CP2K-user
mailing list