Use ObservablesReducer for check of DD bonded interaction count.
authorMark Abraham <mark.j.abraham@gmail.com>
Thu, 23 Sep 2021 09:57:16 +0000 (09:57 +0000)
committerM. Eric Irrgang <mei2n@virginia.edu>
Thu, 23 Sep 2021 09:57:16 +0000 (09:57 +0000)
commit4cec4672756534c7c5c22729d29c30c38de2c791
treee17318762ad60a7e37c09e5d668b2a07c81229d2
parentce0fc73a169bd7bcdeb806e3ba5348db819e04fd
Use ObservablesReducer for check of DD bonded interaction count.

The lifetime of the local and global state has been shifted, so that
the LocalTopologyChecker can now be initialized with the handles it
might need to use to report an error, even though one of those handles
will not contain valid data until after the first DD partition.

This simplifies ComputeGlobalsElement from the modular simulator.

The changes to StatePropagatorData motivated by this change reduce the
number of copies of x and v vectors that were being done every
partitioning step. Those are needed only when the state backup is
taken so that trajectory output can be handled correctly.

The check is now implemented for minimizers, where previously it
was not.

Refs #3887 #3421
28 files changed:
src/gromacs/domdec/builder.h
src/gromacs/domdec/domdec.cpp
src/gromacs/domdec/domdec.h
src/gromacs/domdec/localtopologychecker.cpp
src/gromacs/domdec/localtopologychecker.h
src/gromacs/mdlib/md_support.cpp
src/gromacs/mdlib/md_support.h
src/gromacs/mdlib/stat.cpp
src/gromacs/mdlib/update_vv.cpp
src/gromacs/mdlib/update_vv.h
src/gromacs/mdrun/isimulator.h
src/gromacs/mdrun/md.cpp
src/gromacs/mdrun/mimic.cpp
src/gromacs/mdrun/minimize.cpp
src/gromacs/mdrun/rerun.cpp
src/gromacs/mdrun/runner.cpp
src/gromacs/mdrun/simulatorbuilder.cpp
src/gromacs/mdrun/simulatorbuilder.h
src/gromacs/mdrun/tpi.cpp
src/gromacs/modularsimulator/computeglobalselement.cpp
src/gromacs/modularsimulator/computeglobalselement.h
src/gromacs/modularsimulator/domdechelper.cpp
src/gromacs/modularsimulator/domdechelper.h
src/gromacs/modularsimulator/simulatoralgorithm.cpp
src/gromacs/modularsimulator/statepropagatordata.cpp
src/gromacs/modularsimulator/statepropagatordata.h
src/gromacs/modularsimulator/topologyholder.cpp
src/gromacs/modularsimulator/topologyholder.h