diff --git a/src/YM/YM.jl b/src/YM/YM.jl index 547e0dc..39cb32a 100644 --- a/src/YM/YM.jl +++ b/src/YM/YM.jl @@ -28,6 +28,7 @@ struct GaugeParm{T,G,N} Ubnd::NTuple{N, G} + GaugeParm{T1,T2,T3}(a,b,c,d,e) = new{T1,T2,T3,T4}(a,b,c,d,e) function GaugeParm{T}(::Type{G}, bt, c0, cG, phi, iL) where {T,G} degree(::Type{SU2{T}}) where T <: AbstractFloat = 2 diff --git a/src/YM/YMio.jl b/src/YM/YMio.jl index 923115f..aa62e41 100644 --- a/src/YM/YMio.jl +++ b/src/YM/YMio.jl @@ -18,10 +18,12 @@ function import_lex64(fname, lp::SpaceParm) fp = open(fname, "r") - dtr = [4,1,2,3] + dtr = [2,3,4,1] + + assign(i, V, i4) = SU3{Float64}(V[1,dtr[id],1],V[2,dtr[id],1],V[3,dtr[id],1], + V[4,dtr[id],1],V[5,dtr[id],1],V[6,dtr[id],1]) Ucpu = Array{SU3{Float64}, 3}(undef, lp.bsz, lp.ndim, lp.rsz) - Ubnd = Array{SU3{Float64}, 1}(undef, lp.ndim-1) V = Array{ComplexF64, 3}(undef, 9, lp.ndim, lp.iL[3]) for i4 in 1:lp.iL[4] for i1 in 1:lp.iL[1] @@ -30,8 +32,7 @@ function import_lex64(fname, lp::SpaceParm) for i3 in 1:lp.iL[3] b, r = point_index(CartesianIndex(i1,i2,i3,i4), lp) for id in 1:lp.ndim - Ucpu[b,dtr[id],r] = SU3{Float64}(V[1,id,i4],V[2,id,i4],V[3,id,i4], - V[4,id,i4],V[5,id,i4],V[6,id,i4]) + Ucpu[b,id,r] = assign(i, V, i4) end end end @@ -39,11 +40,7 @@ function import_lex64(fname, lp::SpaceParm) end read!(fp, V) - for id in 2:lp.ndim - Ubnd[dtr[id]] = SU3{Float64}(V[1,id,1],V[2,id,1],V[3,id,1], - V[4,id,1],V[5,id,1],V[6,id,1]) - end - + Ubnd = ntuple(i->assign(i, V, 1), 3) close(fp) return CuArray(Ucpu), Ubnd