Here is the patch for the Wilson flow. It was based on the branch from my previous pull request (looks like you haven't pulled that yet) so unfortunately the file diffs contain both sets of changes. In summary I refactored the Wilson flow class to have adaptive and iterative in different derived class of a common base. This cleans up a lot of stuff and allows the adaptive smearing to be access through the Smearing base class ::smear operation. I also implemented Ramos' definition of the adaptive smearing update.
Best,
Chris
Full change list:
Refactored Wilson flow class; previously the class implemented both iterative and adaptive smearing, but only the iterative method was accessible through the Smearing base class. The implementation of Smearing also forced a clunky need to pass iterative smearing parameters through the constructor but adaptive smearing parameters through the function call. Now there is a WilsonFlowBase class that implements common functionality, and separate WilsonFlow (iterative) and WilsonFlowAdaptive (adaptive) classes, both of which implement Smearing virtual functions.
Modified the Wilson flow adaptive smearing step size update to implement the original Ramos definition of the distance, where previously it used the norm of a difference which scales with the volume and so would choose too coarse or too fine steps depending on the volume. This is based on Chulwoo's code.
Added a test comparing adaptive (with tuneable tolerance) to iterative Wilson flow smearing on a random gauge configuration.
Hi Peter,
Here is the patch for the Wilson flow. It was based on the branch from my previous pull request (looks like you haven't pulled that yet) so unfortunately the file diffs contain both sets of changes. In summary I refactored the Wilson flow class to have adaptive and iterative in different derived class of a common base. This cleans up a lot of stuff and allows the adaptive smearing to be access through the Smearing base class ::smear operation. I also implemented Ramos' definition of the adaptive smearing update.
Best, Chris
Full change list:
Refactored Wilson flow class; previously the class implemented both iterative and adaptive smearing, but only the iterative method was accessible through the Smearing base class. The implementation of Smearing also forced a clunky need to pass iterative smearing parameters through the constructor but adaptive smearing parameters through the function call. Now there is a WilsonFlowBase class that implements common functionality, and separate WilsonFlow (iterative) and WilsonFlowAdaptive (adaptive) classes, both of which implement Smearing virtual functions.
Modified the Wilson flow adaptive smearing step size update to implement the original Ramos definition of the distance, where previously it used the norm of a difference which scales with the volume and so would choose too coarse or too fine steps depending on the volume. This is based on Chulwoo's code.
Added a test comparing adaptive (with tuneable tolerance) to iterative Wilson flow smearing on a random gauge configuration.