Here is the pull request with the new interface for Wilson Clover fermions:
policy classes implement various definitions of the clover term (traditional and exponentiated);
both compact and non-compact memory layouts of the clover term are supported for compatibility with non-QCD theories;
the generate_instantiations.sh script now produces the correct instantiations, also for the compact clover type;
O(a) improvement in case of open boundary conditions works correctly for the CompactWilsonExpClover operator;
various tests for the CompactWilsonClover and the two new exponential clover operators have been added;
a specialized ExponentiateHermitean6by6 method for the exponentiation in the compact layout based on the Cayley-Hamilton theorem is used;
Further comments:
An additional test that Fabian did which is not part of this PR is checking that meson two-point correlation functions computed with a point source on a random gauge field agree between this new implementation and an openQCD based one up to machine precision.
Final remarks:
HMC, ie MDeriv, not supported for ExpClover formulations. To be added soon
Currently only WilsonExpClover runs entirely on GPUs; other formulations perform the evaluation of the clover term and its inverse on the CPU. This has little to no-effect in valence calculations where many inversions per config are performed.
Here is the pull request with the new interface for Wilson Clover fermions:
generate_instantiations.sh
script now produces the correct instantiations, also for the compact clover type;ExponentiateHermitean6by6
method for the exponentiation in the compact layout based on the Cayley-Hamilton theorem is used;Further comments:
Final remarks: