Note that other functions may call some of these functions, like [`flw_adapt`](@ref) depending on [`flw`](@ref), [`bflw!`](@ref) depending on [`bflw_step!`](@ref) or [`propagator!`](@ref) depending on [`CG!`](@ref). The fields used in the innermost function will also be modified by the outermost methods.
## Functions
The functions [`Dw!`](@ref), [`g5Dw!`](@ref) and [`DwdagDw!`](@ref) are all related to the
function backflow(psi, U, Dt, nsave::Int64, gp::GaugeParm, dpar::DiracParam, lp::SpaceParm, ymws::YMworkspace, dws::DiracWorkspace)
Performs one step back in flow time for the fermion field, according to 1302.5246. The fermion field must me that of the time-slice Dt and is flowed back to the first time-slice
Performs the integration of the adjoint flow for the fermion field, according to 1302.5246. The fermion field must me that of the time-slice Dt and is flowed back to the first time-slice
nsave is the total number of gauge fields saved in the process
"""
function backflow(psi,U,Dt,maxnsave::Int64,gp::GaugeParm,dpar::DiracParam,lp::SpaceParm,ymws::YMworkspace,dws::DiracWorkspace)
function backflow(psi,U,Dt,maxnsave::Int64,gp::GaugeParm,dpar::DiracParam,lp::SpaceParm,int::FlowIntr,ymws::YMworkspace,dws::DiracWorkspace)
int=wfl_rk3(Float64,0.01,1.0)# Default integrator, it has to be order 3 rk but in can be zfl
# Default integrator is wfl_rk3(Float64,0.01,1.0), it has to be order 3 rk but in can be zfl
@timeit"Backflow integration"begin
@timeit"GPU to CPU"U0=Array(U)
...
...
@@ -98,6 +98,7 @@ function backflow(psi, U, Dt, maxnsave::Int64, gp::GaugeParm, dpar::DiracParam,
function Nablanabla!(so, U, si, dpar::DiracParam, dws::DiracWorkspace, lp::SpaceParm{4,6,B,D})
Computes /`/` \\nabla^* \\nabla /`/` `si` and stores it in `si`.
Computes /`/` \\nabla^* \\nabla /`/` `si` and stores it in `so`.
"""
function Nablanabla!(so,U,si,dpar::DiracParam,dws::DiracWorkspace,lp::SpaceParm{4,6,BC_PERIODIC,D})where{D}
...
...
@@ -216,6 +219,7 @@ function Nablanabla!(so, U, si, dpar::DiracParam, dws::DiracWorkspace, lp::Space
end
returnnothing
end
function Nablanabla!(so,U,si,dpar::DiracParam,dws::DiracWorkspace,lp::Union{SpaceParm{4,6,BC_SF_ORBI,D},SpaceParm{4,6,BC_SF_AFWB,D},SpaceParm{4,6,BC_OPEN,D}})where{D}
SF_bndfix!(si,lp)
@timeit"Laplacian"begin
...
...
@@ -238,7 +242,7 @@ function krnl_Nablanabla(so, U, si, th, lp::SpaceParm{4,6,BC_OPEN,D}) where {D}
so[b,r]=-4*si[b,r]
bu1,ru1=up((b,r),1,lp)
bu1,ru1=up((b,r),1,lp)
bd1,rd1=dw((b,r),1,lp)
bu2,ru2=up((b,r),2,lp)
bd2,rd2=dw((b,r),2,lp)
...
...
@@ -313,9 +317,29 @@ function krnl_Nablanabla(so, U, si, th, lp::Union{SpaceParm{4,6,BC_SF_ORBI,D},Sp
@@ -3,13 +3,14 @@ using LatticeGPU, CUDA, TimerOutputs
#Test for the relation K(t,y;0,n)^+ Dw(n|m)^{-1} e^(ipm) = D(p)^{-1} exp(4t sin^2(p/2)) e^{ipn} with a given momenta (if p=0 its randomized), spin and color
#Kernel en 1207.2096
println(" # Free fermion propagator for backflow")
#Test for the relation K(t,y;0,n) Dw(n|m)^{-1} e^(ipm) = D(p)^{-1} exp(-4t sin^2(p/2)) e^{ipn} with a given momenta (if p=0 its randomized), spin and color
#Kernel en 1207.2096
#Kernel from 1207.2096
println(" # Free fermion propagator for frontflow")