Implemented lagrange 2pt and IO. Tests needed.

parent 6dcebc0d
......@@ -29,9 +29,9 @@ while RUN_ON
@timeit "HMC" Gauge_update()
@timeit "Two point function" begin
@timeit "Two point functions" begin
Frontflow_pt()
two_pt_lagrange()
Two_pt_lagrange()
end
@timeit "One point function" Backflow_pt()
......
......@@ -135,6 +135,10 @@ function save_data()
BDIO_write!(fb, [convert(Int32,params["Frontflow"]["nsteps"])])
BDIO_write!(fb, [convert(Int32,params["Backflow"]["N_noise"])])
BDIO_write!(fb, [convert(Int32,length(flow_times))])
BDIO_write!(fb, [convert(Int32,params["Frontflow"]["t_zero"])])
BDIO_write!(fb, [convert(Int32,params["Frontflow"]["epsilon"])])
BDIO_write!(fb, [convert(Int32,params["Frontflow"]["tsource"])])
BDIO_write!(fb, [convert(Int32,params["Backflow"]["tsource"])])
length(flow_times) > 0 ? BDIO_write!(fb, flow_times) : nothing
BDIO_write_hash!(fb)
......@@ -151,7 +155,7 @@ function save_data()
BDIO_write!(fb,pp_corr_t[:,noi,fl])
BDIO_write!(fb,ap_corr_t[:,noi,fl])
BDIO_write!(fb,pp_hat_t[:,noi,fl])
BDIO_write!(fb,pphat_t[:,noi,fl])
BDIO_write!(fb,pptilde_t[:,noi,fl])
end
end
......@@ -172,8 +176,6 @@ function save_data()
BDIO_write!(fb,ChiDchi[:,noi,fl])
BDIO_write!(fb,ChiDchi_cfl[:,noi,fl])
BDIO_write!(fb,[phat_t[noi,fl]])
end
end
......
......@@ -69,7 +69,7 @@ function Frontflow_pt() # Will be Frontflow
pp_corr_t0[:,noi] .= zero(Float64)
ap_corr_t0[:,noi] .= zero(ComplexF64)
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pp_corr_t0[t,noi] += pp_density[b,r]
......@@ -94,7 +94,7 @@ function Frontflow_pt() # Will be Frontflow
ap_density .= Array(dot.(psi,dmul.(Gamma{4},psi)))
pp_corr_t[:,noi,tstep] .= zero(Float64)
ap_corr_t[:,noi,tstep] .= zero(ComplexF64)
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pp_corr_t[t,noi,tstep] += pp_density[b,r]
......@@ -109,7 +109,7 @@ function Frontflow_pt() # Will be Frontflow
ap_density .= Array(dot.(psi,dmul.(Gamma{4},psi)))
pp_corr_t[:,noi,end] .= zero(Float64)
ap_corr_t[:,noi,end] .= zero(ComplexF64)
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pp_corr_t[t,noi,end] += pp_density[b,r]
......@@ -172,7 +172,7 @@ function Backflow_pt() # Will be backflow
Quark_cond[:,noi,fl] .= zero(ComplexF64)
ap_density .= Array(dot(dws.st[b,r],psi[b,r]))
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
Quark_cond[t,noi,fl] += ap_density[b,r]
......@@ -181,7 +181,7 @@ function Backflow_pt() # Will be backflow
Quark_cond_cfl[:,noi,fl] .= zero(ComplexF64)
pp_density .= Array(norm2.(dws.st))
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
Quark_cond_cfl[t,noi,fl] += -pp_density[b,r]
......@@ -192,7 +192,7 @@ function Backflow_pt() # Will be backflow
ap_density .= Array(dot.(psi,dmul.(Gamma{4},psi)))
pp_corr_tfl[:,noi,fl] .= zero(Float64)
ap_corr_tfl[:,noi,fl] .= zero(ComplexF64)
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pp_corr_tfl[t,noi,fl] += pp_density[b,r]
......@@ -211,7 +211,7 @@ function Backflow_pt() # Will be backflow
ChiDchi[:,noi,fl] .= zero(Float64)
ap_density .= Array(dot(dws.st[b,r],dws.sp[b,r]))
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
ChiDchi[t,noi,fl] += ap_density[b,r]
......@@ -219,7 +219,7 @@ function Backflow_pt() # Will be backflow
end
Dw!(dws.sp,U,dws.st,dpar,dws,lp)
ap_density .= Array(dot(dws.sp[b,r],psi[b,r]))
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
ChiDchi[t,noi,fl] += -ap_density[b,r]
......@@ -228,7 +228,7 @@ function Backflow_pt() # Will be backflow
Quark_cond2[:,noi,fl] .= zero(ComplexF64)
ap_density .= Array(dot(dws.st[b,r],psi[b,r]))
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
Quark_cond2[t,noi,fl] += ap_density[b,r]
......@@ -243,7 +243,7 @@ function Backflow_pt() # Will be backflow
ChiDchi_cfl[:,noi,fl] .= zero(ComplexF64)
ap_density .= Array(dot(dws.st[b,r],dws.sp[b,r]))
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
ChiDchi_cfl[t,noi,fl] += ap_density[b,r]
......@@ -251,7 +251,7 @@ function Backflow_pt() # Will be backflow
end
Dw!(dws.sp,U,dws.st,dpar,dws,lp)
ap_density .= Array(dot(dws.sp[b,r],psi[b,r]))
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
ChiDchi_cfl[t,noi,fl] += -ap_density[b,r]
......@@ -260,7 +260,7 @@ function Backflow_pt() # Will be backflow
Quark_cond2_cfl[:,noi,fl] .= zero(ComplexF64)
ap_density .= Array(dot(dws.st[b,r],psi[b,r]))
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
Quark_cond2_cfl[t,noi,fl] += ap_density[b,r]
......@@ -295,11 +295,11 @@ end
"""
function two_pt_lagrange()
Computes the two point functions containing Lagrange multiplier fields using front flow.
Computes the two point functions containing Lagrange multiplier fields using front flow. The convention is such that the quark condentate is 'pptilde_t' + c_fl*'pphat_t'
Stores the two point functions in the variables 'pphat_t' and 'pptilde_t'.
"""
function two_pt_lagrange() # Will be 2pt lagrange mult
function Two_pt_lagrange() # Will be 2pt lagrange mult
@timeit "CPU to GPU" copyto!(U,U_CPU)
......@@ -337,15 +337,15 @@ function two_pt_lagrange() # Will be 2pt lagrange mult
pphat_t[:,noi,fl] .= zero(Float64)
pp_density .= Array(sum(norm2.(psi)))
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pphat_t[t,noi,fl] += pp_density[b,r]
pphat_t[t,noi,fl] += -pp_density[b,r]
end end end
end
pptilde_t[:,noi,fl] .= zero(Float64)
ap_density .= Array(dot.(dws.st,psi))
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pptilde_t[t,noi,fl] += ap_density[b,r]
......@@ -360,15 +360,15 @@ function two_pt_lagrange() # Will be 2pt lagrange mult
end
pphat_t[:,noi,end] .= zero(Float64)
pp_density .= Array(sum(norm2.(psi)))
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pphat_t[t,noi,end] += pp_density[b,r]
pphat_t[t,noi,end] += -pp_density[b,r]
end end end
end
pptilde_t[:,noi,end] .= zero(Complex{Float64})
ap_density .= Array(dot.(dws.st,psi))
for t in 1:lp.iL[4]
@timeit "Volume sum" for t in 1:lp.iL[4]
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3]
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pptilde_t[t,noi,end] += ap_density[b,r]
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment