mirror of
https://igit.ific.uv.es/alramos/latticegpu.jl.git
synced 2025-05-15 03:33:42 +02:00
Added support for improved actions
This commit is contained in:
parent
cdad0f2be7
commit
3d464a0325
4 changed files with 128 additions and 112 deletions
|
@ -16,11 +16,17 @@
|
|||
Returns the value of the Wilson plaquette action for the configuration U.
|
||||
"""
|
||||
function gauge_action(U, lp::SpaceParm, gp::GaugeParm{T}, ymws::YMworkspace{T}) where T <: AbstractFloat
|
||||
|
||||
CUDA.@sync begin
|
||||
CUDA.@cuda threads=lp.bsz blocks=lp.rsz krnl_plaq!(ymws.cm, U, lp)
|
||||
|
||||
if abs(gp.c0-1) < 1.0E-10
|
||||
CUDA.@sync begin
|
||||
CUDA.@cuda threads=lp.bsz blocks=lp.rsz krnl_plaq!(ymws.cm, U, lp)
|
||||
end
|
||||
else
|
||||
CUDA.@sync begin
|
||||
CUDA.@cuda threads=lp.bsz blocks=lp.rsz krnl_impr!(ymws.cm, U, gp.c0, (1-gp.c0)/8, lp)
|
||||
end
|
||||
end
|
||||
S = gp.beta*( prod(lp.iL)*lp.npls -
|
||||
S = gp.beta*( prod(lp.iL)*lp.npls*(gp.c0 + (1-gp.c0)/8) -
|
||||
CUDA.mapreduce(real, +, ymws.cm)/gp.ng )
|
||||
|
||||
return S
|
||||
|
@ -80,28 +86,28 @@ function OMF4!(mom, U, eps, ns, lp::SpaceParm, gp::GaugeParm{T}, ymws::YMworkspa
|
|||
r6::T = 1.0-2.0*(r2+r4)
|
||||
|
||||
ee = eps*gp.beta/gp.ng
|
||||
force_wilson(ymws, U, lp)
|
||||
force_gauge(ymws, U, gp.c0, lp)
|
||||
for i in 1:ns
|
||||
mom .= mom .+ (r1*ee) .* ymws.frc1
|
||||
U .= expm.(U, mom, eps*r2)
|
||||
|
||||
force_wilson(ymws, U, lp)
|
||||
force_gauge(ymws, U, gp.c0, lp)
|
||||
mom .= mom .+ (r3*ee) .* ymws.frc1
|
||||
U .= expm.(U, mom, eps*r4)
|
||||
|
||||
force_wilson(ymws, U, lp)
|
||||
force_gauge(ymws, U, gp.c0, lp)
|
||||
mom .= mom .+ (r5*ee) .* ymws.frc1
|
||||
U .= expm.(U, mom, eps*r6)
|
||||
|
||||
force_wilson(ymws, U, lp)
|
||||
force_gauge(ymws, U, gp.c0, lp)
|
||||
mom .= mom .+ (r5*ee) .* ymws.frc1
|
||||
U .= expm.(U, mom, eps*r4)
|
||||
|
||||
force_wilson(ymws, U, lp)
|
||||
force_gauge(ymws, U, gp.c0, lp)
|
||||
mom .= mom .+ (r3*ee) .* ymws.frc1
|
||||
U .= expm.(U, mom, eps*r2)
|
||||
|
||||
force_wilson(ymws, U, lp)
|
||||
force_gauge(ymws, U, gp.c0, lp)
|
||||
mom .= mom .+ (r1*ee) .* ymws.frc1
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue