gal17 force field in lammps

Dear Lammps users and developers,

We are trying to hack the GAL17 (Steinmann et al.,J. Chem. Theory Comput., v14, 3238, (2018)) force field into lammps. This force field describes the interaction between water and a Pt surface and it contains terms acting on the orientation of the water molecules close to the surface.

We were not quite motivated to create an entirely new interaction style and, originally, so our plan was to write a new angle style in which we actually adjust the orientation of the water molecules instead of the HOH angle (in this way every water molecule is called once). The action on (SPC/E) waters could then be achieved by setting

angle_type hybrid harmonic gal17
angle_coeff 1 harmonic 100 109.47
angle_coeff 1 gal17 …(parameters of the gal17 ff)…

However, we are struggling with the function equilibrium_angle that seems to be used in shake. We cannot simply return a constant, because we will have to use shake for SPC/E water.

We would very much welcome help in how to tackle this the best. I am also open to suggestions on how to solve this in a completely different way - we could just not find another easy way of achieving an orientation dependent force. However, I am also not the most proficient lammps user, so it is possible that I am overlooking an obvious way of achieving this.

Thank you and best regards,

Katharina Doblhoff-Dier
Leiden University


my first thought in how to implement this would be to write it as a fix, with perhaps taking some inspiration from fix rigid/small. that would give you are framework to identify molecules and their orientation and then compute and apply an orientation dependent force (which would be done in the post_force step like in fix addforce).

using an angle style would be awkward, since there is no hybrid/overlay option for angle styles (to add your orientation bias), so you would have to replace/modify an existing angle style in a rather unusual and thus unexpected way.