I am trying to apply simulated-tempering on a system with an hydrated bilayer. I noticed that the latest versions of gromacs now allow to use the md-vv integrator (only option that works for simulated-tempering) with the parrinello-rahman barostat. This works if I do not apply pull dynamics to the system, but not with pulling.
If I apply pull dynamics it gives me the following error:
Assertion failed:
Condition: isInputCompatible || !(inputrec->eI == eiVV && inputrec->epc == epcPARRINELLORAHMAN)
Requested Parrinello-Rahman barostat with md-vv, but other options are not
compatible with the modular simulator. The Parrinello-Rahman barostat is not
implemented for md-vv in the legacy simulator. Use a different pressure
control algorithm.
Is this still some error of the recent implementation of md-vv with the Parrinello-Rahman barostat or Is there any reason why I should not use md-vv with Parrinello-Rahman and pulling?
There is certainly an input check missing here. The user should not get an assertion failure, but then the error message actually seems to talk to the user.
This check tells you that your combination is currently not supported. I don’t see why the modular simulator could not hand pulling though. I will ask the person who wrote this.
This combination is not supported. We “fixed” that the user will now get a fatal error message. It’s unfortunate that we have a combination of option that does not work with any integrator.
I no asked why the pull code is not supported in md-vv at:
Oh, ok. Many thanks!
I will follow the answer to your question on GitLab then. Thank you very much.
Actually, md-vv works with the pull code, but not if the Parrinello-Rahman barostat is used. (if berendsen is used there’s no problem)
well, yes.
you can see from one of my .log files
If I change berendsen to PR then I have an error.
Apparently I cannot upload my .log file here but here is a copy:
I can give some further background and a few suggestions:
This is all as expected for GROMACS 2021. GROMACS 2021 has two implementations of md-vv: The legacy implementation which has been present since many years, and the modular implementation which we are slowly migrating to. The modular implementation is currently not feature-complete, i.e. there are algorithms which are not yet ported to the new framework. Whenever an algorithm which hasn’t been ported yet is chosen by the user, GROMACS defaults to the legacy implementation, which has the same feature set as earlier GROMACS versions. Pull is one of the algorithms that is not yet available for the modular simulator, so GROMACS uses the legacy code path.
Parrinello-Rahman for md-vv is a special case which was never implemented in the legacy code path. So for this specific pressure coupling algorithm and md-vv, pull cannot be used - because the pressure coupling algorithm is only implemented in the modular implementation, while pull is not yet available there.
You should be able to use any other pressure coupling algorithm. MTTK is equivalent to P-R and available in legacy md-vv, but does not work with constraints. Berendsen works, as you noticed, but will not generate the correct ensemble. C-rescale is a new pressure coupling algorithm which does generate the correct ensemble and works with constraints, so that could be an option. Finally, you could also use md instead of md-vv, in which case the combination of pull & Parrinello-Rahman will work.
Dear ptmerz.
First of all many thanks for your answer. Yes, I now understand the issue and the option I tried was to use the Beredsen barostat (not ideal though). Unfortunately, using md instead of md-vv is not an option because I want to do simulated-tempering. The C-rescale pressure coupling algorithm is completely new to me. I will check it.
Thanks you very much.
Carla