Feature #2886

Updated by Artem Zhmurov about 1 year ago

Make a CUDA version of SETTLE constraining algorithm.

Initial implementation that works should work as a separate instance, i.e. is should be able to copy coordinates and velocities to and from GPU, handle PBC, compute virial. The This infrastructure that maintains coordinates, velocities and PBC is temporary in this module and will be removed when it is integrated with other parts of the GPU-only loop. GPU version is enabled by setting the environment variable "GMX_SETTLE_GPU".

* -Stand-alone module that is enabled using environment variables.-
* A version of algorithm for derivatives.
* Unify virial reduction with LINCS
* Unify SettleParameters and their initialization with CPU version
* Better integration with CPU version (e.g. checks for input consistency)
* Better tests

Current version: