Full support for twisted bc

This commit is contained in:
Alberto Ramos 2021-10-31 08:37:53 +01:00
parent 26b5dfab01
commit 410a6d7b25
9 changed files with 214 additions and 100 deletions

View file

@ -7,7 +7,8 @@ Pkg.activate("/lhome/ific/a/alramos/s.images/julia/workspace/LatticeGPU")
using LatticeGPU
# Set lattice/block size
lp = SpaceParm{4}((32,32,32,32), (4,4,4,4), BC_SF_AFWB)
ntwist = (0,0,0,1,0,0)
lp = SpaceParm{4}((32,32,32,32), (4,4,4,4), BC_PERIODIC, ntwist)
println("Space Parameters: ", lp)
# Seed RNG
@ -21,6 +22,10 @@ ALG = SU3alg
PREC = Float64
println("Precision: ", PREC)
# MD integrator
int = omf4(PREC, 0.1, 10)
println(int)
println("Allocating YM workspace")
ymws = YMworkspace(GRP, PREC, lp)
@ -44,19 +49,17 @@ println("Initial Action: ")
@time S = gauge_action(U, lp, gp, ymws)
dt = 0.1
ns = 10
HMC!(U,dt,1,lp, gp, ymws, noacc=true)
HMC!(U,int.eps,1,lp, gp, ymws, noacc=true)
pl = Vector{Float64}()
for i in 1:4
@time dh, acc = HMC!(U,dt,ns,lp, gp, ymws, noacc=true)
@time dh, acc = HMC!(U,int,lp, gp, ymws, noacc=true)
println("# HMC: ", acc, " ", dh)
push!(pl, plaquette(U,lp, gp, ymws))
println("# Plaquette: ", pl[end], "\n")
@time x, y = sfcoupling(U,lp,gp,ymws)
println("SF coupling: ", x, " ", y)
# @time x, y = sfcoupling(U,lp,gp,ymws)
# println("SF coupling: ", x, " ", y)
end
wfl_rk3(U, 1, 0.01, gp, lp, ymws)
@ -65,14 +68,14 @@ println("Action: ", gauge_action(U, lp, gp, ymws))
println("Time for 100 steps of RK3 flow integrator: ")
@time wfl_rk3(U, 100, 0.01, gp, lp, ymws)
eoft = Eoft_plaq(U, gp, lp, ymws)
eoft = Eoft_clover(U, lp, ymws)
qtop = Qtop(U, lp, ymws)
eoft = Eoft_clover(U, gp, lp, ymws)
qtop = Qtop(U, gp, lp, ymws)
@time eoft = Eoft_plaq(U, gp, lp, ymws)
println("Plaq: ", eoft)
@time eoft = Eoft_clover(U, lp, ymws)
@time eoft = Eoft_clover(U, gp, lp, ymws)
println("Clov: ", eoft)
@time qtop = Qtop(U, lp, ymws)
@time qtop = Qtop(U, gp, lp, ymws)
println("Qtop: ", qtop)
println("Action: ", gauge_action(U, lp, gp, ymws))
@ -88,13 +91,10 @@ println("Initial Action: ")
@time S = gauge_action(U, lp, gp, ymws)
dt = 0.1
ns = 10
HMC!(U,dt,1,lp, gp, ymws, noacc=true)
HMC!(U,int.eps,1,lp, gp, ymws, noacc=true)
pl = Vector{Float64}()
for i in 1:4
@time dh, acc = HMC!(U,dt,ns,lp, gp, ymws, noacc=true)
@time dh, acc = HMC!(U,int,lp, gp, ymws, noacc=true)
println("# HMC: ", acc, " ", dh)
push!(pl, plaquette(U,lp, gp, ymws))
println("# Plaquette: ", pl[end], "\n")