Introduce topology class for modular simulator
commit4a75b9db75d31f0cc2b9cfe85702f733f862fef2
authorPascal Merz <pascal.merz@me.com>
Thu, 27 Jun 2019 07:09:57 +0000 (27 01:09 -0600)
committerPascal Merz <pascal.merz@colorado.edu>
Thu, 5 Sep 2019 21:25:42 +0000 (5 23:25 +0200)
tree1a39cf5086644a6ed116a5086b7e9404cc808bcc
parent0849f50785a30d12e5d6845b672a469b5e6fa15d
Introduce topology class for modular simulator

The topology object owns the local topology and holds a pointer to the global
topology owned by the ISimulator.

The local topology is only infrequently changed if domain decomposition is
on, and never otherwise. The topology therefore offers elements to register
as ITopologyClients. If they do so, they get an updated local topology whenever
it is changed, and can rely that their copy is valid until the next update. The
domain decomposition element is defined as friend class to be able to update
the local topology when needed.

This commit is part of the commit chain introducing the new modular
simulator. Please see docs/doxygen/lib/modularsimulator.md for details
on the chosen approach. As the elements of the new simulator cannot all
be introduced in one commit, it might be worth to view Iaae1e205 to see
a working prototype of the approach.

Change-Id: I89e4006809ac74785205c549781a90b2d8233688
docs/doxygen/lib/modularsimulator.md
src/gromacs/modularsimulator/modularsimulatorinterfaces.h
src/gromacs/modularsimulator/topologyholder.cpp [new file with mode: 0644]
src/gromacs/modularsimulator/topologyholder.h [new file with mode: 0644]