[gmx-developers] Bond-angle coupling
hess at kth.se
Thu Oct 4 15:26:43 CEST 2012
If you want to this completely generally, you would need 3-body non-bonded
interactions. Gromacs is not well suited (yet) for this.
If you have a limited number of hydrogen bonding partners,
you can add a new (or modify) an "angle" potential function in bondfree.c,
this is not to complicated. Then all HB pairs angles should be listed
in your topology and all will be calculated (in parallel possibly not all).
On 10/04/2012 02:56 PM, Bogdan Costescu wrote:
> The functions for bonded interactions are all located in
> src/gmxlib/bondfree.c. The functions are called on lists of atoms, one
> list for one type of interaction potential. The caller already takes
> care of splitting the lists between nodes, so you don't have to care
> about this aspect. There is however another aspect that comes into
> play: what happens after a bond becomes broken. The lists are "fixed",
> as the topology is not supposed to change during the MD simulation, so
> items from these lists will not magically appear or disappear. If the
> bond potential is only based on distance and allows bond reforming,
> there is no state to be kept and implementation is quite simple. If,
> however, the bond has to remember the state (if it becomes broken it
> has to remain broken), there are 2 ways:
> - change the lists yourself - they have to be kept synchronized
> between nodes, so it becomes a global operation which (if happens
> often) will hurt scalability a lot
> - keep the state of the bond and move it around with the atoms
> whenever the atoms travel between domain decomposition cells
> To make things more complex, if you want bonds to break and reform
> with different partners, keeping the bond state doesn't help and
> changing the lists is the only way.
> In terms of the actual potential, you might find some inspiration in
> the cross_bond_bond() and cross_bond_angle() functions in the
> bondfree.c file.
> Good luck!
> On Thu, Oct 4, 2012 at 2:28 PM, MURAT OZTURK <murozturk at ku.edu.tr> wrote:
>> I am thinking about hacking gromacs in the following way :
>> I would like to have an angle potential that would turn on/off depending on
>> the energy of a particular bond.
>> For example, I will have a lennard-jones-cosine potential for a bonded
>> interaction. This will continuously go to '0' at a threshold. Then I will
>> have an angle potential between these two atoms (and a third one).
>> For each calculation, I would like the angle potential to be multiplied by
>> the instantaneous value of the bond potential, effectively turning it off if
>> the bond is 'broken'.
>> This is to represent a hydrogen bond in a coarse grained model.
>> I have intermediate C/C++ skills (that I haven't used in a while), but I am
>> intimidated by the parallel nature of the code and am not familiar with the
>> internals of gmx. I am willing to work on this full time for a week or so.
>> I would truly appreciate if someone could comment on the feasibility of this
>> hack, and possibly show me where to begin.
>> Thank you
>> gmx-developers mailing list
>> gmx-developers at gromacs.org
>> Please don't post (un)subscribe requests to the list. Use the
>> www interface or send it to gmx-developers-request at gromacs.org.
More information about the gromacs.org_gmx-developers