Open SaltyChiang opened 4 months ago
I'm wondering if I should just override the old interface computeGaugeFixingOVRQuda
or add a new interface function. Please let me know if you have any considerations.
I tested the performance and didn't see any significant performance regression compared to the old implementation. But more testing is definitely needed.
@Jenkins test this please
Thanks for this PR @SaltyChiang. I don't think there should be any performance change, so I think we could just replace the old interface with the new one.
Can you go ahead and make this change to your PR? I think you'll need to update the MILC interface code (milc_interface.cpp) since that code calls the older interface, but that should be an easy change.
I implemented a new over-relaxation gauge-fixing algorithm. The major difference between the new and the old implementations is we can obtain the rotation field now. Our workflow often requires this.
The rotation field $g(x)$ is defined as follows: $$ U^\prime\mu(x)=g(x)U\mu(x)g^\dag(x+\hat{\mu}) $$
There are also some utility functions such as
gaugeRotation
andgaugeFixQuality
which can be exposed inquda.h
, I'll add them later.