mirror of
				https://igit.ific.uv.es/alramos/latticegpu.jl.git
				synced 2025-11-04 08:35:45 +01:00 
			
		
		
		
	Cleanup and Zeuthen flow
At this moment the zfl_* routines only perform the Symanzik flow. The extra term has to be added, but it should not impact timmings
This commit is contained in:
		
					parent
					
						
							
								3d464a0325
							
						
					
				
			
			
				commit
				
					
						4eed0ebb42
					
				
			
		
					 6 changed files with 38 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -31,6 +31,6 @@ include("YM/YM.jl")
 | 
			
		|||
using .YM
 | 
			
		||||
export YMworkspace, GaugeParm, force0_wilson!, field, field_pln, randomize!, zero!, norm2
 | 
			
		||||
export gauge_action, hamiltonian, plaquette, HMC!, OMF4!
 | 
			
		||||
export wfl_euler, wfl_rk3
 | 
			
		||||
export wfl_euler, wfl_rk3, zfl_euler, zfl_rk3
 | 
			
		||||
 | 
			
		||||
end # module
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -94,6 +94,6 @@ include("YMhmc.jl")
 | 
			
		|||
export gauge_action, hamiltonian, plaquette, HMC!, OMF4!
 | 
			
		||||
 | 
			
		||||
include("YMflow.jl")
 | 
			
		||||
export wfl_euler, wfl_rk3
 | 
			
		||||
export wfl_euler, wfl_rk3, zfl_euler, zfl_rk3
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -70,6 +70,7 @@ function krnl_impr!(plx, U::AbstractArray{T}, c0, c1, lp::SpaceParm{N,M,D}) wher
 | 
			
		|||
                gc = U[b2,id2,r2]
 | 
			
		||||
            end
 | 
			
		||||
            h3 = (ga*gb)/gc
 | 
			
		||||
            # END staples
 | 
			
		||||
            
 | 
			
		||||
            if ru2 == r
 | 
			
		||||
                gb = Ush[bu2,1]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,3 +42,36 @@ function wfl_rk3(U, ns, eps, lp::SpaceParm, ymws::YMworkspace)
 | 
			
		|||
    return nothing
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function zfl_euler(U, ns, eps, lp::SpaceParm, ymws::YMworkspace)
 | 
			
		||||
 | 
			
		||||
    for i in 1:ns
 | 
			
		||||
        force_gauge(ymws, U, 5.0/3.0, lp)
 | 
			
		||||
        U .= expm.(U, ymws.frc1, 2*eps)
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
    return nothing
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function zfl_rk3(U, ns, eps, lp::SpaceParm, ymws::YMworkspace)
 | 
			
		||||
 | 
			
		||||
    for i in 1:ns
 | 
			
		||||
        c0 = eps/2
 | 
			
		||||
        force_gauge(ymws, U, 5.0/3.0, lp)
 | 
			
		||||
        ymws.mom .= ymws.frc1
 | 
			
		||||
        U .= expm.(U, ymws.mom, c0)
 | 
			
		||||
 | 
			
		||||
        c0 = -34*eps/36
 | 
			
		||||
        c1 = 16*eps/9
 | 
			
		||||
        force_gauge(ymws, U, 5.0/3.0, lp)
 | 
			
		||||
        ymws.mom .= c0.*ymws.mom .+ c1.*ymws.frc1
 | 
			
		||||
        U .= expm.(U, ymws.mom)
 | 
			
		||||
 | 
			
		||||
        c1 = 6*eps/4
 | 
			
		||||
        force_gauge(ymws, U, 5.0/3.0, lp)
 | 
			
		||||
        ymws.mom .= c1.*ymws.frc1 .- ymws.mom 
 | 
			
		||||
        U .= expm.(U, ymws.mom)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    return nothing
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,7 +13,7 @@
 | 
			
		|||
    
 | 
			
		||||
    function gauge_action(U, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspace)
 | 
			
		||||
 | 
			
		||||
Returns the value of the Wilson plaquette action for the configuration U. 
 | 
			
		||||
Returns the value of the gauge plaquette action for the configuration U. The parameters `\beta` and `c0` are taken from the `gp` structure. 
 | 
			
		||||
"""
 | 
			
		||||
function gauge_action(U, lp::SpaceParm, gp::GaugeParm{T}, ymws::YMworkspace{T}) where T <: AbstractFloat
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,7 @@ println(CUDA.device())
 | 
			
		|||
GRP  = SU3
 | 
			
		||||
ALG  = SU3alg
 | 
			
		||||
PREC = Float64
 | 
			
		||||
lp = SpaceParm{4}((32,32,32,32), (4,4,4,4))
 | 
			
		||||
lp = SpaceParm{4}((64,64,64,64), (4,4,4,4))
 | 
			
		||||
gp = GaugeParm{PREC}(6.0, 5.0/3.0, (0.0,0.0), 3)
 | 
			
		||||
 | 
			
		||||
println("Space  Parameters: ", lp)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue