Reference for Suzuki-Yoshida weights #273
Replies: 3 comments 3 replies
-
|
I believe these were copied from jax-md which we're copied from open-mm. Neither of those references fully assign back to literature. I will send off a message to the person on the OpenMM team who originally implemented their nose-hoover and see if they can help trace this back to an earlier ground truth |
Beta Was this translation helpful? Give feedback.
-
|
@CompRhys is right. I won't say it's lost in time. The derivation and weights can be found in - Statistical Mechanics: Theory and Molecular Simulation Section 4.12 by Tuckerman and they match with what all the packages have (TorchSim, OpenMM etc). |
Beta Was this translation helpful? Give feedback.
-
|
Ok thanks for the reference. Looking at it at Section 4.11 (Integrating the Nose-Hoover chain equations), equation (4.11.12) indeed provide the decomposition SUZUKI_YOSHIDA_WEIGHTS[7] in Torch Sim. The book provide a decomposition in 4th order with 3 or 5 terms but they are not the ones used in openMM, jax-md, torchsim or gromacs: While, these constants are used in these MD codes: By the way, I actually did not notice but as you said the 6th order derivation was provided in Yoshida 1990 paper and is the one used in the MD codes. I was confused as it's written in scientific notation and only write w_1, w_2, w_3 (See Solution A of Table 1). Also, while I understand that SUZUKI_YOSHIDA_WEIGHTS[7] is a 6th order integrator for L_NH, as far as I understand, SUZUKI_YOSHIDA_WEIGHTS 3 and 5 should both be 4th order integrator. Are they any other difference then? It seems like 4th order with 3 decomposition should always be preferred compared to the 5 terms for efficiency reasons. For instance, in gromacs, they actually force the use of the 5 terms. In ASE, they force the use of 3 terms (with actually the weights provided by Yoshida). |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
While making the batched version of Nosé Hoover NVT integrator, I discovered the higher order integration using Suzuki Yoshida weights. I was a bit surprised to see float values hard coded, instead of the numerical expression. Despite at many references given in torchsim, jax-md and openMM and gromacs, I did not find any papers reporting the exact same values in these softwares:
Only in Gromacs they actually provide the expression:
https://github.com/gromacs/gromacs/blob/8bed29775ddcd00d2ac3ae5602f79b74ab079af4/src/gromacs/mdlib/coupling.cpp#L89
What is surprising is that ASE and related papers rather provide these values:
So everything is similar in the expression up to a negative sign in the exponent, which changes everything. In the end, I don't think they are any difference in the implementation (jax-md and torch sim are similar as it was an inspiration, ase is similar although I may be wrong). Is there any reason for this difference? In the paper it's ASE version that is given.
Actually if one closely looks at Suzuki-Yoshida method, it's supposed to provide around terms 3**n (actually less as some terms can be factorised) to get a 2n order integrator. Here it seems to be only 2n-1 terms.
Do you have the derivation of these weights?
References:
(1996) Explicit reversible integrators for extended systems dynamics, Molecular Physics, 87:5,
1117-1157, DOI: 10.1080/00268979600100761
Beta Was this translation helpful? Give feedback.
All reactions