Introduce the modular simulator
commitbedd003e5c1fc4fa5461fca0539a35cd41f40a5f
authorPascal Merz <pascal.merz@me.com>
Thu, 12 Sep 2019 00:50:28 +0000 (11 18:50 -0600)
committerMark Abraham <mark.j.abraham@gmail.com>
Sun, 15 Sep 2019 16:09:27 +0000 (15 18:09 +0200)
tree63f4371f45cec5d933b51623ed1a4fab2c47f37e
parent41cefdda6d5c7eb73e01193a1d93f250453cd38c
Introduce the modular simulator

The modular simulator  builds independent elements and signallers based on
the input and stores them in a respective vector. It then calls the setup function
of all elements. It then repeats the following loop until a stop condition is met:
* Perform domdec and load balancing if necessary
* Until the next neighbor-searching step:
  - Call signallers in order
  - Call elements in order, allow them to register run function in queue
  - increase step number
* Once the next neighbor-searching step is reached, run through the entire queue
  of function pointers
* Repeat

Supressed some warnings about redundant std::move necessary for legacy
compilers.

Increased default trajectory tolerance for force comparisons, which
were chosen arbitrarily originally.

Change-Id: Iaae1e20581df464090979da9b05d04829f267300
docs/doxygen/cycle-suppressions.txt
src/gromacs/mdlib/coupling.cpp
src/gromacs/mdlib/update.h
src/gromacs/mdrun/simulatorbuilder.h
src/gromacs/modularsimulator/CMakeLists.txt
src/gromacs/modularsimulator/compositesimulatorelement.cpp
src/gromacs/modularsimulator/compositesimulatorelement.h
src/gromacs/modularsimulator/modularsimulator.cpp [new file with mode: 0644]
src/gromacs/modularsimulator/modularsimulator.h [new file with mode: 0644]
src/programs/mdrun/tests/trajectorycomparison.cpp