LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Mailing List Archives
Re: [lammps-users] feature request: hybrid monte carlo
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lammps-users] feature request: hybrid monte carlo

From: Efrem Braun <efrem.braun@...297...>
Date: Fri, 7 Jul 2017 19:53:25 +0200

Looks like this is something I might be implement to do as a nice exercise. The "hmc" code is pretty much as simple as I suspected, and provides me some nice guidance for good ways to implement saving positions and forces between HMC steps.

A question I'm wondering regarding the implementation:

The "hmc" code I was sent only allows for MD moves to be accepted/rejected per the MC rules. However, I think it'd be best to allow the user the flexibility to add on other MC moves to that list, e.g., to be able to do translate, rotate, insert/delete, and MD moves, or a subset of their choice. The former moves are already implemented in "fix gcmc" and I think it wouldn't be clean if MC moves are implemented twice in two different fixes.

So should HMC be implemented as an extension to the existing "fix gcmc"? In my opinion, "fix gcmc" is somewhat of a misnomer, since that fix can also be used to do just translation/rotation MC as well. So to me, "fix gcmc" is just an umbrella fix for any types of MC moves. If we define it that way, it makes sense for that umbrella to also allow MD as an additional type of MC move.

That said, I'd also understand if the "fix gcmc" implementer wanted me to keep my hands off.


Efrem Braun

On Fri, Jul 7, 2017 at 4:42 PM, Steve Plimpton <sjplimp@...24...> wrote:
Efrem - long ago I wrote a sample "hmc" command in collaboration
with Ed Maginn (UND) to try out HMC in LAMMPS.
We were never totally happy with how it worked, so
it was never released.  I will send you a small
tarball with the code (single command) and doc

It would be great if you want to modify/test it and
see if you can make it work and release it.


On Fri, Jul 7, 2017 at 5:57 AM, Efrem Braun <efrem.braun@...297...> wrote:

I'd like to submit a feature request for Hybrid Monte Carlo (HMC) simulations. At present, one can do mixed MD/MC using a combination of 'fix gcmc' and a time integration fix. However, there's no way to accept/reject the MD moves that take place between the steps when 'fix gcmc' is invoked. I believe that such accept/reject rules are formally necessary to provide detailed balance for proper sampling. (Velocity re-randomization is also necessary, but this can be currently implemented by the user looping between 'velocity create' and 'run' commands.)

I'm not sure of the best implementation for this feature. I think it'd probably be best to add a keyword to 'fix gcmc' to do this, and then LAMMPS would save the state at the end of the Monte Carlo moves and compare it to the energy of the state when the Monte Carlo moves next begin.

I might be able to implement this myself, but I wanted to check first to see if this feature is already being developed and to see what else the developers or other users thought about this.

Efrem Braun

Check out the vibrant tech community on one of the world's most
engaging tech sites,!
lammps-users mailing list