Implemented lagrange 2pt and IO. Tests needed.

parent 6dcebc0d
...@@ -29,9 +29,9 @@ while RUN_ON ...@@ -29,9 +29,9 @@ while RUN_ON
@timeit "HMC" Gauge_update() @timeit "HMC" Gauge_update()
@timeit "Two point function" begin @timeit "Two point functions" begin
Frontflow_pt() Frontflow_pt()
two_pt_lagrange() Two_pt_lagrange()
end end
@timeit "One point function" Backflow_pt() @timeit "One point function" Backflow_pt()
......
...@@ -135,6 +135,10 @@ function save_data() ...@@ -135,6 +135,10 @@ function save_data()
BDIO_write!(fb, [convert(Int32,params["Frontflow"]["nsteps"])]) BDIO_write!(fb, [convert(Int32,params["Frontflow"]["nsteps"])])
BDIO_write!(fb, [convert(Int32,params["Backflow"]["N_noise"])]) BDIO_write!(fb, [convert(Int32,params["Backflow"]["N_noise"])])
BDIO_write!(fb, [convert(Int32,length(flow_times))]) 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 length(flow_times) > 0 ? BDIO_write!(fb, flow_times) : nothing
BDIO_write_hash!(fb) BDIO_write_hash!(fb)
...@@ -151,7 +155,7 @@ function save_data() ...@@ -151,7 +155,7 @@ function save_data()
BDIO_write!(fb,pp_corr_t[:,noi,fl]) BDIO_write!(fb,pp_corr_t[:,noi,fl])
BDIO_write!(fb,ap_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]) BDIO_write!(fb,pptilde_t[:,noi,fl])
end end
end end
...@@ -172,8 +176,6 @@ function save_data() ...@@ -172,8 +176,6 @@ function save_data()
BDIO_write!(fb,ChiDchi[:,noi,fl]) BDIO_write!(fb,ChiDchi[:,noi,fl])
BDIO_write!(fb,ChiDchi_cfl[:,noi,fl]) BDIO_write!(fb,ChiDchi_cfl[:,noi,fl])
BDIO_write!(fb,[phat_t[noi,fl]])
end end
end end
......
...@@ -69,7 +69,7 @@ function Frontflow_pt() # Will be Frontflow ...@@ -69,7 +69,7 @@ function Frontflow_pt() # Will be Frontflow
pp_corr_t0[:,noi] .= zero(Float64) pp_corr_t0[:,noi] .= zero(Float64)
ap_corr_t0[:,noi] .= zero(ComplexF64) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pp_corr_t0[t,noi] += pp_density[b,r] pp_corr_t0[t,noi] += pp_density[b,r]
...@@ -94,7 +94,7 @@ function Frontflow_pt() # Will be Frontflow ...@@ -94,7 +94,7 @@ function Frontflow_pt() # Will be Frontflow
ap_density .= Array(dot.(psi,dmul.(Gamma{4},psi))) ap_density .= Array(dot.(psi,dmul.(Gamma{4},psi)))
pp_corr_t[:,noi,tstep] .= zero(Float64) pp_corr_t[:,noi,tstep] .= zero(Float64)
ap_corr_t[:,noi,tstep] .= zero(ComplexF64) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pp_corr_t[t,noi,tstep] += pp_density[b,r] pp_corr_t[t,noi,tstep] += pp_density[b,r]
...@@ -109,7 +109,7 @@ function Frontflow_pt() # Will be Frontflow ...@@ -109,7 +109,7 @@ function Frontflow_pt() # Will be Frontflow
ap_density .= Array(dot.(psi,dmul.(Gamma{4},psi))) ap_density .= Array(dot.(psi,dmul.(Gamma{4},psi)))
pp_corr_t[:,noi,end] .= zero(Float64) pp_corr_t[:,noi,end] .= zero(Float64)
ap_corr_t[:,noi,end] .= zero(ComplexF64) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pp_corr_t[t,noi,end] += pp_density[b,r] pp_corr_t[t,noi,end] += pp_density[b,r]
...@@ -172,7 +172,7 @@ function Backflow_pt() # Will be backflow ...@@ -172,7 +172,7 @@ function Backflow_pt() # Will be backflow
Quark_cond[:,noi,fl] .= zero(ComplexF64) Quark_cond[:,noi,fl] .= zero(ComplexF64)
ap_density .= Array(dot(dws.st[b,r],psi[b,r])) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
Quark_cond[t,noi,fl] += ap_density[b,r] Quark_cond[t,noi,fl] += ap_density[b,r]
...@@ -181,7 +181,7 @@ function Backflow_pt() # Will be backflow ...@@ -181,7 +181,7 @@ function Backflow_pt() # Will be backflow
Quark_cond_cfl[:,noi,fl] .= zero(ComplexF64) Quark_cond_cfl[:,noi,fl] .= zero(ComplexF64)
pp_density .= Array(norm2.(dws.st)) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
Quark_cond_cfl[t,noi,fl] += -pp_density[b,r] Quark_cond_cfl[t,noi,fl] += -pp_density[b,r]
...@@ -192,7 +192,7 @@ function Backflow_pt() # Will be backflow ...@@ -192,7 +192,7 @@ function Backflow_pt() # Will be backflow
ap_density .= Array(dot.(psi,dmul.(Gamma{4},psi))) ap_density .= Array(dot.(psi,dmul.(Gamma{4},psi)))
pp_corr_tfl[:,noi,fl] .= zero(Float64) pp_corr_tfl[:,noi,fl] .= zero(Float64)
ap_corr_tfl[:,noi,fl] .= zero(ComplexF64) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pp_corr_tfl[t,noi,fl] += pp_density[b,r] pp_corr_tfl[t,noi,fl] += pp_density[b,r]
...@@ -211,7 +211,7 @@ function Backflow_pt() # Will be backflow ...@@ -211,7 +211,7 @@ function Backflow_pt() # Will be backflow
ChiDchi[:,noi,fl] .= zero(Float64) ChiDchi[:,noi,fl] .= zero(Float64)
ap_density .= Array(dot(dws.st[b,r],dws.sp[b,r])) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
ChiDchi[t,noi,fl] += ap_density[b,r] ChiDchi[t,noi,fl] += ap_density[b,r]
...@@ -219,7 +219,7 @@ function Backflow_pt() # Will be backflow ...@@ -219,7 +219,7 @@ function Backflow_pt() # Will be backflow
end end
Dw!(dws.sp,U,dws.st,dpar,dws,lp) Dw!(dws.sp,U,dws.st,dpar,dws,lp)
ap_density .= Array(dot(dws.sp[b,r],psi[b,r])) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
ChiDchi[t,noi,fl] += -ap_density[b,r] ChiDchi[t,noi,fl] += -ap_density[b,r]
...@@ -228,7 +228,7 @@ function Backflow_pt() # Will be backflow ...@@ -228,7 +228,7 @@ function Backflow_pt() # Will be backflow
Quark_cond2[:,noi,fl] .= zero(ComplexF64) Quark_cond2[:,noi,fl] .= zero(ComplexF64)
ap_density .= Array(dot(dws.st[b,r],psi[b,r])) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
Quark_cond2[t,noi,fl] += ap_density[b,r] Quark_cond2[t,noi,fl] += ap_density[b,r]
...@@ -243,7 +243,7 @@ function Backflow_pt() # Will be backflow ...@@ -243,7 +243,7 @@ function Backflow_pt() # Will be backflow
ChiDchi_cfl[:,noi,fl] .= zero(ComplexF64) ChiDchi_cfl[:,noi,fl] .= zero(ComplexF64)
ap_density .= Array(dot(dws.st[b,r],dws.sp[b,r])) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
ChiDchi_cfl[t,noi,fl] += ap_density[b,r] ChiDchi_cfl[t,noi,fl] += ap_density[b,r]
...@@ -251,7 +251,7 @@ function Backflow_pt() # Will be backflow ...@@ -251,7 +251,7 @@ function Backflow_pt() # Will be backflow
end end
Dw!(dws.sp,U,dws.st,dpar,dws,lp) Dw!(dws.sp,U,dws.st,dpar,dws,lp)
ap_density .= Array(dot(dws.sp[b,r],psi[b,r])) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
ChiDchi_cfl[t,noi,fl] += -ap_density[b,r] ChiDchi_cfl[t,noi,fl] += -ap_density[b,r]
...@@ -260,7 +260,7 @@ function Backflow_pt() # Will be backflow ...@@ -260,7 +260,7 @@ function Backflow_pt() # Will be backflow
Quark_cond2_cfl[:,noi,fl] .= zero(ComplexF64) Quark_cond2_cfl[:,noi,fl] .= zero(ComplexF64)
ap_density .= Array(dot(dws.st[b,r],psi[b,r])) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
Quark_cond2_cfl[t,noi,fl] += ap_density[b,r] Quark_cond2_cfl[t,noi,fl] += ap_density[b,r]
...@@ -295,11 +295,11 @@ end ...@@ -295,11 +295,11 @@ end
""" """
function two_pt_lagrange() 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'. 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) @timeit "CPU to GPU" copyto!(U,U_CPU)
...@@ -337,15 +337,15 @@ function two_pt_lagrange() # Will be 2pt lagrange mult ...@@ -337,15 +337,15 @@ function two_pt_lagrange() # Will be 2pt lagrange mult
pphat_t[:,noi,fl] .= zero(Float64) pphat_t[:,noi,fl] .= zero(Float64)
pp_density .= Array(sum(norm2.(psi))) 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] 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) 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 end end
end end
pptilde_t[:,noi,fl] .= zero(Float64) pptilde_t[:,noi,fl] .= zero(Float64)
ap_density .= Array(dot.(dws.st,psi)) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pptilde_t[t,noi,fl] += ap_density[b,r] pptilde_t[t,noi,fl] += ap_density[b,r]
...@@ -360,15 +360,15 @@ function two_pt_lagrange() # Will be 2pt lagrange mult ...@@ -360,15 +360,15 @@ function two_pt_lagrange() # Will be 2pt lagrange mult
end end
pphat_t[:,noi,end] .= zero(Float64) pphat_t[:,noi,end] .= zero(Float64)
pp_density .= Array(sum(norm2.(psi))) 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] 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) 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 end end
end end
pptilde_t[:,noi,end] .= zero(Complex{Float64}) pptilde_t[:,noi,end] .= zero(Complex{Float64})
ap_density .= Array(dot.(dws.st,psi)) 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] 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) b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp)
pptilde_t[t,noi,end] += ap_density[b,r] 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