-
Notifications
You must be signed in to change notification settings - Fork 304
enhance GROMACS easyblock to improve control over PLUMED support (native vs. patching) #3984
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
|
Wouldn't it make more sense to use, e.g., |
|
I quite like the idea of introducing a setting As far as I can tell, the plan is for GROMACS to gradually support most PLUMED use-cases via their native API. GROMACS 2025 with a limited native PLUMED-API was just the first step into that direction. PLUMED's own description of their gromacs-2025.0 patch is:
I think the setting that requires the most thought is I argue that easybuild should use the least-invasive method, which means choosing Since their 2020 release, GROMACS validates the checksum of the release during the build-process and will modify the GROMACS version string if the checksum does not match the official release. Overall
And to serve the needs of users who will need the latest PLUMED features which are not yet supported by the native PLUMED API, we can provide modules with |
|
Commit 82a0da5 addresses @jhmeinke 's comments. New logic is now:
|
Since GROMACS 2025 one can compile GROMACS with a PLUMED interface without patching it by setting CMake option
-DGMX_USE_PLUMED=ON.Applying PLUMED patches to GROMACS 2025 is still possible in order to get the latest PLUMED functionality.
This PR adds a fourth option
'patch'to the extra-optionplumed.plumed = None(default) auto detects whether PLUMED is available and do the same asplumed = Trueplumed = Truesets-DGMX_USE_PLUMED=ONfor GROMACS >= 2025 or try to patch GROMACS with PLUMED's patches for older (<=2024.x) versions (depends whether the loaded version has patches for that version of GROMACSplumed = 'patch'will try to patch GROMACS with PLUMED's patches regardless of the GROMACS versionplumed = Falsewill disable PLUMED functionality, even if it is found (neither apply patches nor set-DGMX_USE_PLUMED=OFFfor GROMACS >=2025<edit>improved logic is here</edit>I think that's the best of both worlds. It behaves like before for older GROMACS releases (before 2025) and takes the minimal-invasive route (avoiding to patch) when set to
Noneor.True