lumol-org / lumol

Universal extensible molecular simulation engine
http://lumol.org/
BSD 3-Clause "New" or "Revised" License
190 stars 18 forks source link

Add "smart MC" moves #51

Open g-bauer opened 7 years ago

g-bauer commented 7 years ago

A possible way to efficiently translate or rotate a molecule is to bias the displacement using the actual force/torque acting on a molecule (see this paper). The magnitude of displacement can be adjusted just like in regular translation/rotation moves while the direction is biased towards the force/torque to which an additional random (gaussian) displacement is added.

Implementation of the translation move needs the following steps:

  1. select a molecule
  2. compute the energy of the molecule with the rest of the system (store distances for all pairs)
  3. compute the total[1] normalized force vector acting on the molecules center of mass
  4. bias the translation using the normalized force, a maximum displacement and a random gaussian displacement vector
  5. compute the energy and force acting on the molecule for the new configuration
  6. accept/reject the move according to an unbiased acceptance criterion

While computations in this move are more involved than in a regular displacement/rotation it offers the possibility to perform multi-particle moves in an efficient manner. In these moves all particles translate/rotate at the same "time". Just like in molecular dynamics, force (and energy) computations can be carried out in parallel leading to an increased efficiency.

[1] it was mentioned in this paper that it is sufficient to approximate the total force by only computing short range contributions. Maybe even with a reduced cut-off distance.

Luthaf commented 7 years ago

This sounds nice! Especially for this part:

It was mentioned in this paper that it is sufficient to approximate the total force by only computing short range contributions. Maybe even with a reduced cut-off distance.

I think that if you generate your moves using a biased scheme, you need to unbiase it in the acceptance criterion to ensure micro-reversibility of your simulation. Do you know if there is also the case here? Was micro-reversibility proved for smart MC?


This sounds a lot like force-biased Monte-Carlo, that I have heard a lot about. I found this paper comparing smart MC (SMC) and force-biased MC (fbMC), I'll read it and get back here after. Also of interest in this area is uniform acceptance force-biased MC, which is way more recent (2012).

I am also interested in Hybrid Monte-Carlo (see #16), where you run a short MD simulation as a new MC move, and then accept/reject it using the usual MC acceptance criterion. It is close to SMC or fbMC in what it allow to accomplish.

g-bauer commented 7 years ago

I have no source for a proof of micro-reversibility but - as you said - introducing a bias you have to make sure to account accordingly. In smart MC you have to evaluate the forces twice - in the new as well as the old state - to compute both forwards and backwards probabilities. And yes, it is very similar to force bias. I didn't know the paper you mentioned, but newer studies that use force bias implement translations in very sophisticated (read: expensive) ways.

Hybrid MC seems to be different in that an "MD move" is done within the NVE ensemble, which leads to automatic acceptance (since dE=0). But I am not experienced in Hybrid MD.

Luthaf commented 7 years ago

In smart MC you have to evaluate the forces twice - in the new as well as the old state - to compute both forwards and backwards probabilities.

OK, I did not get this part. I will read the papers about all this!

Hybrid MC seems to be different in that an "MD move" is done within the NVE ensemble, which leads to automatic acceptance (since dE=0). But I am not experienced in Hybrid MD.

Acceptance is not automatic, because potential energy can change (as the total energy is conserved in MD, not the potential energy). Also, it is interesting to use Hybrid MC with NVT or NPT MD simulations, where the energy is not conserved at all.

g-bauer commented 7 years ago

Acceptance is not automatic, because potential energy ...

You are right, I should go to bed :)

A question popping into my mind would be: what happens when NVE is performed and temperature drops considerably... but maybe these issues are better discussed in #16