[gmx-developers] gromacs.org_gmx-developers Digest, Vol 144, Issue 3

Carl Christian Kjelgaard Mikkelsen spock at cs.umu.se
Tue Apr 5 14:11:52 CEST 2016

On 04/05/2016 12:00 PM, 
gromacs.org_gmx-developers-request at maillist.sys.kth.se wrote:
> Send gromacs.org_gmx-developers mailing list submissions to
> 	gromacs.org_gmx-developers at maillist.sys.kth.se
> To subscribe or unsubscribe via the World Wide Web, visit
> 	https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
> or, via email, send a message with subject or body 'help' to
> 	gromacs.org_gmx-developers-request at maillist.sys.kth.se
> You can reach the person managing the list at
> 	gromacs.org_gmx-developers-owner at maillist.sys.kth.se
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of gromacs.org_gmx-developers digest..."
> Today's Topics:
>     1. Re: Which nonlinear constraint equation is being solved in
>        GROMACS subroutine cshake()? (Berk Hess)
> ----------------------------------------------------------------------
> Message: 1
> Date: Mon, 4 Apr 2016 14:32:04 +0200
> From: Berk Hess <hess at kth.se>
> To: gmx-developers at gromacs.org
> Subject: Re: [gmx-developers] Which nonlinear constraint equation is
> 	being solved in GROMACS subroutine cshake()?
> Message-ID: <57025EC4.30403 at kth.se>
> Content-Type: text/plain; charset="windows-1252"; Format="flowed"
> Hi,
> You have identified the correct function.
> The exact Lagrange multiplier is described in a comment in the code:
> scaled_lagrange_multiplier    Scaled Lagrange multiplier for each
> constraint (-2 * eta from p. 336
>    *                                             of the paper, divided by
> the constraint distance)
> But SHAKE is almost never used in GROMACS, because LINCS is faster and
> especially because SHAKE is ill suited for parallelization over MPI. The
> only other constraint method I know of that would be suitable is CG
> MSHAKE, for a comparison with SHAKE and LINCS see:
> http://link.springer.com/article/10.1140%2Fepjst%2Fe2011-01525-9
> But there would not be any significant advantage over LINCS.
> Cheers,
> Berk

Thank you very much for confirming that I have identified the exact 
constraint functions used by cshake().

Would you please consider the second part of my conjecture and confirm 
if I have the correct vector equation as well? Again, even the smallest 
detail, such as the exact scaling of the Lagrange multiplier is 
critical. As I stated in my first email, I believe that cshake() is 
solving the non linear vector equation

g(rprime - inv(M)*Dg(r)*lambda) = 0


rprime is the unconstrained atomic coordinates for the next time step
r      is the constrained atomic coordinates at at current time step
M      is the diagonal mass matrix
lambda is a Lagrange multiplier

cshake return both the new constrained atomic coordinates rnew given by

rnew:=rprime - inv(M)*Dg(r)*lambda

and the vector lambda itself.

I am afraid that the comment in cshake() which you refer to has been a 
source of confusion for me. In particular, there is no Greek letter eta 
used on page 336 of the original SHAKE paper. Moreover, I have not been 
able to find any evidence of any division with the constraint distance.

Kind regards

Carl Christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20160405/39ce1b3f/attachment.html>

More information about the gromacs.org_gmx-developers mailing list