[gmx-developers] Bond-angle coupling
Berk Hess
hess at kth.se
Thu Oct 4 16:22:58 CEST 2012
On 10/04/2012 04:00 PM, MURAT OZTURK wrote:
> Hello, thanks for both replies.
>
> Properly generalized implementation seems well over my head, so I will
> settle for a hacked-in solution for my particular case. My bonds will
> allow re-binding, and I have a reasonable number of them, so I think I
> am safe in this aspect. I will start working on this and very likely
> come back with more questions.
>
> But for now, I have one more question :
>
> Let's say I have a tabulated bond between two particles. The table is
> as long as the box size (let's say 10 nm) and it is a lj-cos potential
> so it allows complete dissociation of these two particles. I get an
> error if these particles get further than some threshold during
> simulation. I believe that this threshold is due to domain
> decomposition. I want to have tables as long as the box to allow
> complete dissociation. This way I will not need any non-bonded
> interactions for my hydrogen bonds. Would it be possible to ignore
> this threshold for my "hydrogen bonded" particles?
>
I implemented the mdrun -noddcheck option is exactly for this purpose.
Cheers,
Berk
> Particle decomposition comes to mind, but it says "only whole
> molecules can be assigned to a processor" in the manual, which locks
> me into a single processor as I have one enormous coarse grained
> molecule.
>
> Cheers
>
> Murat
>
>
> On Thu, Oct 4, 2012 at 4:26 PM, Berk Hess <hess at kth.se
> <mailto:hess at kth.se>> wrote:
>
> Hi,
>
> 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).
>
> Cheers,
>
> Berk
>
>
> On 10/04/2012 02:56 PM, Bogdan Costescu wrote:
>
> Hi!
>
> 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!
> Bogdan
>
> On Thu, Oct 4, 2012 at 2:28 PM, MURAT OZTURK
> <murozturk at ku.edu.tr <mailto:murozturk at ku.edu.tr>> wrote:
>
> Hello!
>
> 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
>
> Murat
>
> --
> gmx-developers mailing list
> gmx-developers at gromacs.org <mailto:gmx-developers at gromacs.org>
> http://lists.gromacs.org/mailman/listinfo/gmx-developers
> Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to
> gmx-developers-request at gromacs.org
> <mailto:gmx-developers-request at gromacs.org>.
>
>
> --
> gmx-developers mailing list
> gmx-developers at gromacs.org <mailto:gmx-developers at gromacs.org>
> http://lists.gromacs.org/mailman/listinfo/gmx-developers
> Please don't post (un)subscribe requests to the list. Use the www
> interface or send it to gmx-developers-request at gromacs.org
> <mailto:gmx-developers-request at gromacs.org>.
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20121004/af130910/attachment.html>
More information about the gromacs.org_gmx-developers
mailing list