ADfer and SFCF. v1.1

parent dc2fcd73
......@@ -17,6 +17,12 @@ eps = 0.01
ns = 30
mclength = -1 # Number of measurements. Negative to ignore
[AD]
nder = 2
[sfcf]
meas = true
[Fermion1]
kappa = 0.1348
theta = 0.0
......
......@@ -15,6 +15,7 @@ reset_timer!()
include("./src/io.jl")
include("./src/meas.jl")
include("./src/sfcf.jl")
include("./src/mc.jl")
@timeit "Input reading and space allocation" begin
......@@ -37,6 +38,8 @@ while RUN_ON
@timeit "One point function" Backflow_pt()
meas_sfcf()
@timeit "Saving" save_data()
check_run_status()
......
......@@ -20,6 +20,12 @@ function read_input()
error("Output file already exists with this run name. Use flag -R to continue the run.")
end
if ((params["Space"]["bc"] != 1) && (params["Space"]["bc"] != 2) && (params["sfcf"]["meas"]))
error("Sfcf only available with SF bc")
end
return nothing
end
......@@ -66,18 +72,19 @@ function load_structs()
CUDA.device!(parsed_args["G"])
global lp = SpaceParm{4}(tuple(params["Space"]["size"]...), tuple(params["Space"]["blocks"]...),params["Space"]["bc"], (0,0,0,0,0,0))
global gp = GaugeParm{Float64}(SU3{Float64},params["HMC"]["beta"],params["HMC"]["c0"],(params["HMC"]["cG"],0.0),(0.0,0.0),lp.iL);
global dws = DiracWorkspace(SU3fund,2,Float64,lp);
global dws = DiracWorkspace(SU3fund,params["AD"]["nder"]+1,Float64,lp);
global ymws = YMworkspace(SU3,Float64,lp);
global int = wfl_rk3(Float64, params["Frontflow"]["epsilon"], params["Backflow"]["tol"])
global intsch = omf4(Float64,params["HMC"]["eps"], params["HMC"]["ns"]);
global fernames = [replace(k, "Fermion" => "") for k in keys(params) if startswith(k, "Fermion")]
# SU3 assumed in the constructor
global dpar = [DiracParam{Float64}(
Series{Float64,2}(( (1/(2*params["Fermion"*f]["kappa"])) - 4, 1.0 )),
Series{Float64,2}(( params["Fermion"*f]["csw"], 0.0 )),
global Nder = params["AD"]["nder"]+1
global dpar = [DiracParam{Float64,Nder}(
(1/(2*params["Fermion"*f]["kappa"])) - 4,
params["Fermion"*f]["csw"],
ntuple(i -> exp(((i!=4)*im*params["Fermion"*f]["theta"]/lp.iL[i]) + ((i==4)*im*params["Fermion"*f]["theta_t"]/lp.iL[i])), 4),
Series{Float64,2}(( 0.0, 0.0 )),
Series{Float64,2}(( params["Fermion"*f]["ct"], 0.0 )) ) for f in fernames];
0.0,
params["Fermion"*f]["ct"], mder = (Nder > 1) ) for f in fernames];
global flow_times = params["Backflow"]["Flow_times"]
global MCid = 0
......@@ -94,7 +101,7 @@ end
function write_log()
println(log_file,"Running Ferflow.jl adfer v1.0 by ", params["Run"]["user"],". Name of the run: ",params["Run"]["name"])
println(log_file,"Running Ferflow.jl adfer v1.1 by ", params["Run"]["user"],". Name of the run: ",params["Run"]["name"])
println(log_file,"")
print(log_file,"Calling: ")
......@@ -110,6 +117,7 @@ function write_log()
println(log_file,"Parameters:")
println(log_file,"Lattice size: ", lp.iL)
println(log_file,"Boundary conditions: ", params["Space"]["bc"])
println(log_file,"Number of derivatives: ", params["AD"]["nder"])
for f in fernames
println(log_file,"Fermion"*f*" parameters:")
println(log_file,"kappa = ", params["Fermion"*f]["kappa"])
......@@ -137,14 +145,14 @@ end
function save_data()
ihdr = [convert(Int32,1740655571)]
ihdr = [convert(Int32,1742298500)]
fname = "./output/"*params["Run"]["name"]*".bdio"
if isfile(fname)
fb = BDIO_open(fname, "a")
println(log_file,"\nAppending output to "*fname*"\n")
else
fb = BDIO_open(fname, "w", "BDIO output from ferflow.jl adfer v1.0")
fb = BDIO_open(fname, "w", "BDIO output from ferflow.jl adfer v1.1")
println(log_file,"Creating new BDIO output file "*fname)
BDIO_start_record!(fb, BDIO_BIN_GENERIC, 14)
......@@ -169,37 +177,33 @@ function save_data()
BDIO_write!(fb, [convert(Int32,params["Backflow"]["tsource"])])
length(flow_times) > 0 ? BDIO_write!(fb, flow_times) : nothing
BDIO_write!(fb, [convert(Int32,params["AD"]["nder"])])
if params["sfcf"]["meas"]
BDIO_write!(fb, [convert(Int32,1)])
else
BDIO_write!(fb, [convert(Int32,0)])
end
BDIO_write_hash!(fb)
end
BDIO_start_record!(fb, BDIO_BIN_GENERIC, 8, true)
for f in 1:length(dpar)
for noi in 1:params["Frontflow"]["N_noise"]
BDIO_write!(fb, getindex.(getfield.(pp_corr_t0[:,noi,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(ap_corr_t0[:,noi,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(pphat_t0[:,noi,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(pptilde_t0[:,noi,f], :c), 1))
for fl in 1:params["Frontflow"]["nsteps"]+1
BDIO_write!(fb, getindex.(getfield.(pp_corr_t[:,noi,fl,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(ap_corr_t[:,noi,fl,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(pphat_t[:,noi,fl,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(pptilde_t[:,noi,fl,f], :c), 1))
end
end
end
for f in 1:length(dpar)
for noi in 1:params["Frontflow"]["N_noise"]
BDIO_write!(fb, getindex.(getfield.(pp_corr_t0[:,noi,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(ap_corr_t0[:,noi,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(pphat_t0[:,noi,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(pptilde_t0[:,noi,f], :c), 2))
for fl in 1:params["Frontflow"]["nsteps"]+1
BDIO_write!(fb, getindex.(getfield.(pp_corr_t[:,noi,fl,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(ap_corr_t[:,noi,fl,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(pphat_t[:,noi,fl,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(pptilde_t[:,noi,fl,f], :c), 2))
for der in 1:Nder
for f in 1:length(dpar)
for noi in 1:params["Frontflow"]["N_noise"]
BDIO_write!(fb, getindex.(getfield.(pp_corr_t0[:,noi,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(ap_corr_t0[:,noi,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(pphat_t0[:,noi,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(pptilde_t0[:,noi,f], :c), der))
for fl in 1:params["Frontflow"]["nsteps"]+1
BDIO_write!(fb, getindex.(getfield.(pp_corr_t[:,noi,fl,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(ap_corr_t[:,noi,fl,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(pphat_t[:,noi,fl,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(pptilde_t[:,noi,fl,f], :c), der))
end
end
end
end
......@@ -211,31 +215,32 @@ function save_data()
BDIO_write!(fb, Qt[fl,:])
end
for f in 1:length(dpar)
for noi in 1:params["Backflow"]["N_noise"]
for fl in 1:length(flow_times)
BDIO_write!(fb, getindex.(getfield.(pp_corr_tfl[:,noi,fl,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(ap_corr_tfl[:,noi,fl,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(Quark_cond[:,noi,fl,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(Quark_cond_cfl[:,noi,fl,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(Quark_cond2[:,noi,fl,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(Quark_cond2_cfl[:,noi,fl,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(ChiDchi[:,noi,fl,f], :c), 1))
BDIO_write!(fb, getindex.(getfield.(ChiDchi_cfl[:,noi,fl,f], :c), 1))
for der in 1:Nder
for f in 1:length(dpar)
for noi in 1:params["Backflow"]["N_noise"]
for fl in 1:length(flow_times)
BDIO_write!(fb, getindex.(getfield.(pp_corr_tfl[:,noi,fl,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(ap_corr_tfl[:,noi,fl,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(Quark_cond[:,noi,fl,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(Quark_cond_cfl[:,noi,fl,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(Quark_cond2[:,noi,fl,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(Quark_cond2_cfl[:,noi,fl,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(ChiDchi[:,noi,fl,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(ChiDchi_cfl[:,noi,fl,f], :c), der))
end
end
end
end
for f in 1:length(dpar)
for noi in 1:params["Backflow"]["N_noise"]
for fl in 1:length(flow_times)
BDIO_write!(fb, getindex.(getfield.(pp_corr_tfl[:,noi,fl,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(ap_corr_tfl[:,noi,fl,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(Quark_cond[:,noi,fl,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(Quark_cond_cfl[:,noi,fl,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(Quark_cond2[:,noi,fl,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(Quark_cond2_cfl[:,noi,fl,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(ChiDchi[:,noi,fl,f], :c), 2))
BDIO_write!(fb, getindex.(getfield.(ChiDchi_cfl[:,noi,fl,f], :c), 2))
if params["sfcf"]["meas"]
for der in 1:Nder
for f in 1:length(dpar)
BDIO_write!(fb, getindex.(getfield.(fp_sf[:,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(fa_sf[:,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(kv_sf[:,f], :c), der))
BDIO_write!(fb, getindex.(getfield.(kt_sf[:,f], :c), der))
BDIO_write!(fb, [getindex(getfield(f1_sf[f], :c), der),])
BDIO_write!(fb, [getindex(getfield(k1_sf[f], :c), der),])
end
end
end
......
......@@ -9,38 +9,38 @@ function load_fields()
fill!(U,one(SU3{Float64}));
global U_CPU = Array(U)
global psi = scalar_field(Spinor{4,SU3fund{Float64,2}},lp)
fill!(psi,zero(Spinor{4, SU3fund{Float64, 2}}))
global psi = scalar_field(Spinor{4,SU3fund{Float64,Nder}},lp)
fill!(psi,zero(Spinor{4, SU3fund{Float64, Nder}}))
global psi_CPU = Array(psi)
global psit_CPU = Array(psi)
global pp_density = Array{Series{Float64,2}}(undef,lp.bsz,lp.rsz);
global ap_density = Array{Series{Complex{Float64},2}}(undef,lp.bsz,lp.rsz);
global pp_density = Array{Series{Float64,Nder}}(undef,lp.bsz,lp.rsz);
global ap_density = Array{Series{Complex{Float64},Nder}}(undef,lp.bsz,lp.rsz);
global complex_scalar = scalar_field_point(Series{ComplexF64, 2}, lp)
global real_scalar = scalar_field_point(Series{Float64, 2}, lp)
global complex_scalar = scalar_field_point(Series{ComplexF64, Nder}, lp)
global real_scalar = scalar_field_point(Series{Float64, Nder}, lp)
# Obs ending in 0 are only relevant if tzero > 0
global pp_corr_t0 = fill(zero(Series{Float64,2}),(lp.iL[4],params["Frontflow"]["N_noise"],length(dpar)));
global ap_corr_t0 = fill(zero(Series{Complex{Float64},2}),(lp.iL[4],params["Frontflow"]["N_noise"],length(dpar)));
global pp_corr_t0 = fill(zero(Series{Float64,Nder}),(lp.iL[4],params["Frontflow"]["N_noise"],length(dpar)));
global ap_corr_t0 = fill(zero(Series{Complex{Float64},Nder}),(lp.iL[4],params["Frontflow"]["N_noise"],length(dpar)));
global pphat_t0 = Array{Series{Float64,2}}(undef,lp.iL[4],params["Frontflow"]["N_noise"],length(dpar));
global pptilde_t0 = Array{Series{Complex{Float64},2}}(undef,lp.iL[4],params["Frontflow"]["N_noise"],length(dpar));
global pphat_t0 = Array{Series{Float64,Nder}}(undef,lp.iL[4],params["Frontflow"]["N_noise"],length(dpar));
global pptilde_t0 = Array{Series{Complex{Float64},Nder}}(undef,lp.iL[4],params["Frontflow"]["N_noise"],length(dpar));
global Qt0 = Array{Complex{Float64}}(undef,lp.iL[4]);
global Eoft0 = Array{Complex{Float64}}(undef,lp.iL[4]);
# Frontflow
global pp_corr_t = fill(zero(Series{Float64,2}),(lp.iL[4],params["Frontflow"]["N_noise"],params["Frontflow"]["nsteps"] + 1,length(dpar)));
global ap_corr_t = fill(zero(Series{Complex{Float64},2}),(lp.iL[4],params["Frontflow"]["N_noise"],params["Frontflow"]["nsteps"] + 1,length(dpar)));
global pp_corr_t = fill(zero(Series{Float64,Nder}),(lp.iL[4],params["Frontflow"]["N_noise"],params["Frontflow"]["nsteps"] + 1,length(dpar)));
global ap_corr_t = fill(zero(Series{Complex{Float64},Nder}),(lp.iL[4],params["Frontflow"]["N_noise"],params["Frontflow"]["nsteps"] + 1,length(dpar)));
global pp_corr_tfl = fill(zero(Series{Float64,2}),(lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar)));
global ap_corr_tfl = fill(zero(Series{Complex{Float64},2}),(lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar)));
global pp_corr_tfl = fill(zero(Series{Float64,Nder}),(lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar)));
global ap_corr_tfl = fill(zero(Series{Complex{Float64},Nder}),(lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar)));
global pphat_t = Array{Series{Float64,2}}(undef,lp.iL[4],params["Frontflow"]["N_noise"],params["Frontflow"]["nsteps"] + 1,length(dpar));
global pptilde_t = Array{Series{Complex{Float64},2}}(undef,lp.iL[4],params["Frontflow"]["N_noise"],params["Frontflow"]["nsteps"] + 1,length(dpar));
global pphat_t = Array{Series{Float64,Nder}}(undef,lp.iL[4],params["Frontflow"]["N_noise"],params["Frontflow"]["nsteps"] + 1,length(dpar));
global pptilde_t = Array{Series{Complex{Float64},Nder}}(undef,lp.iL[4],params["Frontflow"]["N_noise"],params["Frontflow"]["nsteps"] + 1,length(dpar));
global Qteuc = Array{Float64}(undef,lp.iL[4]);
global Qt = Array{Complex{Float64}}(undef,params["Frontflow"]["nsteps"] + 1,lp.iL[4]);
......@@ -49,13 +49,33 @@ function load_fields()
# Backflow
global Quark_cond = Array{Series{Complex{Float64},2}}(undef,lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar));
global Quark_cond_cfl = Array{Series{Complex{Float64},2}}(undef,lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar));
global Quark_cond = Array{Series{Complex{Float64},Nder}}(undef,lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar));
global Quark_cond_cfl = Array{Series{Complex{Float64},Nder}}(undef,lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar));
global Quark_cond2 = Array{Series{Complex{Float64},2}}(undef,lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar));
global Quark_cond2_cfl = Array{Series{Complex{Float64},2}}(undef,lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar));
global ChiDchi = Array{Series{Complex{Float64},2}}(undef,lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar));
global ChiDchi_cfl = Array{Series{Complex{Float64},2}}(undef,lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar));
global Quark_cond2 = Array{Series{Complex{Float64},Nder}}(undef,lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar));
global Quark_cond2_cfl = Array{Series{Complex{Float64},Nder}}(undef,lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar));
global ChiDchi = Array{Series{Complex{Float64},Nder}}(undef,lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar));
global ChiDchi_cfl = Array{Series{Complex{Float64},Nder}}(undef,lp.iL[4],params["Backflow"]["N_noise"],length(flow_times),length(dpar));
# Sfcf fields
if params["sfcf"]["meas"]
global A11 = Array(psi)
global A21 = Array(psi)
global A31 = Array(psi)
global A12 = Array(psi)
global A22 = Array(psi)
global A32 = Array(psi)
global fp_sf = Array{Series{Float64,Nder}}(undef,lp.iL[4],length(dpar));
global fa_sf = Array{Series{ComplexF64,Nder}}(undef,lp.iL[4],length(dpar));
global kv_sf = Array{Series{ComplexF64,Nder}}(undef,lp.iL[4],length(dpar));
global kt_sf = Array{Series{ComplexF64,Nder}}(undef,lp.iL[4],length(dpar));
global f1_sf = Array{Series{Float64,Nder}}(undef,length(dpar));
global k1_sf = Array{Series{ComplexF64,Nder}}(undef,length(dpar));
end
return nothing
end
......@@ -85,8 +105,8 @@ function Frontflow_pt() # Will be Frontflow
println(log_file,"CG converged after ",niter," iterations with residue ",CUDA.mapreduce(x -> norm2(x), +, dws.sr))
flush(log_file)
pp_corr_t0[:,noi,f] .= zero(Series{Float64,2})
ap_corr_t0[:,noi,f] .= zero(Series{ComplexF64,2})
pp_corr_t0[:,noi,f] .= zero(Series{Float64,Nder})
ap_corr_t0[:,noi,f] .= zero(Series{ComplexF64,Nder})
@timeit "Volume sum" begin
pp_corr_t0[:,noi,f] .= scalar_contraction(psi)
ap_corr_t0[:,noi,f] .= gammazero_contraction(psi)
......@@ -107,8 +127,8 @@ function Frontflow_pt() # Will be Frontflow
Qt[tstep,:] .= Qteuc
end
pp_corr_t[:,noi,tstep,f] .= zero(Series{Float64,2})
ap_corr_t[:,noi,tstep,f] .= zero(Series{ComplexF64,2})
pp_corr_t[:,noi,tstep,f] .= zero(Series{Float64,Nder})
ap_corr_t[:,noi,tstep,f] .= zero(Series{ComplexF64,Nder})
@timeit "Volume sum" begin
pp_corr_t[:,noi,tstep,f] .= scalar_contraction(psi)
ap_corr_t[:,noi,tstep,f] .= gammazero_contraction(psi)
......@@ -124,8 +144,8 @@ function Frontflow_pt() # Will be Frontflow
Qt[end,:] .= Qteuc
end
pp_corr_t[:,noi,end,f] .= zero(Series{Float64,2})
ap_corr_t[:,noi,end,f] .= zero(Series{ComplexF64,2})
pp_corr_t[:,noi,end,f] .= zero(Series{Float64,Nder})
ap_corr_t[:,noi,end,f] .= zero(Series{ComplexF64,Nder})
@timeit "Volume sum" begin
pp_corr_t[:,noi,end,f] .= scalar_contraction(psi)
ap_corr_t[:,noi,end,f] .= gammazero_contraction(psi)
......@@ -186,19 +206,19 @@ function Backflow_pt() # Will be backflow
@timeit "CPU to GPU" copyto!(dws.st,psi_CPU)
Quark_cond_cfl[:,noi,fl,f] .= zero(Series{ComplexF64,2})
Quark_cond_cfl[:,noi,fl,f] .= zero(Series{ComplexF64,Nder})
ap_density .= Array(norm2.(dws.st))
@timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
t = point_time((b,r),lp)
Quark_cond_cfl[t,noi,fl,f] += -ap_density[b,r]
end end
Quark_cond[:,noi,fl,f] .= zero(Series{ComplexF64,2})
Quark_cond[:,noi,fl,f] .= zero(Series{ComplexF64,Nder})
@timeit "Volume sum" begin
Quark_cond[:,noi,fl,f] .= dot_contraction(dws.st,psi)
end
pp_corr_tfl[:,noi,fl,f] .= zero(Series{Float64,2})
ap_corr_tfl[:,noi,fl,f] .= zero(Series{ComplexF64,2})
pp_corr_tfl[:,noi,fl,f] .= zero(Series{Float64,Nder})
ap_corr_tfl[:,noi,fl,f] .= zero(Series{ComplexF64,Nder})
@timeit "Volume sum" begin
pp_corr_tfl[:,noi,fl,f] .= scalar_contraction(psi)
ap_corr_tfl[:,noi,fl,f] .= gammazero_contraction(psi)
......@@ -213,7 +233,7 @@ function Backflow_pt() # Will be backflow
@timeit "CPU to GPU" copyto!(dws.st,psit_CPU)
ChiDchi[:,noi,fl,f] .= zero(Series{Complex{Float64},2})
ChiDchi[:,noi,fl,f] .= zero(Series{Complex{Float64},Nder})
ap_density .= Array(dot.(dws.st,dws.sp))
@timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
t = point_time((b,r),lp)
......@@ -226,7 +246,7 @@ function Backflow_pt() # Will be backflow
ChiDchi[t,noi,fl,f] += -ap_density[b,r]
end end
Quark_cond2[:,noi,fl,f] .= zero(Series{ComplexF64,2})
Quark_cond2[:,noi,fl,f] .= zero(Series{ComplexF64,Nder})
ap_density .= Array(dot.(dws.st,psi))
@timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
t = point_time((b,r),lp)
......@@ -239,7 +259,7 @@ function Backflow_pt() # Will be backflow
flw_adapt(U, psi, int, flow_times[fl], gp, dpar[f], lp, ymws, dws)
Dw!(dws.sp,U,psi,dpar[f],dws,lp)
ChiDchi_cfl[:,noi,fl,f] .= zero(Series{ComplexF64,2})
ChiDchi_cfl[:,noi,fl,f] .= zero(Series{ComplexF64,Nder})
ap_density .= Array(dot.(dws.st,dws.sp))
@timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
t = point_time((b,r),lp)
......@@ -252,7 +272,7 @@ function Backflow_pt() # Will be backflow
ChiDchi_cfl[t,noi,fl,f] += -ap_density[b,r]
end end
Quark_cond2_cfl[:,noi,fl,f] .= zero(Series{ComplexF64,2})
Quark_cond2_cfl[:,noi,fl,f] .= zero(Series{ComplexF64,Nder})
ap_density .= Array(dot.(dws.st,psi))
@timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
t = point_time((b,r),lp)
......@@ -280,7 +300,7 @@ function Backflow_pt() # Will be backflow
ChiDchi_cfl .= ChiDchi_cfl./prod(lp.iL[1:3])
Quark_cond2_cfl .= Quark_cond2_cfl./prod(lp.iL[1:3])
println(log_file,"Finished measuring 1pt")
println(log_file,"Finished measuring 1pt \n")
return nothing
end
......@@ -314,8 +334,8 @@ function Two_pt_lagrange() # Will be 2pt lagrange mult
println(log_file,"CG converged after ",niter," iterations with residue ",CUDA.mapreduce(x -> norm2(x), +, dws.sr))
flush(log_file)
pphat_t0[:,noi,f] .= zero(Series{Float64,2})
pptilde_t0[:,noi,f] .= zero(Series{ComplexF64,2})
pphat_t0[:,noi,f] .= zero(Series{Float64,Nder})
pptilde_t0[:,noi,f] .= zero(Series{ComplexF64,Nder})
@timeit "Volume sum" begin
pphat_t0[:,noi,f] .= -scalar_contraction(psi)
pptilde_t0[:,noi,f] .= dot_contraction(dws.st,psi)
......@@ -335,8 +355,8 @@ function Two_pt_lagrange() # Will be 2pt lagrange mult
for fl in 1:params["Frontflow"]["nsteps"]
pphat_t[:,noi,fl,f] .= zero(Series{Float64,2})
pptilde_t[:,noi,fl,f] .= zero(Series{ComplexF64,2})
pphat_t[:,noi,fl,f] .= zero(Series{Float64,Nder})
pptilde_t[:,noi,fl,f] .= zero(Series{ComplexF64,Nder})
@timeit "Volume sum" begin
pphat_t[:,noi,fl,f] .= -scalar_contraction(psi)
pptilde_t[:,noi,fl,f] .= dot_contraction(dws.st,psi)
......@@ -347,8 +367,8 @@ function Two_pt_lagrange() # Will be 2pt lagrange mult
flw(U, dws.st, int, 1, params["Frontflow"]["epsilon"], gp, dpar[f], lp, ymws, dws)
end
pphat_t[:,noi,end,f] .= zero(Series{Float64,2})
pptilde_t[:,noi,end,f] .= zero(Series{ComplexF64,2})
pphat_t[:,noi,end,f] .= zero(Series{Float64,Nder})
pptilde_t[:,noi,end,f] .= zero(Series{ComplexF64,Nder})
@timeit "Volume sum" begin
pphat_t[:,noi,end,f] .= -scalar_contraction(psi)
pptilde_t[:,noi,end,f] .= dot_contraction(dws.st,psi)
......
function meas_sfcf()
if params["sfcf"]["meas"]
println(log_file,"Measuring Sfcf...")
flush(log_file)
@timeit "Sfcf" compute_propagators()
end
return nothing
end
"""
function compute_propagators()
Computes the propagators for the first two components of spin.
The propagators are stored in Acs (t=0 to bulk), Bcs(bulk to t=T) and Ccs(t=0 to t=T)
"""
function compute_propagators()
for f in 1:length(dpar)
println(log_file,"Computing propagators from t=0 to the bulk for fermion "*fernames[f])
niter = bndpropagator!(psi, U, dpar[f], dws, lp, params["Fermion"*fernames[f]]["maxiter"], params["Fermion"*fernames[f]]["tolerance"], 1, 1)
println(log_file,"CG converged for c=1 and s=1 after ",niter," iterations with absolute residue ", CUDA.mapreduce(x -> norm2(x), +, dws.sr))
global A11 .= Array(psi)
global C11 = bndtobnd(psi, U, dpar[f], dws, lp)
flush(log_file)
niter = bndpropagator!(psi, U, dpar[f], dws, lp, params["Fermion"*fernames[f]]["maxiter"], params["Fermion"*fernames[f]]["tolerance"], 2, 1)
println(log_file,"CG converged for c=2 and s=1 after ",niter," iterations with absolute residue ", CUDA.mapreduce(x -> norm2(x), +, dws.sr))
global A21 .= Array(psi)
global C21 = bndtobnd(psi, U, dpar[f], dws, lp)
flush(log_file)
niter = bndpropagator!(psi, U, dpar[f], dws, lp, params["Fermion"*fernames[f]]["maxiter"], params["Fermion"*fernames[f]]["tolerance"], 3, 1)
println(log_file,"CG converged for c=3 and s=1 after ",niter," iterations with absolute residue ", CUDA.mapreduce(x -> norm2(x), +, dws.sr))
global A31 .= Array(psi)
global C31 = bndtobnd(psi, U, dpar[f], dws, lp)
flush(log_file)
niter = bndpropagator!(psi, U, dpar[f], dws, lp, params["Fermion"*fernames[f]]["maxiter"], params["Fermion"*fernames[f]]["tolerance"], 1, 2)
println(log_file,"CG converged for c=1 and s=2 after ",niter," iterations with absolute residue ", CUDA.mapreduce(x -> norm2(x), +, dws.sr))
global A12 .= Array(psi)
global C12 = bndtobnd(psi, U, dpar[f], dws, lp)
flush(log_file)
niter = bndpropagator!(psi, U, dpar[f], dws, lp, params["Fermion"*fernames[f]]["maxiter"], params["Fermion"*fernames[f]]["tolerance"], 2, 2)
println(log_file,"CG converged for c=2 and s=2 after ",niter," iterations with absolute residue ", CUDA.mapreduce(x -> norm2(x), +, dws.sr))
global A22 .= Array(psi)
global C22 = bndtobnd(psi, U, dpar[f], dws, lp)
flush(log_file)
niter = bndpropagator!(psi, U, dpar[f], dws, lp, params["Fermion"*fernames[f]]["maxiter"], params["Fermion"*fernames[f]]["tolerance"], 3, 2)
println(log_file,"CG converged for c=3 and s=2 after ",niter," iterations with absolute residue ", CUDA.mapreduce(x -> norm2(x), +, dws.sr))
global A32 .= Array(psi)
global C32 = bndtobnd(psi, U, dpar[f], dws, lp)
flush(log_file)
println(log_file,"Contracting propagators...")
flush(log_file)
f1_sf[f] = ctoreal(norm2(C11) + norm2(C21) + norm2(C31) + norm2(C12) + norm2(C22) + norm2(C32))
k1_sf[f] = (dot(C11,dmul(Gamma{6},imm(C12))) + dot(C11,dmul(Gamma{7},-C12)) + dot(C11,dmul(Gamma{8}, imm(C11)))
+dot(C12,dmul(Gamma{6},imm(C11))) + dot(C12,dmul(Gamma{7}, C11)) + dot(C12,dmul(Gamma{8},mimm(C12)))
+dot(C21,dmul(Gamma{6},imm(C22))) + dot(C21,dmul(Gamma{7},-C22)) + dot(C21,dmul(Gamma{8}, imm(C21)))
+dot(C22,dmul(Gamma{6},imm(C21))) + dot(C22,dmul(Gamma{7}, C21)) + dot(C22,dmul(Gamma{8},mimm(C22)))
+dot(C31,dmul(Gamma{6},imm(C32))) + dot(C31,dmul(Gamma{7},-C32)) + dot(C31,dmul(Gamma{8}, imm(C31)))
+dot(C32,dmul(Gamma{6},imm(C31))) + dot(C32,dmul(Gamma{7}, C31)) + dot(C32,dmul(Gamma{8},mimm(C32))) )/3
fp_sf[:,f] .= zero(Series{Float64,Nder})
fa_sf[:,f] .= zero(Series{Complex{Float64},Nder})
kt_sf[:,f] .= zero(Series{Complex{Float64},Nder})
kv_sf[:,f] .= zero(Series{Complex{Float64},Nder})
@timeit "Volume sum" for b in 1:lp.bsz for r in 1:lp.rsz
t = point_time((b,r),lp)
fp_sf[t,f] += ctoreal(norm2(A11[b,r]) + norm2(A21[b,r]) + norm2(A31[b,r]) + norm2(A12[b,r]) + norm2(A22[b,r]) + norm2(A32[b,r]))/prod(lp.iL[1:3])
fa_sf[t,f] -= (dot(A11[b,r],dmul(Gamma{4},A11[b,r])) + dot(A21[b,r],dmul(Gamma{4},A21[b,r])) + dot(A31[b,r],dmul(Gamma{4},A31[b,r]))
+ dot(A12[b,r],dmul(Gamma{4},A12[b,r])) + dot(A22[b,r],dmul(Gamma{4},A22[b,r])) + dot(A32[b,r],dmul(Gamma{4},A32[b,r])))/prod(lp.iL[1:3])
kv_sf[t,f] += ( dot(A11[b,r],dmul(Gamma{6},imm(A12[b,r]))) + dot(A11[b,r],dmul(Gamma{7},-A12[b,r])) + dot(A11[b,r],dmul(Gamma{8}, imm(A11[b,r])))
+dot(A12[b,r],dmul(Gamma{6},imm(A11[b,r]))) + dot(A12[b,r],dmul(Gamma{7}, A11[b,r])) + dot(A12[b,r],dmul(Gamma{8},mimm(A12[b,r])))
+dot(A21[b,r],dmul(Gamma{6},imm(A22[b,r]))) + dot(A21[b,r],dmul(Gamma{7},-A22[b,r])) + dot(A21[b,r],dmul(Gamma{8}, imm(A21[b,r])))
+dot(A22[b,r],dmul(Gamma{6},imm(A21[b,r]))) + dot(A22[b,r],dmul(Gamma{7}, A21[b,r])) + dot(A22[b,r],dmul(Gamma{8},mimm(A22[b,r])))
+dot(A31[b,r],dmul(Gamma{6},imm(A32[b,r]))) + dot(A31[b,r],dmul(Gamma{7},-A32[b,r])) + dot(A31[b,r],dmul(Gamma{8}, imm(A31[b,r])))
+dot(A32[b,r],dmul(Gamma{6},imm(A31[b,r]))) + dot(A32[b,r],dmul(Gamma{7}, A31[b,r])) + dot(A32[b,r],dmul(Gamma{8},mimm(A32[b,r]))) )/(3*prod(lp.iL[1:3]))
kt_sf[t,f] +=im*(dot(A11[b,r],dmul(Gamma{10},imm(dmul(Gamma{5},A12[b,r])))) + dot(A11[b,r],dmul(Gamma{11},dmul(Gamma{5},-A12[b,r]))) + dot(A11[b,r],dmul(Gamma{12},dmul(Gamma{5}, imm(A11[b,r]))))
+dot(A12[b,r],dmul(Gamma{10},imm(dmul(Gamma{5},A11[b,r])))) + dot(A12[b,r],dmul(Gamma{11},dmul(Gamma{5}, A11[b,r]))) + dot(A12[b,r],dmul(Gamma{12},dmul(Gamma{5},mimm(A12[b,r]))))
+dot(A21[b,r],dmul(Gamma{10},imm(dmul(Gamma{5},A22[b,r])))) + dot(A21[b,r],dmul(Gamma{11},dmul(Gamma{5},-A22[b,r]))) + dot(A21[b,r],dmul(Gamma{12},dmul(Gamma{5}, imm(A21[b,r]))))
+dot(A22[b,r],dmul(Gamma{10},imm(dmul(Gamma{5},A21[b,r])))) + dot(A22[b,r],dmul(Gamma{11},dmul(Gamma{5}, A21[b,r]))) + dot(A22[b,r],dmul(Gamma{12},dmul(Gamma{5},mimm(A22[b,r]))))
+dot(A31[b,r],dmul(Gamma{10},imm(dmul(Gamma{5},A32[b,r])))) + dot(A31[b,r],dmul(Gamma{11},dmul(Gamma{5},-A32[b,r]))) + dot(A31[b,r],dmul(Gamma{12},dmul(Gamma{5}, imm(A31[b,r]))))
+dot(A32[b,r],dmul(Gamma{10},imm(dmul(Gamma{5},A31[b,r])))) + dot(A32[b,r],dmul(Gamma{11},dmul(Gamma{5}, A31[b,r]))) + dot(A32[b,r],dmul(Gamma{12},dmul(Gamma{5},mimm(A32[b,r])))) )/(3*prod(lp.iL[1:3]))
end end
# println(log_file,"Computing propagators from t=T to the bulk")
# niter = Tbndpropagator!(psi, U, dpar, dws, lp, params["Fermion"]["maxiter"], params["Fermion"]["tolerance"], 1, 1)
# println(log_file,"CG converged for c=1 and s=1 after ",niter," iterations with absolute residue ", CUDA.mapreduce(x -> norm(x), +, dws.sr))
# global B11 .= Array(psi)
# flush(log_file)
# niter = Tbndpropagator!(psi, U, dpar, dws, lp, params["Fermion"]["maxiter"], params["Fermion"]["tolerance"], 2, 1)
# println(log_file,"CG converged for c=2 and s=1 after ",niter," iterations with absolute residue ", CUDA.mapreduce(x -> norm(x), +, dws.sr))
# global B21 .= Array(psi)
# flush(log_file)
# niter = Tbndpropagator!(psi, U, dpar, dws, lp, params["Fermion"]["maxiter"], params["Fermion"]["tolerance"], 3, 1)
# println(log_file,"CG converged for c=3 and s=1 after ",niter," iterations with absolute residue ", CUDA.mapreduce(x -> norm(x), +, dws.sr))
# global B31 .= Array(psi)
# flush(log_file)
# niter = Tbndpropagator!(psi, U, dpar, dws, lp, params["Fermion"]["maxiter"], params["Fermion"]["tolerance"], 1, 2)
# println(log_file,"CG converged for c=1 and s=2 after ",niter," iterations with absolute residue ", CUDA.mapreduce(x -> norm(x), +, dws.sr))
# global B12 .= Array(psi)
# flush(log_file)
# niter = Tbndpropagator!(psi, U, dpar, dws, lp, params["Fermion"]["maxiter"], params["Fermion"]["tolerance"], 2, 2)
# println(log_file,"CG converged for c=2 and s=2 after ",niter," iterations with absolute residue ", CUDA.mapreduce(x -> norm(x), +, dws.sr))
# global B22 .= Array(psi)
# flush(log_file)
# niter = Tbndpropagator!(psi, U, dpar, dws, lp, params["Fermion"]["maxiter"], params["Fermion"]["tolerance"], 3, 2)
# println(log_file,"CG converged for c=3 and s=2 after ",niter," iterations with absolute residue ", CUDA.mapreduce(x -> norm(x), +, dws.sr))
# global B32 .= Array(psi)
# flush(log_file)
# println(log_file,"\nComputing gP...\n")
# flush(log_file)
# global gP = gP_fun()
# println(log_file,"\nComputing gA...\n")
# flush(log_file)
# global gA = gA_fun()
# println(log_file,"\nComputing lV...\n")
# flush(log_file)
# global lV = lV_fun()
# println(log_file,"\nComputing lT...\n")
# flush(log_file)
# global lT = lT_fun()
end
return nothing
end
# function gP_fun()
# cf = Vector{Complex{Float64}}(undef,lp.iL[4])
# for t in 1:lp.iL[4]
# cf[t] = 0.0
# 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)
# cf[t] += (norm2(B11[b,r]) + norm2(B21[b,r]) + norm2(B31[b,r]) + norm2(B12[b,r]) + norm2(B22[b,r]) + norm2(B32[b,r]))/prod(lp.iL[1:3])
# end end end
# end
# return cf
# end
# function gA_fun()
# cf = Vector{Complex{Float64}}(undef,lp.iL[4])
# for t in 1:lp.iL[4]
# cf[t] = 0.0
# 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)
# cf[t] += (dot(B11[b,r],dmul(Gamma{4},B11[b,r])) + dot(B21[b,r],dmul(Gamma{4},B21[b,r])) + dot(B31[b,r],dmul(Gamma{4},B31[b,r]))
# + dot(B12[b,r],dmul(Gamma{4},B12[b,r])) + dot(B22[b,r],dmul(Gamma{4},B22[b,r])) + dot(B32[b,r],dmul(Gamma{4},B32[b,r])))/prod(lp.iL[1:3])
# end end end
# end
# return cf
# end
# function lV_fun()
# cf = Vector{Complex{Float64}}(undef,lp.iL[4])
# for t in 1:lp.iL[4]
# cf[t] = 0.0
# 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)
# cf[t] += ( dot(B11[b,r],dmul(Gamma{6},mimm(B12[b,r]))) + dot(B11[b,r],dmul(Gamma{7}, B12[b,r])) + dot(B11[b,r],dmul(Gamma{8},mimm(B11[b,r])))
# +dot(B12[b,r],dmul(Gamma{6},mimm(B11[b,r]))) + dot(B12[b,r],dmul(Gamma{7},-B11[b,r])) + dot(B12[b,r],dmul(Gamma{8}, imm(B12[b,r])))
# +dot(B21[b,r],dmul(Gamma{6},mimm(B22[b,r]))) + dot(B21[b,r],dmul(Gamma{7}, B22[b,r])) + dot(B21[b,r],dmul(Gamma{8},mimm(B21[b,r])))
# +dot(B22[b,r],dmul(Gamma{6},mimm(B21[b,r]))) + dot(B22[b,r],dmul(Gamma{7},-B21[b,r])) + dot(B22[b,r],dmul(Gamma{8}, imm(B22[b,r])))
# +dot(B31[b,r],dmul(Gamma{6},mimm(B32[b,r]))) + dot(B31[b,r],dmul(Gamma{7}, B32[b,r])) + dot(B31[b,r],dmul(Gamma{8},mimm(B31[b,r])))
# +dot(B32[b,r],dmul(Gamma{6},mimm(B31[b,r]))) + dot(B32[b,r],dmul(Gamma{7},-B31[b,r])) + dot(B32[b,r],dmul(Gamma{8}, imm(B32[b,r]))) )/(3*prod(lp.iL[1:3]))
# end end end
# end
# return cf
# end
# function lT_fun()
# cf = Vector{Complex{Float64}}(undef,lp.iL[4])
# for t in 1:lp.iL[4]
# cf[t] = 0.0
# 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)
# cf[t] +=-im*(dot(B11[b,r],dmul(Gamma{10},mimm(dmul(Gamma{5},B12[b,r])))) + dot(B11[b,r],dmul(Gamma{11},dmul(Gamma{5}, B12[b,r]))) + dot(B11[b,r],dmul(Gamma{12},dmul(Gamma{5},mimm(B11[b,r]))))
# +dot(B12[b,r],dmul(Gamma{10},mimm(dmul(Gamma{5},B11[b,r])))) + dot(B12[b,r],dmul(Gamma{11},dmul(Gamma{5},-B11[b,r]))) + dot(B12[b,r],dmul(Gamma{12},dmul(Gamma{5}, imm(B12[b,r]))))
# +dot(B21[b,r],dmul(Gamma{10},mimm(dmul(Gamma{5},B22[b,r])))) + dot(B21[b,r],dmul(Gamma{11},dmul(Gamma{5}, B22[b,r]))) + dot(B21[b,r],dmul(Gamma{12},dmul(Gamma{5},mimm(B21[b,r]))))
# +dot(B22[b,r],dmul(Gamma{10},mimm(dmul(Gamma{5},B21[b,r])))) + dot(B22[b,r],dmul(Gamma{11},dmul(Gamma{5},-B21[b,r]))) + dot(B22[b,r],dmul(Gamma{12},dmul(Gamma{5}, imm(B22[b,r]))))
# +dot(B31[b,r],dmul(Gamma{10},mimm(dmul(Gamma{5},B32[b,r])))) + dot(B31[b,r],dmul(Gamma{11},dmul(Gamma{5}, B32[b,r]))) + dot(B31[b,r],dmul(Gamma{12},dmul(Gamma{5},mimm(B31[b,r]))))
# +dot(B32[b,r],dmul(Gamma{10},mimm(dmul(Gamma{5},B31[b,r])))) + dot(B32[b,r],dmul(Gamma{11},dmul(Gamma{5},-B31[b,r]))) + dot(B32[b,r],dmul(Gamma{12},dmul(Gamma{5}, imm(B32[b,r])))) )/(3*prod(lp.iL[1:3]))
# end end end
# end
# return cf
# end
......@@ -12,7 +12,7 @@ function read_ff(name::String)
end
ihdr = Vector{Int32}(undef,1)
BDIO_read(file, ihdr)
if ihdr[1] == 1740655571
if ihdr[1] == 1742298500
println("Reading file ",name)
else
error("Wrong IHDR in file ", name)
......@@ -33,6 +33,8 @@ function read_ff(name::String)
tsourceff=Vector{Int32}(undef,1)
tsourcebf=Vector{Int32}(undef,1)
Nf=Vector{Int32}(undef,1)
Nder=Vector{Int32}(undef,1)
sfcf=Vector{Int32}(undef,1)
BDIO_read(file, dims)
......@@ -57,152 +59,163 @@ function read_ff(name::String)
BDIO_read(file, tsourcebf)
flow_times=Vector{Float64}(undef,nflow[1])
nflow[1] > 0 ? BDIO_read(file, flow_times) : nothing
BDIO_read(file, Nder)
BDIO_read(file, sfcf)
println("Reading data from a ",Int64.(iL), " lattice.")
println("Frontflow: ",N_noiseff[1], " sources at euclidean time ", tsourceff[1] ,". Flowtime starting at ",tzeroff[1], " with ",nsteps[1]," steps of size ", epsilon[1])
println("Backflow: ",N_noisebf[1]," sources at euclidean time ",tsourcebf[1],". Flow times are ", flow_times)
println("The fermion propagators have ",Nder[1]," derivatives.")
sfcf[1] == 1 ? println("Sfcf available") : nothing
N_noiseff = N_noiseff[1]
N_noisebf = N_noisebf[1]
nflow = nflow[1]
nsteps = nsteps[1]
Nf = Nf[1]
sfcf = (sfcf[1] == Int32(1))
Nder = Nder[1] # Not the same as in the code, but the same as in the input file.
TvecR = Vector{Float64}(undef,iL[4]);
TvecC = Vector{ComplexF64}(undef,iL[4]);
CN = Vector{ComplexF64}(undef,1);
RN = Vector{Float64}(undef,1);
pp_corr = Array{Float64}(undef,iL[4],N_noiseff,Nf);
ap_corr = Array{ComplexF64}(undef,iL[4],N_noiseff,Nf);
pphat0 = Array{Float64}(undef,iL[4],N_noiseff,Nf);
pptilde0 = Array{ComplexF64}(undef,iL[4],N_noiseff,Nf);
pp_corr_t = Array{Float64}(undef,iL[4],N_noiseff,nsteps+1,Nf);
ap_corr_t = Array{ComplexF64}(undef,iL[4],N_noiseff,nsteps+1,Nf);
pphat_t = Array{Float64}(undef,iL[4],N_noiseff,nsteps+1,Nf);
pptilde_t = Array{ComplexF64}(undef,iL[4],N_noiseff,nsteps+1,Nf);
pp_corr = Array{Float64}(undef,iL[4],N_noiseff,Nf,Nder+1);
ap_corr = Array{ComplexF64}(undef,iL[4],N_noiseff,Nf,Nder+1);
pphat0 = Array{Float64}(undef,iL[4],N_noiseff,Nf,Nder+1);
pptilde0 = Array{ComplexF64}(undef,iL[4],N_noiseff,Nf,Nder+1);
pp_corr_t = Array{Float64}(undef,iL[4],N_noiseff,nsteps+1,Nf,Nder+1);
ap_corr_t = Array{ComplexF64}(undef,iL[4],N_noiseff,nsteps+1,Nf,Nder+1);
pphat_t = Array{Float64}(undef,iL[4],N_noiseff,nsteps+1,Nf,Nder+1);
pptilde_t = Array{ComplexF64}(undef,iL[4],N_noiseff,nsteps+1,Nf,Nder+1);
Eoft = Array{Complex{Float64}}(undef,1+nsteps,iL[4]);
Eoft0 = Array{Complex{Float64}}(undef,iL[4]);
Qt = Array{Complex{Float64}}(undef,1+nsteps,iL[4]);
Qt0 = Array{Complex{Float64}}(undef,iL[4]);
pp_corr_tfl = Array{Float64}(undef,iL[4],N_noisebf,nflow,Nf);
ap_corr_tfl = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
Sigma = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
Sigma_cfl = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
Sigma2 = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
Sigma2_cfl = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
ChiDchi = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
ChiDchi_cfl = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
#
## d/dm
#
pp_corr_dm = Array{Float64}(undef,iL[4],N_noiseff,Nf);
ap_corr_dm = Array{ComplexF64}(undef,iL[4],N_noiseff,Nf);
pphat0_dm = Array{Float64}(undef,iL[4],N_noiseff,Nf);
pptilde0_dm = Array{ComplexF64}(undef,iL[4],N_noiseff,Nf);
pp_corr_t_dm = Array{Float64}(undef,iL[4],N_noiseff,nsteps+1,Nf);
ap_corr_t_dm = Array{ComplexF64}(undef,iL[4],N_noiseff,nsteps+1,Nf);
pphat_t_dm = Array{Float64}(undef,iL[4],N_noiseff,nsteps+1,Nf);
pptilde_t_dm = Array{ComplexF64}(undef,iL[4],N_noiseff,nsteps+1,Nf);
Eoft_dm = Array{Complex{Float64}}(undef,1+nsteps,iL[4]);
Eoft0_dm = Array{Complex{Float64}}(undef,iL[4]);
Qt_dm = Array{Complex{Float64}}(undef,1+nsteps,iL[4]);
Qt0_dm = Array{Complex{Float64}}(undef,iL[4]);
pp_corr_tfl_dm = Array{Float64}(undef,iL[4],N_noisebf,nflow,Nf);
ap_corr_tfl_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
Sigma_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
Sigma_cfl_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
Sigma2_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
Sigma2_cfl_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
ChiDchi_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
ChiDchi_cfl_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
pp_corr_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
ap_corr_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
pphat0_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
pptilde0_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
pp_corr_t_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
ap_corr_t_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
pphat_t_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
pptilde_t_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
Eoft_mc = [Vector{Complex{Float64}}() for _ in 1:1+nsteps, _ in 1:iL[4]]
Eoft0_mc = [Vector{Complex{Float64}}() for _ in 1:iL[4]]
Qt_mc = [Vector{Complex{Float64}}() for _ in 1:1+nsteps, _ in 1:iL[4]]
Qt0_mc = [Vector{Complex{Float64}}() for _ in 1:iL[4]]
pp_corr_tfl = Array{Float64}(undef,iL[4],N_noisebf,nflow,Nf,Nder+1);
ap_corr_tfl = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf,Nder+1);
Sigma = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf,Nder+1);
Sigma_cfl = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf,Nder+1);
Sigma2 = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf,Nder+1);
Sigma2_cfl = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf,Nder+1);
ChiDchi = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf,Nder+1);
ChiDchi_cfl = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf,Nder+1);
if sfcf
fp = Array{Float64}(undef,iL[4],Nf,Nder+1);
fa = Array{ComplexF64}(undef,iL[4],Nf,Nder+1);
kv = Array{ComplexF64}(undef,iL[4],Nf,Nder+1);
kt = Array{ComplexF64}(undef,iL[4],Nf,Nder+1);
f1 = Array{Float64}(undef,Nf,Nder+1);
k1 = Array{ComplexF64}(undef,Nf,Nder+1);
else
fp = nothing;
fa = nothing;
kv = nothing;
kt = nothing;
f1 = nothing;
k1 = nothing;
end
pp_corr_tfl_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
ap_corr_tfl_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma_cfl_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma2_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma2_cfl_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
ChiDchi_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
ChiDchi_cfl_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
pp_corr_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
ap_corr_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
pphat0_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
pptilde0_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
pp_corr_t_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
ap_corr_t_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
pphat_t_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
pptilde_t_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
# #
# ## d/dm
# #
# pp_corr_dm = Array{Float64}(undef,iL[4],N_noiseff,Nf);
# ap_corr_dm = Array{ComplexF64}(undef,iL[4],N_noiseff,Nf);
# pphat0_dm = Array{Float64}(undef,iL[4],N_noiseff,Nf);
# pptilde0_dm = Array{ComplexF64}(undef,iL[4],N_noiseff,Nf);
# pp_corr_t_dm = Array{Float64}(undef,iL[4],N_noiseff,nsteps+1,Nf);
# ap_corr_t_dm = Array{ComplexF64}(undef,iL[4],N_noiseff,nsteps+1,Nf);
# pphat_t_dm = Array{Float64}(undef,iL[4],N_noiseff,nsteps+1,Nf);
# pptilde_t_dm = Array{ComplexF64}(undef,iL[4],N_noiseff,nsteps+1,Nf);
# Eoft_dm = Array{Complex{Float64}}(undef,1+nsteps,iL[4]);
# Eoft0_dm = Array{Complex{Float64}}(undef,iL[4]);
# Qt_dm = Array{Complex{Float64}}(undef,1+nsteps,iL[4]);
# Qt0_dm = Array{Complex{Float64}}(undef,iL[4]);
# pp_corr_tfl_dm = Array{Float64}(undef,iL[4],N_noisebf,nflow,Nf);
# ap_corr_tfl_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
# Sigma_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
# Sigma_cfl_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
# Sigma2_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
# Sigma2_cfl_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
# ChiDchi_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
# ChiDchi_cfl_dm = Array{ComplexF64}(undef,iL[4],N_noisebf,nflow,Nf);
pp_corr_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf, _ in 1:(Nder+1)]
ap_corr_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf, _ in 1:(Nder+1)]
pphat0_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf, _ in 1:(Nder+1)]
pptilde0_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf, _ in 1:(Nder+1)]
pp_corr_t_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf, _ in 1:(Nder+1)]
ap_corr_t_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf, _ in 1:(Nder+1)]
pphat_t_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf, _ in 1:(Nder+1)]
pptilde_t_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf, _ in 1:(Nder+1)]
Eoft_mc = [Vector{Complex{Float64}}() for _ in 1:1+nsteps, _ in 1:iL[4]]
Eoft0_mc = [Vector{Complex{Float64}}() for _ in 1:iL[4]]
Qt_mc = [Vector{Complex{Float64}}() for _ in 1:1+nsteps, _ in 1:iL[4]]
Qt0_mc = [Vector{Complex{Float64}}() for _ in 1:iL[4]]
pp_corr_tfl_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
ap_corr_tfl_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma_cfl_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma2_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma2_cfl_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
ChiDchi_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
ChiDchi_cfl_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
pp_corr_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
ap_corr_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
pphat0_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
pptilde0_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
pp_corr_t_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
ap_corr_t_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
pphat_t_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
pptilde_t_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
pp_corr_tfl_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
ap_corr_tfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma_cfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma2_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma2_cfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
ChiDchi_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
ChiDchi_cfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
pp_corr_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
ap_corr_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
pphat0_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
pptilde0_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
pp_corr_t_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
ap_corr_t_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
pphat_t_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
pptilde_t_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
pp_corr_tfl_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
ap_corr_tfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma_cfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma2_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
Sigma2_cfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
ChiDchi_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
ChiDchi_cfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
pp_corr_tfl_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf, _ in 1:(Nder+1)]
ap_corr_tfl_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf, _ in 1:(Nder+1)]
Sigma_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf, _ in 1:(Nder+1)]
Sigma_cfl_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf, _ in 1:(Nder+1)]
Sigma2_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf, _ in 1:(Nder+1)]
Sigma2_cfl_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf, _ in 1:(Nder+1)]
ChiDchi_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf, _ in 1:(Nder+1)]
ChiDchi_cfl_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf, _ in 1:(Nder+1)]
if sfcf
fp_mc = [Vector{Float64}() for _ in 1:iL[4], _ in 1:Nf, _ in 1:(Nder+1)]
fa_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:Nf, _ in 1:(Nder+1)]
kv_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:Nf, _ in 1:(Nder+1)]
kt_mc = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:Nf, _ in 1:(Nder+1)]
f1_mc = [Vector{Float64}() for _ in 1:Nf, _ in 1:(Nder+1)]
k1_mc = [Vector{ComplexF64}() for _ in 1:Nf, _ in 1:(Nder+1)]
end
# pp_corr_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
# ap_corr_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
# pphat0_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
# pptilde0_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
# pp_corr_t_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
# ap_corr_t_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
# pphat_t_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
# pptilde_t_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
# pp_corr_tfl_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# ap_corr_tfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# Sigma_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# Sigma_cfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# Sigma2_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# Sigma2_cfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# ChiDchi_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# ChiDchi_cfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# pp_corr_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
# ap_corr_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
# pphat0_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
# pptilde0_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:Nf]
# pp_corr_t_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
# ap_corr_t_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
# pphat_t_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
# pptilde_t_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noiseff, _ in 1:nsteps+1, _ in 1:Nf]
# pp_corr_tfl_mc_dm = [Vector{Float64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# ap_corr_tfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# Sigma_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# Sigma_cfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# Sigma2_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# Sigma2_cfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# ChiDchi_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
# ChiDchi_cfl_mc_dm = [Vector{ComplexF64}() for _ in 1:iL[4], _ in 1:N_noisebf, _ in 1:nflow, _ in 1:Nf]
while BDIO_get_uinfo(file) != 8
......@@ -211,64 +224,66 @@ function read_ff(name::String)
while BDIO_get_uinfo(file) == 8
for f in 1:Nf
for noi in 1:N_noiseff
BDIO_read(file,TvecR)
pp_corr[:,noi,f] .= TvecR
BDIO_read(file,TvecC)
ap_corr[:,noi,f] .= TvecC
BDIO_read(file,TvecR)
pphat0[:,noi,f] .= TvecR
BDIO_read(file,TvecC)
pptilde0[:,noi,f] .= TvecC
for fl in 1:nsteps+1
for der in 1:(Nder+1)
for f in 1:Nf
for noi in 1:N_noiseff
BDIO_read(file,TvecR)
pp_corr_t[:,noi,fl,f].= TvecR
pp_corr[:,noi,f,der] .= TvecR
BDIO_read(file,TvecC)
ap_corr_t[:,noi,fl,f].= TvecC
ap_corr[:,noi,f,der] .= TvecC
BDIO_read(file,TvecR)
pphat_t[:,noi,fl,f].= TvecR
pphat0[:,noi,f,der] .= TvecR
BDIO_read(file,TvecC)
pptilde_t[:,noi,fl,f].= TvecC
pptilde0[:,noi,f,der] .= TvecC
for fl in 1:nsteps+1
BDIO_read(file,TvecR)
pp_corr_t[:,noi,fl,f,der].= TvecR
BDIO_read(file,TvecC)
ap_corr_t[:,noi,fl,f,der].= TvecC
BDIO_read(file,TvecR)
pphat_t[:,noi,fl,f,der].= TvecR
BDIO_read(file,TvecC)
pptilde_t[:,noi,fl,f,der].= TvecC
end
end
end
end
for f in 1:Nf
for noi in 1:N_noiseff
BDIO_read(file,TvecR)
pp_corr_dm[:,noi,f] .= TvecR
# for f in 1:Nf
# for noi in 1:N_noiseff
# BDIO_read(file,TvecR)
# pp_corr_dm[:,noi,f] .= TvecR
BDIO_read(file,TvecC)
ap_corr_dm[:,noi,f] .= TvecC
# BDIO_read(file,TvecC)
# ap_corr_dm[:,noi,f] .= TvecC
BDIO_read(file,TvecR)
pphat0_dm[:,noi,f] .= TvecR
# BDIO_read(file,TvecR)
# pphat0_dm[:,noi,f] .= TvecR
BDIO_read(file,TvecC)
pptilde0_dm[:,noi,f] .= TvecC
# BDIO_read(file,TvecC)
# pptilde0_dm[:,noi,f] .= TvecC
for fl in 1:nsteps+1
BDIO_read(file,TvecR)
pp_corr_t_dm[:,noi,fl,f].= TvecR
# for fl in 1:nsteps+1
# BDIO_read(file,TvecR)
# pp_corr_t_dm[:,noi,fl,f].= TvecR
BDIO_read(file,TvecC)
ap_corr_t_dm[:,noi,fl,f].= TvecC
# BDIO_read(file,TvecC)
# ap_corr_t_dm[:,noi,fl,f].= TvecC
BDIO_read(file,TvecR)
pphat_t_dm[:,noi,fl,f].= TvecR
# BDIO_read(file,TvecR)
# pphat_t_dm[:,noi,fl,f].= TvecR
BDIO_read(file,TvecC)
pptilde_t_dm[:,noi,fl,f].= TvecC
end
end
end
# BDIO_read(file,TvecC)
# pptilde_t_dm[:,noi,fl,f].= TvecC
# end
# end
# end
BDIO_read(file,TvecC)
Eoft0[:] .= TvecC
......@@ -282,65 +297,96 @@ function read_ff(name::String)
Qt[fl,:] .= TvecC
end
for f in 1:Nf
for noi in 1:N_noisebf
for fl in 1:nflow
BDIO_read(file,TvecR)
pp_corr_tfl[:,noi,fl,f].= TvecR
for der in 1:(Nder+1)
for f in 1:Nf
for noi in 1:N_noisebf
for fl in 1:nflow
BDIO_read(file,TvecR)
pp_corr_tfl[:,noi,fl,f,der].= TvecR
BDIO_read(file,TvecC)
ap_corr_tfl[:,noi,fl,f].= TvecC
BDIO_read(file,TvecC)
ap_corr_tfl[:,noi,fl,f,der].= TvecC
BDIO_read(file,TvecC)
Sigma[:,noi,fl,f] .= TvecC
BDIO_read(file,TvecC)
Sigma[:,noi,fl,f,der] .= TvecC
BDIO_read(file,TvecC)
Sigma_cfl[:,noi,fl,f] .= TvecC
BDIO_read(file,TvecC)
Sigma_cfl[:,noi,fl,f,der] .= TvecC
BDIO_read(file,TvecC)
Sigma2[:,noi,fl,f] .= TvecC
BDIO_read(file,TvecC)
Sigma2[:,noi,fl,f,der] .= TvecC
BDIO_read(file,TvecC)
Sigma2_cfl[:,noi,fl,f] .= TvecC
BDIO_read(file,TvecC)
Sigma2_cfl[:,noi,fl,f,der] .= TvecC
BDIO_read(file,TvecC)
ChiDchi[:,noi,fl,f] .= TvecC
BDIO_read(file,TvecC)
ChiDchi[:,noi,fl,f,der] .= TvecC
BDIO_read(file,TvecC)
ChiDchi_cfl[:,noi,fl,f] .= TvecC
BDIO_read(file,TvecC)
ChiDchi_cfl[:,noi,fl,f,der] .= TvecC
end
end
end
end
for f in 1:Nf
for noi in 1:N_noisebf
for fl in 1:nflow
BDIO_read(file,TvecR)
pp_corr_tfl_dm[:,noi,fl,f].= TvecR
BDIO_read(file,TvecC)
ap_corr_tfl_dm[:,noi,fl,f].= TvecC
BDIO_read(file,TvecC)
Sigma_dm[:,noi,fl,f] .= TvecC
if sfcf
for der in 1:(Nder+1)
for f in 1:Nf
BDIO_read(file,TvecR)
fp[:,f,der] .= TvecR
BDIO_read(file,TvecC)
Sigma_cfl_dm[:,noi,fl,f] .= TvecC
fa[:,f,der] .= TvecC
BDIO_read(file,TvecC)
Sigma2_dm[:,noi,fl,f] .= TvecC
kv[:,f,der] .= TvecC
BDIO_read(file,TvecC)
Sigma2_cfl_dm[:,noi,fl,f] .= TvecC
kt[:,f,der] .= TvecC
BDIO_read(file,TvecC)
ChiDchi_dm[:,noi,fl,f] .= TvecC
BDIO_read(file,RN)
f1[f,der] = RN[1]
BDIO_read(file,TvecC)
ChiDchi_cfl_dm[:,noi,fl,f] .= TvecC
BDIO_read(file,CN)
k1[f,der] = CN[1]
end
end
end
# for f in 1:Nf
# for noi in 1:N_noisebf
# for fl in 1:nflow
# BDIO_read(file,TvecR)
# pp_corr_tfl_dm[:,noi,fl,f].= TvecR
# BDIO_read(file,TvecC)
# ap_corr_tfl_dm[:,noi,fl,f].= TvecC
# BDIO_read(file,TvecC)
# Sigma_dm[:,noi,fl,f] .= TvecC
# BDIO_read(file,TvecC)
# Sigma_cfl_dm[:,noi,fl,f] .= TvecC
# BDIO_read(file,TvecC)
# Sigma2_dm[:,noi,fl,f] .= TvecC
# BDIO_read(file,TvecC)
# Sigma2_cfl_dm[:,noi,fl,f] .= TvecC
# BDIO_read(file,TvecC)
# ChiDchi_dm[:,noi,fl,f] .= TvecC
# BDIO_read(file,TvecC)
# ChiDchi_cfl_dm[:,noi,fl,f] .= TvecC
# end
# end
# end
# HERE SFCF IS MISSING
push!.(Eoft0_mc, Eoft0)
push!.(Eoft_mc, Eoft)
push!.(Qt0_mc, Qt0)
......@@ -364,23 +410,39 @@ function read_ff(name::String)
push!.(ChiDchi_mc, ChiDchi)
push!.(ChiDchi_cfl_mc, ChiDchi_cfl)
push!.(pp_corr_mc_dm, pp_corr_dm)
push!.(ap_corr_mc_dm, ap_corr_dm)
push!.(pphat0_mc_dm, pphat0_dm)
push!.(pptilde0_mc_dm, pptilde0_dm)
push!.(pp_corr_t_mc_dm, pp_corr_t_dm)
push!.(ap_corr_t_mc_dm, ap_corr_t_dm)
push!.(pphat_t_mc_dm, pphat_t_dm)
push!.(pptilde_t_mc_dm, pptilde_t_dm)
push!.(pp_corr_tfl_mc_dm, pp_corr_tfl_dm)
push!.(ap_corr_tfl_mc_dm, ap_corr_tfl_dm)
push!.(Sigma_mc_dm, Sigma_dm)
push!.(Sigma_cfl_mc_dm, Sigma_cfl_dm)
push!.(Sigma2_mc_dm, Sigma2_dm)
push!.(Sigma2_cfl_mc_dm, Sigma2_cfl_dm)
push!.(ChiDchi_mc_dm, ChiDchi_dm)
push!.(ChiDchi_cfl_mc_dm, ChiDchi_cfl_dm)
# push!.(pp_corr_mc_dm, pp_corr_dm)
# push!.(ap_corr_mc_dm, ap_corr_dm)
# push!.(pphat0_mc_dm, pphat0_dm)
# push!.(pptilde0_mc_dm, pptilde0_dm)
# push!.(pp_corr_t_mc_dm, pp_corr_t_dm)
# push!.(ap_corr_t_mc_dm, ap_corr_t_dm)
# push!.(pphat_t_mc_dm, pphat_t_dm)
# push!.(pptilde_t_mc_dm, pptilde_t_dm)
# push!.(pp_corr_tfl_mc_dm, pp_corr_tfl_dm)
# push!.(ap_corr_tfl_mc_dm, ap_corr_tfl_dm)
# push!.(Sigma_mc_dm, Sigma_dm)
# push!.(Sigma_cfl_mc_dm, Sigma_cfl_dm)
# push!.(Sigma2_mc_dm, Sigma2_dm)
# push!.(Sigma2_cfl_mc_dm, Sigma2_cfl_dm)
# push!.(ChiDchi_mc_dm, ChiDchi_dm)
# push!.(ChiDchi_cfl_mc_dm, ChiDchi_cfl_dm)
if sfcf
push!.(fp_mc,fp)
push!.(fa_mc,fa)
push!.(kv_mc,kv)
push!.(kt_mc,kt)
push!.(f1_mc,f1)
push!.(k1_mc,k1)
else
fp_mc = nothing
fa_mc = nothing
kv_mc = nothing
kt_mc = nothing
f1_mc = nothing
k1_mc = nothing
end
BDIO_seek!(file)
BDIO_seek!(file)
......@@ -391,9 +453,10 @@ function read_ff(name::String)
return Eoft0_mc,Eoft_mc,Qt0_mc,Qt_mc,pp_corr_mc,ap_corr_mc,pp_corr_t_mc,ap_corr_t_mc,
pp_corr_tfl_mc,ap_corr_tfl_mc,Sigma_mc,Sigma_cfl_mc,Sigma2_mc,Sigma2_cfl_mc,ChiDchi_mc,
ChiDchi_cfl_mc,pphat_t_mc,pptilde_t_mc,pphat0_mc,pptilde0_mc,
pp_corr_mc_dm,ap_corr_mc_dm,pp_corr_t_mc_dm,ap_corr_t_mc_dm,
pp_corr_tfl_mc_dm,ap_corr_tfl_mc_dm,Sigma_mc_dm,Sigma_cfl_mc_dm,Sigma2_mc_dm,Sigma2_cfl_mc_dm,ChiDchi_mc_dm,
ChiDchi_cfl_mc_dm,pphat_t_mc_dm,pptilde_t_mc_dm,pphat0_mc_dm,pptilde0_mc_dm
# pp_corr_mc_dm,ap_corr_mc_dm,pp_corr_t_mc_dm,ap_corr_t_mc_dm,
# pp_corr_tfl_mc_dm,ap_corr_tfl_mc_dm,Sigma_mc_dm,Sigma_cfl_mc_dm,Sigma2_mc_dm,Sigma2_cfl_mc_dm,ChiDchi_mc_dm,
# ChiDchi_cfl_mc_dm,pphat_t_mc_dm,pptilde_t_mc_dm,pphat0_mc_dm,pptilde0_mc_dm,
fp_mc,fa_mc,kv_mc,kt_mc,f1_mc,k1_mc
end
......@@ -405,8 +468,10 @@ Loads in the variables 'Eoft','Eoft0','Qt','Qt0', 'pp_corr', 'ap_corr', 'pp_corr
"""
function uwff(file::String; tfl = 0)
Eoft0_mc,Eoft_mc,Qt0_mc,Qt_mc,pp_corr_mc,ap_corr_mc,pp_corr_t_mc,ap_corr_t_mc,pp_corr_tfl_mc,ap_corr_tfl_mc,Sigma_mc,Sigma_cfl_mc,Sigma2_mc,Sigma2_cfl_mc,ChiDchi_mc,ChiDchi_cfl_mc,
pphat_t_mc,pptilde_t_mc,pphat0_mc,pptilde0_mc,pp_corr_mc_dm,ap_corr_mc_dm,pp_corr_t_mc_dm,ap_corr_t_mc_dm,pp_corr_tfl_mc_dm,ap_corr_tfl_mc_dm,Sigma_mc_dm,Sigma_cfl_mc_dm,Sigma2_mc_dm,
Sigma2_cfl_mc_dm,ChiDchi_mc_dm,ChiDchi_cfl_mc_dm,pphat_t_mc_dm,pptilde_t_mc_dm,pphat0_mc_dm,pptilde0_mc_dm = read_ff(file)
pphat_t_mc,pptilde_t_mc,pphat0_mc,pptilde0_mc,
# pp_corr_mc_dm,ap_corr_mc_dm,pp_corr_t_mc_dm,ap_corr_t_mc_dm,pp_corr_tfl_mc_dm,ap_corr_tfl_mc_dm,Sigma_mc_dm,Sigma_cfl_mc_dm,Sigma2_mc_dm,
# Sigma2_cfl_mc_dm,ChiDchi_mc_dm,ChiDchi_cfl_mc_dm,pphat_t_mc_dm,pptilde_t_mc_dm,pphat0_mc_dm,pptilde0_mc_dm,
fp_mc,fa_mc,kv_mc,kt_mc,f1_mc,k1_mc = read_ff(file)
runame = String(split(split(file,"/")[end],".")[1])
......
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