Repository navigation
Single Replica Minus Mover - #350
Conversation
|
Is this ready to be merged? |
|
No ... I'm going to add some more tests, and I think I'll go ahead and add the associated |
Hypothetically, this might be useful if someone insists on using `isinstance` to identify movers of "minus" type. However, I would *strongly* discourage that usage; there are many better ways to do it. (Use MoveScheme, or find the movers associated with moves involving the minus ensemble.... perhaps other things)
|
Now this is ready for review and merge. Note: the SRMinusMover is useful beyond just single replica TIS. It is essentially the original implementation of the minus move. Instead of keeping a separate minus ensemble in the active sample set, just uses it as an intermediate ensemble. We might eventually switch to using this as the minus mover for MSTIS -- it should work there, and removes the need to manually populate the minus ensemble. (The minus ensemble has to be manually populated for MISTIS, however, because we need to keep the minus trajectory in the active samples to get interface switching.) |
|
Very nice. I always habe to smile a little when I realize how clear you can write down a new mover in ops... Will merge this. |
The SRMinusMover is a little different from the standard minus mover: instead of keeping an active minus ensemble, the minus ensemble is only used as an intermediate.
As before, we define the innermost ensemble, the minus ensemble, and the "segment" ensemble, which is like the innermost except it only allows A->A paths.
The basic process for the single replica minus is like this:
In practice, this is split into a forward minus and a backward minus: forward minus extends forward and selects final subtraj; backward minus extends backward and selects first subtraj. The total
SingleReplicaMinusMoverhas a 50/50 chance of selecting its forward or its backward submover.So the normal
MinusMoveris a replica exchange between theminus_ensembleand one of theinnermost_ensembles. On the other hand,the single replica minus mover is a move frominnermost_ensembleto (hypothetically another)innermost_ensemble.As mentioned in #331, this approach is really only useful for single innermost interfaces. In fact, the code as implemented will only be correct in that case (and raises a warning if you aren't).