etmc/tmLQCD — pull request #80 by urbach (2012-03-19 13:29:15+00:00)
Title: Clover Twisted

This is a running implementation of twisted clover: acceptance is obtained and the HMC behaves as it should. However, it needs testing, so the pull request shouldn't be merged yet. As we do not have any result to compare with we have to come up with smart tests (apart from the usual ones). There are limiting cases checke, i.e. with mu = 0, c_sw != 0 the new monomial is tested, as well as with c_sw = 0 and mu != 0

- there is a new monomial CLOVERDET which can do only even/odd preconditioned twisted plus clover

- no mass preconditioinig yet, no NDPOLY support yet, no PHMC yet.

- the tracelog part needed in case of even/odd needs to be treated in a more general way in the future, maybe glued to the corresponding CLOVERDET monomial. The trlog monomial is currently not an input monomial but generated automatically internally. The question is here whether this monomial is really needed to be flexible regarding on which timescale it should be integrated on.

- I have added quite a bit of docu to explain what is done

- there is also an inverter for the twisted clover Dirac operator. As the result is checked at the end of the inversion (with the non even/odd matrix) and the check is always passed, I consider this part and the even/odd implementation as successfully tested. However, a test against e.g. the code of Luescher would be welcome.

- sample input files are available for the hmc and the inverter.

also added a CLOVERDETRATIO monomial for preconditioning and shift parameters rho/rho1. The preconditioning is done slightly different from the pure twisted mass case, see the docu. The main advantage of this implementation is that the variation involved does not depend on the shift, which reduces the effort drastically. This implies that mu and kappa both have to agree in between cloverdet and cloverdetratio monomials in order to get the desired preconditioning effect.

In the input file you can write now:

BeginMonomial CLOVERDET
Timescale = 1
2KappaMu = 0.01
# nominator shift
rho = 0.1
CSW = 1.00
kappa = 0.138
AcceptancePrecision = 1.e-20
ForcePrecision = 1.e-12
Name = cloverdet
solver = CG
EndMonomial

BeginMonomial CLOVERDETRATIO
Timescale = 1
2KappaMu = 0.01
# nominator shift
rho = 0.0
# denominator shift to cancel the nominator shift in CLOVERDET
rho2 = 0.1
CSW = 1.00
kappa = 0.138
AcceptancePrecision = 1.e-20
ForcePrecision = 1.e-12
Name = cloverdetratio
solver = CG
EndMonomial