AMBER Archive (2007)Subject: Re: Re: AMBER: about shake
From: linfu (linfu3200_at_mail.sioc.ac.cn)
Date: Wed Aug 08 2007  20:10:05 CDT
Hi Steven!
Thank you very much for your detailed answer.
Best Regards,
Fu Lin
======= 20070808 23:59:45 ÄúÔÚÀ´ÐÅÖÐÐ´µÀ£º=======
>Dear Fu Lin,
>
>I haven't looked at the AMBER code, but having coded up SHAKE for a
>different program it will almost certainly be (2) and (a) (or some
>variant of (a)).
>
>
>Firstly,the SHAKE algorithm first expands the constraint functions as a
>Taylor series about the unconstrained positions and uses the first
>derivatives of the constraint functions to approximate where the
>constraints are satisfied. This gives a matrix equation, which is what I
>assume you mean by 'linear equation method', but since this comes from
>truncating the Taylor series at the first derivative even this will need
>iterating.
>To speed things up, all offdiagonal elements of this matrix are assumed
>to be zero and the resulting equations are iterated (there will probably
>be more iterations than if the matrix elements weren't zeroed, but each
>iteration will be a lot quicker because we don't need to invert a matrix
>each time).
>
>Secondly, as soon as you have any atom which is involved in two or more
>constraints then (a) is required. Say atom 1 is bonded to atom 2, which
>is bonded to atom 3 and you use method (b). If you used SHAKE on bond
>12 until it was the correct length you would almost certainly undo all
>that effort when you SHAKE bond 23.
>
>For more information see
>J. P. Ryckaert et al., JCompPhys 23 327341 (1977)
>H. C. Andersen, JCompPhys 52 2434 (1983)
>Frenkel, Smit 'Understanding Molecular Simulation' Chapter 10
>
>Regards,
>
>Steve.
>
>linfu wrote:
>> Dear Amber Community!
>>
>> I am not fully understand the SHAKE algorithm in Amber.
>> I am wondering how the AMBER implement the SHAKE algorithm,(1) or (2).
>> (1) Solve the linear equation method.
>> (2) Using Iteration method to convergence.
>>
>> If AMBER uses (2),which Iteration strategy does AMBER do, (a) or (b).
>> (a)
>> while(not convergent)
>>
>> for i = 1 to number_of_shake_bonds
>> shake_correction() //one interation.
>> endfor
>>
>> endwhile
>>
>> (b)
>> for i = 1 to number_of_shake_bonds
>>
>> while(not convergent)
>> shake_correction() //serveral interation until convergence.
>> endwhile
>>
>> endfor
>> which iteration is better?
>>
>> Could anyone help me! Thank you very much:)
>>
>> BEST REGARDS
>> Fu Lin
>>
>>
>> 
>> The AMBER Mail Reflector
>> To post, send mail to amber_at_scripps.edu
>> To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu
>
>The AMBER Mail Reflector
>To post, send mail to amber_at_scripps.edu
>To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu
>
= = = = = = = = = = = = = = = = = = = =
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÖÂ
Àñ£¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡linfu
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡linfu3200_at_mail.sioc.ac.cn
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡20070809

The AMBER Mail Reflector
To post, send mail to amber_at_scripps.edu
To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu
