function propagator(U, dpar::DiracParam{T}, dws::DiracWorkspace, lp::SpaceParm, maxiter::Int64, tol::Float64, y::NTuple{4,Int64}, c::Int64, s::Int64)
function propagator!(pro,U, dpar::DiracParam{T}, dws::DiracWorkspace, lp::SpaceParm, maxiter::Int64, tol::Float64, y::NTuple{4,Int64}, c::Int64, s::Int64)
Returns the fermionic progapator for a source at point `y` with color `c` and spin `s`. If the last three arguments are replaced by `time::Int64`, the source is replaced
Saves the fermionic progapator in pro for a source at point `y` with color `c` and spin `s`. If the last three arguments are replaced by `time::Int64`, the source is replaced
by a random source in spin and color at t = `time`.
"""
function propagator(U,dpar::DiracParam{T},dws::DiracWorkspace,lp::SpaceParm,maxiter::Int64,tol::Float64,y::NTuple{4,Int64},c::Int64,s::Int64)where{T}
function propagator!(pro,U,dpar::DiracParam{T},dws::DiracWorkspace,lp::SpaceParm,maxiter::Int64,tol::Float64,y::NTuple{4,Int64},c::Int64,s::Int64)where{T}
function krnlg5!(src)
b=Int64(CUDA.threadIdx().x)
...
...
@@ -17,23 +17,22 @@ function propagator(U, dpar::DiracParam{T}, dws::DiracWorkspace, lp::SpaceParm,
@@ -67,7 +65,7 @@ Returns the propagator from the t=0 boundary to the bulk for the SF boundary con
For the propagator from T to the bulk, use the function Tbndpropagator(U, dpar::DiracParam{T}, dws::DiracWorkspace, lp::SpaceParm{4,6,1,D}, maxiter::Int64, tol::Float64, c::Int64, s::Int64)
"""
function bndpropagator(U,dpar::DiracParam{T},dws::DiracWorkspace,lp::SpaceParm{4,6,1,D},maxiter::Int64,tol::Float64,c::Int64,s::Int64)where{T,D}
function bndpropagator!(pro,U,dpar::DiracParam{T},dws::DiracWorkspace,lp::SpaceParm{4,6,1,D},maxiter::Int64,tol::Float64,c::Int64,s::Int64)where{T,D}
function krnlg5!(src)
b=Int64(CUDA.threadIdx().x)
...
...
@@ -87,20 +85,18 @@ function bndpropagator(U, dpar::DiracParam{T}, dws::DiracWorkspace, lp::SpacePar
function Tbndpropagator(U, dpar::DiracParam{T}, dws::DiracWorkspace, lp::SpaceParm{4,6,1,D}, maxiter::Int64, tol::Float64, c::Int64, s::Int64)
Returns the propagator from the t=T boundary to the bulk for the SF boundary conditions for a source with color 'c' and spin 's'. The factor c_t is included while the factor 1/sqrt(V) is not.
For the propagator from t=00 to the bulk, use the function bndpropagator(U, dpar::DiracParam{T}, dws::DiracWorkspace, lp::SpaceParm{4,6,1,D}, maxiter::Int64, tol::Float64, c::Int64, s::Int64)
For the propagator from t=0 to the bulk, use the function bndpropagator(U, dpar::DiracParam{T}, dws::DiracWorkspace, lp::SpaceParm{4,6,1,D}, maxiter::Int64, tol::Float64, c::Int64, s::Int64)
"""
function Tbndpropagator(U,dpar::DiracParam{T},dws::DiracWorkspace,lp::SpaceParm{4,6,1,D},maxiter::Int64,tol::Float64,c::Int64,s::Int64)where{T,D}
function Tbndpropagator!(pro,U,dpar::DiracParam{T},dws::DiracWorkspace,lp::SpaceParm{4,6,1,D},maxiter::Int64,tol::Float64,c::Int64,s::Int64)where{T,D}
function krnlg5!(src)
b=Int64(CUDA.threadIdx().x)
...
...
@@ -134,19 +130,51 @@ function Tbndpropagator(U, dpar::DiracParam{T}, dws::DiracWorkspace, lp::SpacePa
Returns the boundary to boundary propagator of the Schrodinger functional given that bnd pro is the propagator from t = 0 to the bulk, given by the function bndpropagator.
"""
function bndtobnd(bndpro::AbstractArray,U::AbstractArray,dpar::DiracParam,dws::DiracWorkspace,lp::SpaceParm{4,6,1,D})where{D}
function krnl_bndtobnd!(psi::AbstractArray,bndp::AbstractArray,U::AbstractArray,lp)