enhanced sampling methods for rigid bodies?

Dear all,

I’d like to do parallel tempering simulations on my rigid body system in order to help the system escape from metastable free-energy minima and to generate equilibrated configurations more efficiently.

I noticed that temper command is not consistent with fix rigid/nvt. Is there any conceptual reason for why the temper command cannot handle the temperature control fixes like rigid/nvt? Is it an easy task to extend the temper command to handle rigid bodies as well?

Are there any other enhanced sampling method within lammps which is also suitable for rigid bodies?

Regards,
Nima

Dear all,

I'd like to do parallel tempering simulations on my rigid body system in
order to help the system escape from metastable free-energy minima and to
generate equilibrated configurations more efficiently.

I noticed that temper command is not consistent with fix rigid/nvt. Is
there any conceptual reason for why the temper command cannot handle the
temperature control fixes like rigid/nvt?

​no.​

Is it an easy task to extend the temper command to handle rigid bodies as
well?

​i think it is sufficient to expand the list of supported fixes, so the
answer to this question is: yes.
the code in temper.cpp has been in LAMMPS a long time, is quite simple, and
has apparently not been updated for recent additions. there are several
more thermostat fixes that should be enabled. as far as i can see, all you
need is that the fix provides the "Fix::reset_​target()" method for
adjusting the thermostat target temperature. if you are willing to do the
some testing, i can make a correspondingly modified source available.

Are there any other enhanced sampling method within lammps which is also
suitable for rigid bodies?

​the issue you are seeing has nothing to do with rigid bodies as such. only
that rigid body integrators with included thermostats​ are more recent than
the code in temper.cpp.

​axel.​

Dear all,

I'd like to do parallel tempering simulations on my rigid body system in
order to help the system escape from metastable free-energy minima and to
generate equilibrated configurations more efficiently.

I noticed that temper command is not consistent with fix rigid/nvt. Is
there any conceptual reason for why the temper command cannot handle the
temperature control fixes like rigid/nvt?

​no.​

Is it an easy task to extend the temper command to handle rigid bodies as
well?

​i think it is sufficient to expand the list of supported fixes, so the
answer to this question is: yes.
the code in temper.cpp has been in LAMMPS a long time, is quite simple,
and has apparently not been updated for recent additions. there are several
more thermostat fixes that should be enabled. as far as i can see, all you
need is that the fix provides the "Fix::reset_​target()" method for
adjusting the thermostat target temperature. if you are willing to do the
some testing, i can make a correspondingly modified source available.

Thanks Axel, this would be great. I'll do the testing.

Are there any other enhanced sampling method within lammps which is also
suitable for rigid bodies?

​the issue you are seeing has nothing to do with rigid bodies as such.
only that rigid body integrators with included thermostats​ are more recent
than the code in temper.cpp.

I was thinking of other methods like e.g. prd. They usually have an energy
minimization step which is again not suitable for "fix rigid" systems.

Nima

​[...]

​i think it is sufficient to expand the list of supported fixes, so the
answer to this question is: yes.
the code in temper.cpp has been in LAMMPS a long time, is quite simple,
and has apparently not been updated for recent additions. there are several
more thermostat fixes that should be enabled. as far as i can see, all you
need is that the fix provides the "Fix::reset_​target()" method for
adjusting the thermostat target temperature. if you are willing to do the
some testing, i can make a correspondingly modified source available.

Thanks Axel, this would be great. I'll do the testing.

​you should be able to download the modified source from here:​

https://raw.githubusercontent.com/lammps/lammps/lammps-icms/src/REPLICA/temper.cpp

​or here​:

http://git.lammps.org/git/?p=lammps-icms.git;a=blob_plain;f=src/REPLICA/temper.cpp;hb=HEAD

​or you can just download a full snapshot of LAMMPS-ICMS from:

http://git.lammps.org/git/?p=lammps-icms.git;a=snapshot;sf=tgz

​axel.​

Thanks a lot Axel,
I tested the the new temper.cpp file with fix rigid/nvt and fix
rigid/nvt/small. In both cases, it runs as expected.

Just a minor comment:
Because the Langevin thermostat within fix rigid does'nt have
"Fix::reset_target()" tempering is not possible. Would be ideal if
this method can be added to fix rigid...

Nima

Thanks a lot Axel,
I tested the the new temper.cpp file with fix rigid/nvt and fix
rigid/nvt/small. In both cases, it runs as expected.

Just a minor comment:
Because the Langevin thermostat within fix rigid does'nt have
"Fix::reset_target()" tempering is not possible. Would be ideal if
this method can be added to fix rigid...

that is not enough in this case. you still cannot tell, if it is active as
it is an optional feature.

axel.