Add backend for nblib listed forces API
authorJoe Jordan <ejjordan12@gmail.com>
Mon, 9 Nov 2020 14:55:16 +0000 (14:55 +0000)
committerPaul Bauer <paul.bauer.q@gmail.com>
Mon, 9 Nov 2020 14:55:16 +0000 (14:55 +0000)
commite2eeab4aea5be826cabe858a5584830b4c1fe641
tree95c53ec53853fc4d9306bbd50c9a8001739b9e1d
parent43db89edc489d73c84dbcd94bb32de25bf700d1a
Add backend for nblib listed forces API

This adds the back-end for the nblib API defined in
listed_forces/bondtypes.h and listed_forces/definitions.h.
Additionally, header and source are added for the private
implementations of these files. These are implementation details,
and are not visible to or interactable with by the user, so they
are not part of the public API. This backend is a ground up refactoring
 of gromacs, copying the force and energy kernels but rewriting the disipatch.
There are tests that compare forces and energies to gromacs.

Each function in this commit has at least one test for correctness,
though in most cases there are many more since the functionality is
cumulative. All of this functionality has undergone extensive design
review and code review already, so it should not be necessary to go
through the whole change with a fine-tooth comb. Suggestions on how
implementations could be improved are welcome. However, they will
likely need to be addressed as follow-up issues unless they are
trivial to fix.
32 files changed:
api/nblib/listed_forces/CMakeLists.txt
api/nblib/listed_forces/calculator.cpp [new file with mode: 0644]
api/nblib/listed_forces/conversions.hpp [new file with mode: 0644]
api/nblib/listed_forces/dataflow.hpp [new file with mode: 0644]
api/nblib/listed_forces/gmxcalculator.cpp [new file with mode: 0644]
api/nblib/listed_forces/gmxcalculator.h [new file with mode: 0644]
api/nblib/listed_forces/helpers.hpp [new file with mode: 0644]
api/nblib/listed_forces/kernels.hpp [new file with mode: 0644]
api/nblib/listed_forces/tests/CMakeLists.txt
api/nblib/listed_forces/tests/calculator.cpp [new file with mode: 0644]
api/nblib/listed_forces/tests/conversions.cpp [new file with mode: 0644]
api/nblib/listed_forces/tests/helpers.cpp [new file with mode: 0644]
api/nblib/listed_forces/tests/kernels.cpp [new file with mode: 0644]
api/nblib/listed_forces/tests/linear_chain_input.hpp [new file with mode: 0644]
api/nblib/listed_forces/tests/refdata/FourCenter_ListedForcesProperDihedralTest_CheckListed_0.xml [new file with mode: 0644]
api/nblib/listed_forces/tests/refdata/FourCenter_ListedForcesProperDihedralTest_CheckListed_1.xml [new file with mode: 0644]
api/nblib/listed_forces/tests/refdata/FourCenter_ListedForcesProperDihedralTest_CheckListed_2.xml [new file with mode: 0644]
api/nblib/listed_forces/tests/transformations.cpp [new file with mode: 0644]
api/nblib/listed_forces/tests/typetests.cpp [new file with mode: 0644]
api/nblib/listed_forces/transformations.cpp [new file with mode: 0644]
api/nblib/listed_forces/transformations.h [new file with mode: 0644]
api/nblib/molecules.cpp
api/nblib/pbc.hpp [new file with mode: 0644]
api/nblib/tests/CMakeLists.txt
api/nblib/tests/molecules.cpp
api/nblib/tests/pbcholder.cpp [new file with mode: 0644]
api/nblib/tests/testsystems.cpp
api/nblib/tests/topology.cpp
api/nblib/topology.cpp
api/nblib/topologyhelpers.cpp
api/nblib/util/user.h
docs/nblib/listed-dev.rst