Project

General

Profile

Task #2590

Essential Dynamics as module providing forces

Added by Christian Blau about 1 year ago. Updated about 1 year ago.

Status:
New
Priority:
Normal
Category:
mdrun
Target version:
Difficulty:
uncategorized
Close

Description

Essential dynamics, along with the pull-code, is a prominent place, where external forces are applied to an MD simulation. With the IForceProvider and LocalAtomSet infrastructure in place, the essential dynamics code may now become modular, thus easier to understand and test.

Following this moderninsation sampling along reaction coordinates will be easier to implement, especially for
- AWH-sampling along eigenvectors.
- plumed integrations


Checklist

  • change essential dynamics data structure to separate between constant input data, state data and temporary data.
  • decouple from domain decomposition by using LocalAtomSets
  • read inputfile into key value tree

Related issues

Related to GROMACS - Feature #2585: Infrastructure supporting external APIResolved
Related to GROMACS - Task #2623: Allow extensible MDModules and forceProviders.Resolved
Related to GROMACS - Task #3040: Refactor Restraint moduleNew

Associated revisions

Revision 7166b5bd (diff)
Added by Christian Blau about 1 year ago

Split essential dynamics reading routine

Introduce a class that handles the .edi file magic number reading and
versioning.

Split off working memory allocation and file version checking from
parameter reading.

Part of #2590

Change-Id: I22ee0294d464ba3acc2e5c54b3a42d97c90cbb71

Revision 086192e0 (diff)
Added by Christian Blau about 1 year ago

Make essential dynamics a C++ type.

Confer also the reform of the rotational pull data, Ic03919f68c, for the
conversion strategy for gmx_edsam.

Part of #2590

Change-Id: Iece42512a8c5222d86ab8545ce2fc12aa1c6ffc7

Revision 8f0bdeda (diff)
Added by Christian Blau about 1 year ago

Split essential dynamics eigenvector reading.

Split off input parameter reading in all t_eigvec from working memory
allocation for buffers or simulation state variables. Preparation to
splitting t_eigvec and t_edflood data structures in constant input
data, temporary buffers, and data describing the simulation state.

Moved the initialReferencePosition and referenceSlope out of t_eigvec
into t_edflood, because it is only used in flooding and is meaningless
for all other data structures using t_eigvec.

Part of #2590

Change-Id: Id01aeca97489a02a6ed7c7ed2789fd11b978a115

Revision e86d25e3 (diff)
Added by Christian Blau about 1 year ago

Essential dynamics functions use const-ref for input t_edpar.

Made function calls to t_edpar carrying input parameters use const &, so
that we can later use a const parameter storage class.

Added documentation and trivial modernisation to functions and moved
them into anonymous namespace.

Part of #2590

Change-Id: I1910f45c3695ce6b1c234f67bd3ecaa279541e26

Revision 2dfa2135 (diff)
Added by Christian Blau about 1 year ago

Remove Debug Helpers from Essential Dynamics code.

dump_edi_positions, dump_edi_eigenvecs, and dump_edi rely on the data
layout of the essential dynamics code and leave a large foot-print of
changes when refactoring the code.

All information dumped is reasonably accessible with a modern debugger,
also on

Part of #2590

Change-Id: Icbd60a3347014df365aa17d47bcbbb18c2566a83

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

Revision 740c951b (diff)
Added by Christian Blau about 1 year ago

Store essential dynamics parameters as vectors instead of linked list.

Multiple sets of essential dynamics input parameters were stored as a
user implementation of a C-style forward linked list. We now use a
std::vector instead.

This simplifies parameter reading and makes it easier for read_edi to
return a vector of read parameters, which is now used.

Part of #2590

Change-Id: I2ad0705558deb8da7bd3fac35602364eadc4fc8d

Revision 6b59b536 (diff)
Added by Christian Blau about 1 year ago

Convert essential dynamics C-structs to C++ pt1.

Convert enums to EssentailDyanmicsTYpe and EssentialDynamicsStructure.
Convert t_eigvec and t_edvecs and t_edflood to documented C++ structs.

Part of #2590

Change-Id: I90d41708453eea38bbbc69177627999e8eabfe09

History

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

Gerrit received a related patchset '1' for Issue #2590.
Uploader: Christian Blau ()
Change-Id: gromacs~master~I22ee0294d464ba3acc2e5c54b3a42d97c90cbb71
Gerrit URL: https://gerrit.gromacs.org/8115

#2 Updated by Eric Irrgang about 1 year ago

  • Related to Feature #2585: Infrastructure supporting external API added

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

Gerrit received a related patchset '1' for Issue #2590.
Uploader: Christian Blau ()
Change-Id: gromacs~master~Id01aeca97489a02a6ed7c7ed2789fd11b978a115
Gerrit URL: https://gerrit.gromacs.org/8121

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

Gerrit received a related patchset '1' for Issue #2590.
Uploader: Christian Blau ()
Change-Id: gromacs~master~Iece42512a8c5222d86ab8545ce2fc12aa1c6ffc7
Gerrit URL: https://gerrit.gromacs.org/8129

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

Gerrit received a related patchset '1' for Issue #2590.
Uploader: Christian Blau ()
Change-Id: gromacs~master~I1c2298d11d1db5d10a35d5131cc1ef9b546c04ca
Gerrit URL: https://gerrit.gromacs.org/8131

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

Gerrit received a related patchset '1' for Issue #2590.
Uploader: Christian Blau ()
Change-Id: gromacs~master~I1910f45c3695ce6b1c234f67bd3ecaa279541e26
Gerrit URL: https://gerrit.gromacs.org/8132

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

Gerrit received a related patchset '1' for Issue #2590.
Uploader: Christian Blau ()
Change-Id: gromacs~master~Icbd60a3347014df365aa17d47bcbbb18c2566a83
Gerrit URL: https://gerrit.gromacs.org/8157

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

Gerrit received a related patchset '1' for Issue #2590.
Uploader: Christian Blau ()
Change-Id: gromacs~master~I2ad0705558deb8da7bd3fac35602364eadc4fc8d
Gerrit URL: https://gerrit.gromacs.org/8160

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

Gerrit received a related patchset '1' for Issue #2590.
Uploader: Christian Blau ()
Change-Id: gromacs~master~I90d41708453eea38bbbc69177627999e8eabfe09
Gerrit URL: https://gerrit.gromacs.org/8161

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

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

#11 Updated by Eric Irrgang about 1 year ago

  • Related to Task #2623: Allow extensible MDModules and forceProviders. added

#12 Updated by Eric Irrgang 3 months ago

  • Related to Task #3040: Refactor Restraint module added

Also available in: Atom PDF