Replies: 3 comments 1 reply
-
I think this should not be too difficult. The objects already have their tasks broken down in functions suitable for either the first or the second stage of the computation. Historically, the constraint in NAMD came from the single call |
Beta Was this translation helpful? Give feedback.
0 replies
-
@HanatoK Ok to move it to an issue instead, since you are defining a clear work item? |
Beta Was this translation helpful? Give feedback.
1 reply
-
Moved to issue #747 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I think the separation is required for using Monte-Carlo barostat. In the Monte-Carlo barostat, we don't increase the step number, and evaluate the forces multiple times at the same step. PLUMED has two entrance functions for the MD engine, namely (i)
calculate()
and (ii)update()
. Both of them are supposed to be called in a forward manner, but the former should only calculate the CVs, biasing energy and forces, while the latter is supposed to update the internal state of the biases. In the OpenMM-PLUMED interface, the two routines are called by the following code (https://github.com/openmm/openmm-plumed/blob/a3e935bc88ed8771f17f6f4d60588b81789b9c89/openmmapi/src/PlumedForceImpl.cpp#L143-L148):As you can see,
update()
will be only called after the step counter changed.Now that NAMD is going to support the Monte-Carlo barostat in the GPU-resident code path. I wish Colvars can be compatible with it (or can be used in OpenMM in the future), so I think it is important to separate the calculation of CVs and biases and the update of their internal states.
Beta Was this translation helpful? Give feedback.
All reactions