Hi Steven!
Thank you very much for your detailed answer.
Best Regards,
Fu Lin
======= 2007-08-08 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 off-diagonal 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
>1-2 until it was the correct length you would almost certainly undo all
>that effort when you SHAKE bond 2-3.
>
>For more information see
>J. P. Ryckaert et al., JCompPhys 23 327-341 (1977)
>H. C. Andersen, JCompPhys 52 24-34 (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.scripps.edu
>> To unsubscribe, send "unsubscribe amber" to majordomo.scripps.edu
>-----------------------------------------------------------------------
>The AMBER Mail Reflector
>To post, send mail to amber.scripps.edu
>To unsubscribe, send "unsubscribe amber" to majordomo.scripps.edu
>
= = = = = = = = = = = = = = = = = = = =
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÖÂ
Àñ£¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡linfu
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡linfu3200.mail.sioc.ac.cn
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2007-08-09
-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber.scripps.edu
To unsubscribe, send "unsubscribe amber" to majordomo.scripps.edu
Received on Sun Aug 12 2007 - 06:07:22 PDT