Fermionic Flow - lattice/quda GitHub Wiki

The fermionic Wilson flow (calling $\psi$ a fermion) is defined similarly to Wilson flow of gauge fields, where all the fields in question are flowed forward in time resulting (calling flowed field $\psi_f$); the details of both algorithm classes are given in Appendix D of [this test] (https://arxiv.org/pdf/1302.5246). Conveniently, updates to fermionic fields require only knowledge of intermediate flowed gauge fields, allowing for MRHS support. The QUDA implementation for normal fermionic flow is contained in the performGFlowQuda routine.

In calculations of flow time dependance for quantities like the chiral condensate, we must calculate the adjoint flow of fermionic fields ($\psi_{af}$) in addition to normal flow. Adjoint flow amounts to integrating flow equations backwards in time -- a naive implementation of this is numerically unstable and thus impractical. Backwards integration can be circumvented by two schemes detailed in Appendix E of [this test] (https://arxiv.org/pdf/1302.5246), both of which are implemented in QUDA. The first is a “safe” method that can integrate $n$ flow steps in $\mathcal O (n^2)$ time. The second is a “hierarchical method” that, by saving $m$ intermediate gauge fields through the course of integration, and conducting integration in “blocks”, can complete the integration in approximately and order of magnitude faster time. The respective routines are contained in performAdjGFlowSafe and performAdjGFlowHier. Note that for a large number of (perhaps all) flowed 3-point functions of interest, trace rules can allow us to bypass the need for adjoint flow and rephrase our problem in terms of forward flow, thereby saving considerable computational time. Beware that for a given stochastic vector set, adjoint flow may achieve greater precision than with the forward flow-rephrased problem, so extra care will need to be taken to achieve the same stochastic efficiency. For flowed 4-point functions and higher (more than two operator insertions), adjoint flow cannot be bypassed.

The test su3_fermion_test contains examples of usage for all 3 flow routines mentioned above. The first check carried out is a test of equivalence between safe and hierarchical adjoint flow. The second check is a verification of $\langle \psi_{af} , \psi \rangle = \langle \psi, \psi_f \rangle$.

Meaningful command line arguments specific to this test are (currently written for wilson fermions, but readily applicable to other variants as well):

  • --su3-smear-steps , present in su3_test, which sets the total amount of flow steps

  • --su3-smear-epsilon , present in su3_test, which sets the width of time $\epsilon$ evolved by in one integration step

  • --su3-adj-gauge-nsave , sets the amount of intermediate gauge fields to save when performing hierarchical adjoint flow

  • --su3-hier-threshold , sets the maximum black length, under which adjoint integration defaults to “safe” rather than “hierarchical”