First try for multiple fermions

parent 2b5ec8ab
...@@ -66,12 +66,14 @@ function load_structs() ...@@ -66,12 +66,14 @@ function load_structs()
CUDA.device!(parsed_args["G"]) 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 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 gp = GaugeParm{Float64}(SU3{Float64},params["HMC"]["beta"],params["HMC"]["c0"],(params["HMC"]["cG"],0.0),(0.0,0.0),lp.iL);
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, params["Frontflow"]["epsilon"], params["Backflow"]["tol"]) global int = wfl_rk3(Float64, params["Frontflow"]["epsilon"], params["Backflow"]["tol"])
global intsch = omf4(Float64,params["HMC"]["eps"], params["HMC"]["ns"]); global intsch = omf4(Float64,params["HMC"]["eps"], params["HMC"]["ns"]);
global fernames = [replace(k, "Fermion" => "") for k in keys(params) if startswith(k, "Fermion")]
global dpar = [DiracParam{Float64}(SU3fund,(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),0.0,params["Fermion"*f]["ct"]) for f in fernames];
global flow_times = params["Backflow"]["Flow_times"] global flow_times = params["Backflow"]["Flow_times"]
global MCid = 0 global MCid = 0
if params["Space"]["bc"] == 0 if params["Space"]["bc"] == 0
...@@ -103,11 +105,15 @@ function write_log() ...@@ -103,11 +105,15 @@ 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,"Boundary conditions: ", params["Space"]["bc"])
println(log_file,"kappa = ", params["Fermion"]["kappa"]) for i in fernames
println(log_file,"theta = ", params["Fermion"]["theta"]) println(log_file,"Fermion"*i*" parameters:")
println(log_file,"csw = ", dpar.csw) println(log_file,"kappa = ", params["Fermion"*f]["kappa"])
println(log_file,"tolerance = ", params["Fermion"]["tolerance"]) println(log_file,"theta_t = ", params["Fermion"*f]["theta_t"])
println(log_file,"maxiter = ", params["Fermion"]["maxiter"]) println(log_file,"theta = ", params["Fermion"*f]["theta"])
println(log_file,"csw = ", params["Fermion"*f]["csw"])
println(log_file,"tolerance = ", params["Fermion"*f]["tolerance"])
println(log_file,"maxiter = ", params["Fermion"*f]["maxiter"])
end
println(log_file,"N noise frontflow = ", params["Frontflow"]["N_noise"]) println(log_file,"N noise frontflow = ", params["Frontflow"]["N_noise"])
println(log_file,"t_zero = ", params["Frontflow"]["t_zero"]) println(log_file,"t_zero = ", params["Frontflow"]["t_zero"])
println(log_file,"eps frontflw = ", params["Frontflow"]["epsilon"]) println(log_file,"eps frontflw = ", params["Frontflow"]["epsilon"])
...@@ -115,6 +121,7 @@ function write_log() ...@@ -115,6 +121,7 @@ function write_log()
println(log_file,"Flow times = ", params["Backflow"]["Flow_times"]) println(log_file,"Flow times = ", params["Backflow"]["Flow_times"])
println(log_file,"N noise backflow = ", params["Backflow"]["N_noise"]) println(log_file,"N noise backflow = ", params["Backflow"]["N_noise"])
println(log_file,"t_source backflow = ", params["Backflow"]["tsource"]) println(log_file,"t_source backflow = ", params["Backflow"]["tsource"])
println(log_file,"Backflow tolerance = ", params["Backflow"]["tol"])
flush(log_file) flush(log_file)
return nothing return nothing
...@@ -140,8 +147,11 @@ function save_data() ...@@ -140,8 +147,11 @@ function save_data()
BDIO_start_record!(fb, BDIO_BIN_GENERIC, 1) BDIO_start_record!(fb, BDIO_BIN_GENERIC, 1)
BDIO_write!(fb, [convert(Int32, 4)]) BDIO_write!(fb, [convert(Int32, 4)])
BDIO_write!(fb, [convert(Int32, lp.iL[i]) for i in 1:4]) BDIO_write!(fb, [convert(Int32, lp.iL[i]) for i in 1:4])
BDIO_write!(fb, [dpar.m0, dpar.csw]) BDIO_write!(fb, [convert(Int32, length(fernames))])
BDIO_write!(fb, [dpar.th[i] for i in 1:4]) for k in 1:length(fernames)
BDIO_write!(fb, [dpar[k].m0, dpar[k].csw])
BDIO_write!(fb, [dpar[k].th[i] for i in 1:4])
end
BDIO_write!(fb, [convert(Int32,params["Frontflow"]["N_noise"])]) BDIO_write!(fb, [convert(Int32,params["Frontflow"]["N_noise"])])
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"])])
...@@ -158,16 +168,19 @@ function save_data() ...@@ -158,16 +168,19 @@ function save_data()
BDIO_start_record!(fb, BDIO_BIN_GENERIC, 8, true) BDIO_start_record!(fb, BDIO_BIN_GENERIC, 8, true)
for noi in 1:params["Frontflow"]["N_noise"] for f in 1:length(dpar)
BDIO_write!(fb,pp_corr_t0[:,noi]) for noi in 1:params["Frontflow"]["N_noise"]
BDIO_write!(fb,ap_corr_t0[:,noi]) BDIO_write!(fb,pp_corr_t0[:,noi,f])
BDIO_write!(fb,ap_corr_t0[:,noi,f])
for fl in 1:params["Frontflow"]["nsteps"]+1 BDIO_write!(fb,pphat_t0[:,noi,f])
BDIO_write!(fb,pp_corr_t[:,noi,fl]) BDIO_write!(fb,pptilde_t0[:,noi,f])
BDIO_write!(fb,ap_corr_t[:,noi,fl]) for fl in 1:params["Frontflow"]["nsteps"]+1
BDIO_write!(fb,pp_corr_t[:,noi,fl,f])
BDIO_write!(fb,pphat_t[:,noi,fl]) BDIO_write!(fb,ap_corr_t[:,noi,fl,f])
BDIO_write!(fb,pptilde_t[:,noi,fl])
BDIO_write!(fb,pphat_t[:,noi,fl,f])
BDIO_write!(fb,pptilde_t[:,noi,fl,f])
end
end end
end end
...@@ -179,20 +192,21 @@ function save_data() ...@@ -179,20 +192,21 @@ function save_data()
BDIO_write!(fb,Qt[fl,:]) BDIO_write!(fb,Qt[fl,:])
end end
for noi in 1:params["Backflow"]["N_noise"] for f in 1:length(dpar)
for noi in 1:params["Backflow"]["N_noise"]
for fl in 1:length(flow_times)
BDIO_write!(fb,pp_corr_tfl[:,noi,fl,f])
BDIO_write!(fb,ap_corr_tfl[:,noi,fl,f])
for fl in 1:length(flow_times) BDIO_write!(fb,Quark_cond[:,noi,fl,f])
BDIO_write!(fb,pp_corr_tfl[:,noi,fl]) BDIO_write!(fb,Quark_cond_cfl[:,noi,fl,f])
BDIO_write!(fb,ap_corr_tfl[:,noi,fl])
BDIO_write!(fb,Quark_cond[:,noi,fl]) BDIO_write!(fb,Quark_cond2[:,noi,fl,f])
BDIO_write!(fb,Quark_cond_cfl[:,noi,fl]) BDIO_write!(fb,Quark_cond2_cfl[:,noi,fl,f])
BDIO_write!(fb,Quark_cond2[:,noi,fl]) BDIO_write!(fb,ChiDchi[:,noi,fl,f])
BDIO_write!(fb,Quark_cond2_cfl[:,noi,fl]) BDIO_write!(fb,ChiDchi_cfl[:,noi,fl,f])
end
BDIO_write!(fb,ChiDchi[:,noi,fl])
BDIO_write!(fb,ChiDchi_cfl[:,noi,fl])
end end
end end
......
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