Volume sum improvement. Some io features.

parent 791e0f1d
...@@ -60,7 +60,7 @@ function load_structs() ...@@ -60,7 +60,7 @@ function load_structs()
global dpar = DiracParam{Float64}(SU3fund,(1/(2*params["Fermion"]["kappa"])) - 4,params["Fermion"]["csw"],ntuple(i -> exp(((i!=4)*im*params["Fermion"]["theta"]/lp.iL[i]) + ((i==4)*im*params["Fermion"]["theta_t"]/lp.iL[i])),4),0.0,params["Fermion"]["ct"]); global dpar = DiracParam{Float64}(SU3fund,(1/(2*params["Fermion"]["kappa"])) - 4,params["Fermion"]["csw"],ntuple(i -> exp(((i!=4)*im*params["Fermion"]["theta"]/lp.iL[i]) + ((i==4)*im*params["Fermion"]["theta_t"]/lp.iL[i])),4),0.0,params["Fermion"]["ct"]);
global dws = DiracWorkspace(SU3fund,Float64,lp); global dws = DiracWorkspace(SU3fund,Float64,lp);
global ymws = YMworkspace(SU3,Float64,lp); global ymws = YMworkspace(SU3,Float64,lp);
global int = wfl_rk3(Float64, 0.1, 1.0) global int = wfl_rk3(Float64, params["Frontflow"]["epsilon"], 1.0)
global intsch = omf4(Float64,params["HMC"]["eps"], params["HMC"]["ns"]); global intsch = omf4(Float64,params["HMC"]["eps"], params["HMC"]["ns"]);
global flow_times = params["Backflow"]["Flow_times"] global flow_times = params["Backflow"]["Flow_times"]
...@@ -93,6 +93,7 @@ function write_log() ...@@ -93,6 +93,7 @@ function write_log()
println(log_file,"Parameters:") println(log_file,"Parameters:")
println(log_file,"Lattice size: ", lp.iL) println(log_file,"Lattice size: ", lp.iL)
println(log_file,"Boundary conditions: ", params["Space"]["bc"])
println(log_file,"kappa = ", params["Fermion"]["kappa"]) println(log_file,"kappa = ", params["Fermion"]["kappa"])
println(log_file,"theta = ", params["Fermion"]["theta"]) println(log_file,"theta = ", params["Fermion"]["theta"])
println(log_file,"csw = ", dpar.csw) println(log_file,"csw = ", dpar.csw)
......
...@@ -66,16 +66,13 @@ function Frontflow_pt() # Will be Frontflow ...@@ -66,16 +66,13 @@ function Frontflow_pt() # Will be Frontflow
pp_density .= Array(norm2.(psi)) pp_density .= Array(norm2.(psi))
ap_density .= Array(dot.(psi,dmul.(Gamma{4},psi))) ap_density .= Array(dot.(psi,dmul.(Gamma{4},psi)))
pp_corr_t0[:,noi] .= zero(Float64) pp_corr_t0[:,noi] .= zero(Float64)
ap_corr_t0[:,noi] .= zero(ComplexF64) ap_corr_t0[:,noi] .= zero(ComplexF64)
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),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] ap_corr_t0[t,noi] += ap_density[b,r]
ap_corr_t0[t,noi] += ap_density[b,r] end end
end end end
end
if params["Frontflow"]["t_zero"]>0.0 if params["Frontflow"]["t_zero"]>0.0
_,epslist = flw_adapt(U, psi, int, params["Frontflow"]["t_zero"], gp, dpar, lp, ymws, dws) _,epslist = flw_adapt(U, psi, int, params["Frontflow"]["t_zero"], gp, dpar, lp, ymws, dws)
...@@ -94,13 +91,11 @@ function Frontflow_pt() # Will be Frontflow ...@@ -94,13 +91,11 @@ 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)
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),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] ap_corr_t[t,noi,tstep] += ap_density[b,r]
ap_corr_t[t,noi,tstep] += ap_density[b,r] end end
end end end
end
flw(U, psi, int, 1, params["Frontflow"]["epsilon"], gp, dpar, lp, ymws, dws) flw(U, psi, int, 1, params["Frontflow"]["epsilon"], gp, dpar, lp, ymws, dws)
end end
...@@ -114,13 +109,11 @@ function Frontflow_pt() # Will be Frontflow ...@@ -114,13 +109,11 @@ 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)
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),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] ap_corr_t[t,noi,end] += ap_density[b,r]
ap_corr_t[t,noi,end] += ap_density[b,r] end end
end end end
end
@timeit "CPU to GPU" copyto!(U,U_CPU) @timeit "CPU to GPU" copyto!(U,U_CPU)
end end
...@@ -177,33 +170,23 @@ function Backflow_pt() # Will be backflow ...@@ -177,33 +170,23 @@ function Backflow_pt() # Will be backflow
Quark_cond[:,noi,fl] .= zero(ComplexF64) Quark_cond[:,noi,fl] .= zero(ComplexF64)
ap_density .= Array(dot.(dws.st,psi)) ap_density .= Array(dot.(dws.st,psi))
@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]
end end end
end
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))
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),lp)
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp) Quark_cond[t,noi,fl] += ap_density[b,r]
Quark_cond_cfl[t,noi,fl] += -pp_density[b,r] Quark_cond_cfl[t,noi,fl] += -pp_density[b,r]
end end end end end
end
pp_density .= Array(norm2.(psi)) pp_density .= Array(norm2.(psi))
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)
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),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] ap_corr_tfl[t,noi,fl] += ap_density[b,r]
ap_corr_tfl[t,noi,fl] += ap_density[b,r] end end
end end end
end
@timeit "CPU to GPU" copyto!(U,U_CPU) @timeit "CPU to GPU" copyto!(U,U_CPU)
...@@ -216,29 +199,23 @@ function Backflow_pt() # Will be backflow ...@@ -216,29 +199,23 @@ function Backflow_pt() # Will be backflow
ChiDchi[:,noi,fl] .= zero(Float64) ChiDchi[:,noi,fl] .= zero(Float64)
ap_density .= Array(dot.(dws.st,dws.sp)) ap_density .= Array(dot.(dws.st,dws.sp))
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),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] end end
end end 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,psi)) ap_density .= Array(dot.(dws.sp,psi))
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),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] end end
end end end
end
Quark_cond2[:,noi,fl] .= zero(ComplexF64) Quark_cond2[:,noi,fl] .= zero(ComplexF64)
ap_density .= Array(dot.(dws.st,psi)) ap_density .= Array(dot.(dws.st,psi))
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),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] end end
end end end
end
@timeit "CPU to GPU" copyto!(U,U_CPU) @timeit "CPU to GPU" copyto!(U,U_CPU)
@timeit "CPU to GPU" copyto!(psi,psi_CPU) @timeit "CPU to GPU" copyto!(psi,psi_CPU)
...@@ -248,29 +225,23 @@ function Backflow_pt() # Will be backflow ...@@ -248,29 +225,23 @@ function Backflow_pt() # Will be backflow
ChiDchi_cfl[:,noi,fl] .= zero(ComplexF64) ChiDchi_cfl[:,noi,fl] .= zero(ComplexF64)
ap_density .= Array(dot.(dws.st,dws.sp)) ap_density .= Array(dot.(dws.st,dws.sp))
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),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] end end
end end 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,psi)) ap_density .= Array(dot.(dws.sp,psi))
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),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] end end
end end end
end
Quark_cond2_cfl[:,noi,fl] .= zero(ComplexF64) Quark_cond2_cfl[:,noi,fl] .= zero(ComplexF64)
ap_density .= Array(dot.(dws.st,psi)) ap_density .= Array(dot.(dws.st,psi))
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),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] end end
end end end
end
end end
...@@ -342,21 +313,13 @@ function Two_pt_lagrange() # Will be 2pt lagrange mult ...@@ -342,21 +313,13 @@ function Two_pt_lagrange() # Will be 2pt lagrange mult
pphat_t[:,noi,fl] .= zero(Float64) pphat_t[:,noi,fl] .= zero(Float64)
pp_density .= Array(norm2.(psi)) pp_density .= Array(norm2.(psi))
@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]
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))
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),lp)
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp) pphat_t[t,noi,fl] += -pp_density[b,r]
pptilde_t[t,noi,fl] += ap_density[b,r] pptilde_t[t,noi,fl] += ap_density[b,r]
end end end end end
end
ymws.U1 .= U ymws.U1 .= U
flw(U, psi, int, 1, params["Frontflow"]["epsilon"], gp, dpar, lp, ymws, dws) flw(U, psi, int, 1, params["Frontflow"]["epsilon"], gp, dpar, lp, ymws, dws)
U .= ymws.U1 U .= ymws.U1
...@@ -365,20 +328,13 @@ function Two_pt_lagrange() # Will be 2pt lagrange mult ...@@ -365,20 +328,13 @@ 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(norm2.(psi)) pp_density .= Array(norm2.(psi))
@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]
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))
@timeit "Volume sum" for t in 1:lp.iL[4] @timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
for i in 1:lp.iL[1] for j in 1:lp.iL[2] for k in 1:lp.iL[3] t = point_time((b,r),lp)
b,r = point_index(CartesianIndex{lp.ndim}((i,j,k,t)),lp) pphat_t[t,noi,end] += -pp_density[b,r]
pptilde_t[t,noi,end] += ap_density[b,r] pptilde_t[t,noi,end] += ap_density[b,r]
end end end end end
end
@timeit "CPU to GPU" copyto!(U,U_CPU) @timeit "CPU to GPU" copyto!(U,U_CPU)
......
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