I wish to extend the functionality of parallel replica dynamics (PRD) so that it’s possible to simulate driven systems. The theory of PRD was extended to driven systems in “Parallel replica dynamics for driven systems: Derivation and application to strained nanotubes” [1] and used in, for example, [2] and [3].
Specifically, I’d like to be able to use fix move
in a PRD simulation.
I’ve seen this where @sjplimp has some suggestions to what needs to happen:
insure that PRD does not continue to apply deformations during de-phasing
and quenching.
This would likely require some additional logic be added to prd.cpp to allow
for turning off certain fixes at certain stages
How do I programmatically turn on and off a fix?
b) write a new event detection compute which accounts for events occurring
in a system undergoing active strain. I imagine the vanilla compute we
provide could be broken by strain.
Not entirely sure, but I would imagine that the current event detection compute can still work even for a system undergoing deformation. Whether atoms have moved above the event detection threshold due to the external driving or the molecular dynamics simulation itself should not matter. Either leads to a change in state. So, if I understand correctly, I don’t think this needs to be implemented.
For driven PRD to be valid, the following is noted in [1]:
Note that one must now proceed with the first transition to occur in MD time, which requires that all replicas run at least up to the putative first transition time before it can be certified as the true first transition.
From what I understand from the documentation and the code, this requirement will be upheld if the time value is steps , but please correct me if I’m wrong. Otherwise, I’d need to make the necessary changes to the code.
I believe these are the “only” changes that needs to happen. If not, I’d like to know what else needs to change