Skip to content

Settings of `ReplicaExchangeType::Lambda` is mistakenly routed to `ReplicaExchangeType::TemperatureLambda`.

Summary

When replica exchange is enabled in the lambda-only mode, all reference temperatures ref-t are the same among replicas.

However, the log tells that another branch temperature+lambda is used.

Replica exchange in temperature and lambda state
 298.1 298.1 298.1 298.1
     0     1     2     3

GROMACS version

2021, 2022, etc.

Steps to reproduce

Suppose there are 4 simulation replicas with the MDP option snippet as below:

; Temperature coupling
tcoupl = V-rescale
ref-t = 298.1  ; Values are the same in other MDP option files

; Free energy control stuff
free_energy = yes
init_lambda_state = 0  ; Values in other MDP option files can be 1,2,3

Then, launch multiple simulations with the following command:

gmx mdrun -multidir 0 1 2 3 -replex 200 ...

What is the current bug behavior?

The log tells that another branch temperature+lambda is used.

Replica exchange in temperature and lambda state
 298.1 298.1 298.1 298.1
     0     1     2     3

What did you expect the correct behavior to be?

Here are the log that we expect:

Replica exchange in lambda state
     0     1     2     3

Possible fixes

Fix comparison of float numbers in function repl_quantity.

Edited by Shaochen Shi