Add restraints framework.
commit0c6b7e5aff6cc0274cfec9fa3eaa958b42e5e159
authorM. Eric Irrgang <ericirrgang@gmail.com>
Wed, 3 Oct 2018 08:54:03 +0000 (3 11:54 +0300)
committerMark Abraham <mark.j.abraham@gmail.com>
Fri, 12 Oct 2018 11:58:44 +0000 (12 13:58 +0200)
tree9764009f455164627de7c031b5f1c4618bd6a8d3
parent1113f056319750c05503c4b965e49b5eb0bd85c1
Add restraints framework.

Extension code can implement IRestraintPotential and register to
provide MD forces and energy. Client code is not necessarily expected
to implement the interface directly, but likely with the help of
template headers.

Restraint functors should ultimately be retrieved or instantiated from
factory functions in the API Context manager provided to the simulation,
but in the current implementation, registered restraints are made
available during launch through the MdrunnerBuilder.

For sample extension code, see
https://github.com/kassonlab/sample_restraint

Supports gmxapi milestone 9,

Refs #2585

Change-Id: I48d57570721223eacca957c9a0f7ae98163ab6ff
14 files changed:
src/gromacs/CMakeLists.txt
src/gromacs/mdrun/runner.cpp
src/gromacs/mdrun/runner.h
src/gromacs/mdtypes/imdpoptionprovider.h
src/gromacs/restraint/CMakeLists.txt [new file with mode: 0644]
src/gromacs/restraint/manager.cpp [new file with mode: 0644]
src/gromacs/restraint/manager.h [new file with mode: 0644]
src/gromacs/restraint/restraintmdmodule-impl.h [new file with mode: 0644]
src/gromacs/restraint/restraintmdmodule.cpp [new file with mode: 0644]
src/gromacs/restraint/restraintmdmodule.h [new file with mode: 0644]
src/gromacs/restraint/restraintpotential.cpp [new file with mode: 0644]
src/gromacs/restraint/restraintpotential.h [new file with mode: 0644]
src/gromacs/restraint/tests/CMakeLists.txt [new file with mode: 0644]
src/gromacs/restraint/tests/manager.cpp [new file with mode: 0644]