Skip to content

Conversation

@GioPede
Copy link

@GioPede GioPede commented Jun 11, 2021

Hello, this is a modification to the QDPCloverTerm and CloverFermActParams classes to allow calculations with the exponential version of the Wilson Clover Action (or Stabilized Wilson Fermions), see DOI: 10.1016/j.cpc.2020.107355 for more details.
I had contacted B. Joo about a year ago, the solution I made then (and that I have been using since) was not really the optimal one, as it required a lot of file duplication.
This version here instead adds an optional parameter to the clover action , which defaults to false, the regular case. If it is true then some small changes are made in the creation of the CloverTerm linear operator and an exponentiate function is called.

The changes to the file lib/actions/ferm/linop/clover_term_qdp_w.h are minimal, and hopefully not breaking for any existing code.
The changes in the lib/actions/ferm/fermacts/clover_fermact_params_w.h and lib/actions/ferm/fermacts/clover_fermact_params_w.cc since the new parameter default to false surely are non breaking.
There is just a new file that I called lib/actions/ferm/linop/clover_term_qdp_stabilized_helpers.h that contains the exponentiation of the clover term at the lattice site level. This latter is also added to the proper Makefile.am. (Probably one needs to add it to the CMakeLists.txt file, but I have little experience with those for chroma, so I'd rather have a later commit fix it)

The implementation right now only works with solvers that load the linear operator from the CPU and do not build it directly on an accelerator. I have tested this with the regular CLOVER solver, the QUDA_CLOVER_INVERTER and QPHIX_CLOVER_INVERTER solvers, all with results that are within the solver precision. These have also been compared with my old implementation which was tested against the openQCD version of the solver used in the paper linked above.

This only works for spectroscopy, not for gauge generation, as there are no derivatives implemented for this new action yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants