diff --git a/src/LatticeGPU.jl b/src/LatticeGPU.jl index 5ce9a18..d21bbcf 100644 --- a/src/LatticeGPU.jl +++ b/src/LatticeGPU.jl @@ -33,7 +33,7 @@ export vector_field, scalar_field, nscalar_field, scalar_field_point include("MD/MD.jl") using .MD export IntrScheme -export omf4, leapfrog +export omf4, leapfrog, omf2 include("YM/YM.jl") diff --git a/src/MD/MD.jl b/src/MD/MD.jl index feb9bdc..1b62775 100644 --- a/src/MD/MD.jl +++ b/src/MD/MD.jl @@ -33,7 +33,7 @@ end omf2(::Type{T}, eps, ns) where T = IntrScheme{3,T}((r1omf2,r2omf2,r3omf2), eps, ns) omf4(::Type{T}, eps, ns) where T = IntrScheme{6,T}((r1omf4,r2omf4,r3omf4,r4omf4,r5omf4,r6omf4), eps, ns) -leapfrog(::Type{T}, eps, ns) where T = IntrScheme{2,T}((0.5,1.0,0.5), eps, ns) +leapfrog(::Type{T}, eps, ns) where T = IntrScheme{2,T}((0.5,1.0), eps, ns) import Base.show diff --git a/src/YM/YM.jl b/src/YM/YM.jl index edb8c1a..27c4d58 100644 --- a/src/YM/YM.jl +++ b/src/YM/YM.jl @@ -30,7 +30,7 @@ struct GaugeParm{T,G} function GaugeParm{T}(::Type{G}, bt, c0, cG) where {T,G} - function degree(::SU2{T}) where T + function degree(::Type{SU2{T}}) where T return 2 end function degree(::Type{SU3{T}}) where T <: AbstractFloat diff --git a/src/YM/YMhmc.jl b/src/YM/YMhmc.jl index 39e263e..a7ed54b 100644 --- a/src/YM/YMhmc.jl +++ b/src/YM/YMhmc.jl @@ -56,11 +56,10 @@ function hamiltonian(mom, U, lp, gp, ymws) return K+V end -function HMC!(U, eps, ns, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspace{T}; noacc=false) where T +function HMC!(U, int::IntrScheme, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspace{T}; noacc=false) where T @timeit "HMC trayectory" begin - int = omf4(T, eps, ns) ymws.U1 .= U randomize!(ymws.mom, lp, ymws) @@ -87,6 +86,7 @@ function HMC!(U, eps, ns, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspace{T}; no end return dh, acc end +HMC!(U, eps, ns, lp::SpaceParm, gp::GaugeParm, ymws::YMworkspace{T}; noacc=false) where T = HMC!(U, omf4(T, int.eps, int.ns), lp, gp, ymws; noacc=noacc) function MD!(mom, U, int::IntrScheme{NI, T}, lp::SpaceParm, gp::GaugeParm{T}, ymws::YMworkspace{T}) where {NI, T <: AbstractFloat}