Project

General

Profile

Task #2623

Feature #2585: Infrastructure supporting external API

Allow extensible MDModules and forceProviders.

Added by Eric Irrgang about 1 year ago. Updated about 1 year ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Difficulty:
uncategorized
Close

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

Related to GROMACS - Feature #1972: external potential modules for refinement against experimental dataNew
Related to GROMACS - Feature #2229: Full Object Oriented Modularization of GROMACS MDRUN CodebaseNew
Related to GROMACS - Task #2492: implement force calculation via ForceProviders containing collections of IForceProviderNew
Related to GROMACS - Feature #2574: iForceSchedule AbstractionNew
Related to GROMACS - Task #2590: Essential Dynamics as module providing forcesNew
Related to GROMACS - Task #3040: Refactor Restraint moduleNew

Associated revisions

Revision 9864b201 (diff)
Added by Eric Irrgang about 1 year ago

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

History

#1 Updated by Gerrit Code Review Bot about 1 year ago

Gerrit received a related patchset '1' for Issue #2623.
Uploader: M. Eric Irrgang ()
Change-Id: gromacs~master~Ibb16d1453003213a49622810ed8bad4ed4b06e2d
Gerrit URL: https://gerrit.gromacs.org/8219

#2 Updated by Eric Irrgang about 1 year ago

  • Related to Feature #1972: external potential modules for refinement against experimental data added

#3 Updated by Eric Irrgang about 1 year ago

  • Related to Feature #2229: Full Object Oriented Modularization of GROMACS MDRUN Codebase added

#4 Updated by Eric Irrgang about 1 year ago

  • Related to Task #2492: implement force calculation via ForceProviders containing collections of IForceProvider added

#5 Updated by Eric Irrgang about 1 year ago

#6 Updated by Eric Irrgang about 1 year ago

  • Related to Task #2590: Essential Dynamics as module providing forces added

#7 Updated by Eric Irrgang about 1 year ago

  • Description updated (diff)

#8 Updated by Eric Irrgang about 1 year 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 4 months ago

  • Related to Task #3040: Refactor Restraint module added

Also available in: Atom PDF