Task #2623
Feature #2585: Infrastructure supporting external API
Allow extensible MDModules and forceProviders.
Description
gmxapi milestone 6 as described in #2585
Provide for runtime extension of MDModules and the initialization of force providers.
This task supports gmxapi milestones 7, 8, and 9, but the accompanying Gerrit change is small and has no dependencies, so it is submitted separately. This change also does not migrate the current lone IForceProvider because the binding protocols can be treated as separate issues. Alternatively, progress in other abstractions currently being developed could remove the need to bundle MDModules together like this, but for the moment it seems like the appropriate container.
Related issues
Associated revisions
History
#1 Updated by Gerrit Code Review Bot over 2 years ago
Gerrit received a related patchset '1' for Issue #2623.
Uploader: M. Eric Irrgang (ericirrgang@gmail.com)
Change-Id: gromacs~master~Ibb16d1453003213a49622810ed8bad4ed4b06e2d
Gerrit URL: https://gerrit.gromacs.org/8219
#2 Updated by Eric Irrgang over 2 years ago
- Related to Feature #1972: external potential modules for refinement against experimental data added
#3 Updated by Eric Irrgang over 2 years ago
- Related to Feature #2229: Full Object Oriented Modularization of GROMACS MDRUN Codebase added
#4 Updated by Eric Irrgang over 2 years ago
- Related to Task #2492: implement force calculation via ForceProviders containing collections of IForceProvider added
#5 Updated by Eric Irrgang over 2 years ago
- Related to Feature #2574: iForceSchedule Abstraction added
#6 Updated by Eric Irrgang over 2 years ago
- Related to Task #2590: Essential Dynamics as module providing forces added
#7 Updated by Eric Irrgang over 2 years ago
- Description updated (diff)
#8 Updated by Eric Irrgang over 2 years ago
- Status changed from New to Resolved
The gmx::MDModules object created during launch of Mdrunner now owns a list of MDModule objects through their IMDModule handle. Modules in the list may provide an IForceProvider.
In future work, the other IMDModule interfaces should be handled, and we should do whatever we need to to accommodate the initialization requirements such that built-in modules (electric field) can be handled the same way as externally provided modules. This is deferred to a separate issue for GROMACS 2020.
#9 Updated by Eric Irrgang over 1 year ago
- Related to Task #3040: Refactor Restraint module added
#10 Updated by Eric Irrgang about 1 year ago
- Status changed from Resolved to Closed
Allow extensible MDModules and forceProviders.
supports gmxapi milestone 6, described at #2585.
MDModules::Impl gets a std::vector for (shared) ownership of objects
providing the IMDModule interface. An add() method is added to the
MDModules public member functions, but the binding protocols are
separated into separate issues to allow minimal changes and varying
dependencies on other pending changes.
Relates to #1972, #2229, #2492, #2574, #2590.
Refs #2623
Change-Id: Ibb16d1453003213a49622810ed8bad4ed4b06e2d