[gmx-developers] angle restraints

hessb at mpip-mainz.mpg.de hessb at mpip-mainz.mpg.de
Fri Mar 24 16:52:40 CET 2006

> Berk,
>> g_angle has the same problem.
>> If I am not wrong it only outpus angles between 0 and 180.
>> It uses the cosine (inner product of two vectors).
> Right. Sorry, I was a bit confused when I wrote earlier, I did look at
> this before and that's correct. They are on 0 to 180. I should have
> thought of that before.
> However, it still seems like it should be possible to do what I'm
> suggesting. In particular, on page 64 of the 3.2 manual, it states
> that the angle used in angle restraints is using the arccos of a
> certain dot product. If this is done correctly in the code, the sign
> of the angle will be different depending on whether the vectors are \|
> or /|. If you're right and PBC messes this up, then the documentation
> is, I suppose, incorrect, since it would mean that the sign of the
> angle isn't at all meaningful.
> Maybe this could be solved in some (most?) cases by always using a
> minimum image convention for computing these angles? (Is there an easy
> way to do that?) Then even if one of the vectors moves through PBC, it
> will be wrapped back to where it ought to be for the purposes of
> computing the angle.
> Again, I'm not particularly attached to doing this with angle
> restraints if there is some other way to do it. But I desperately need
> a way to rotate the angle between a small molecule and a protein
> through 360^o, and so far I haven't been able to come up with any
> other way to do it. I tried it using the existing angle restraints,
> but the orientation gets stuck at the force zeros and I can never push
> it through 360^o.

Sorry, but g_angle has no sign.

For two vectors in 3D space you can not uniquely define a sign.
So you can not rotate them 360 degrees.
To do that you need extra points so you can define a plane
in which they should rotate 360 degrees.


More information about the gromacs.org_gmx-developers mailing list