Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
LGPU FPP
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Fernando Pérez Panadero
LGPU FPP
Commits
e7c87a6c
Commit
e7c87a6c
authored
1 year ago
by
Fernando Pérez Panadero
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
First test for improved fermions on Dw!
parent
eeb82af5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
47 additions
and
1 deletion
+47
-1
src/Dirac/Dirac.jl
src/Dirac/Dirac.jl
+30
-1
src/Groups/FundamentalSU3.jl
src/Groups/FundamentalSU3.jl
+10
-0
src/Spinors/Spinors.jl
src/Spinors/Spinors.jl
+7
-0
No files found.
src/Dirac/Dirac.jl
View file @
e7c87a6c
...
@@ -45,7 +45,7 @@ struct DiracWorkspace{T}
...
@@ -45,7 +45,7 @@ struct DiracWorkspace{T}
end
end
export
DiracWorkspace
,
DiracParam
export
DiracWorkspace
,
DiracParam
function
Dw
!
(
so
,
U
,
si
,
dpar
::
DiracParam
,
lp
::
SpaceParm
{
4
,
6
,
B
,
D
})
where
{
B
,
D
}
function
Dw
!
(
so
,
U
,
si
,
dpar
::
DiracParam
,
lp
::
SpaceParm
{
4
,
6
,
B
,
D
}
,
ymws
=
"ymws"
,
gp
=
"gp"
)
where
{
B
,
D
}
if
B
==
BC_SF_AFWB
||
B
==
BC_SF_ORBI
if
B
==
BC_SF_AFWB
||
B
==
BC_SF_ORBI
CUDA
.
@sync
begin
CUDA
.
@sync
begin
...
@@ -67,6 +67,22 @@ function Dw!(so, U, si, dpar::DiracParam, lp::SpaceParm{4,6,B,D}) where {B,D}
...
@@ -67,6 +67,22 @@ function Dw!(so, U, si, dpar::DiracParam, lp::SpaceParm{4,6,B,D}) where {B,D}
end
end
end
end
end
end
if
abs
(
dpar
.
csw
)
>
1.0E-10
if
ymws
==
"ymws"
||
gp
==
"gp"
error
(
"YM workspace and Gauge parameters must be included for the improved dirac operator."
)
else
@timeit
"Dw_improvement"
begin
for
i
in
Int
(
lp
.
npls
/
2
)
z1
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
i
]
/
gp
.
ng
)
z2
=
exp
(
2
im
*
pi
*
lp
.
ntw
[
lp
.
npls
-
i
]
/
gp
.
ng
)
CUDA
.
@sync
begin
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_field_tensor!
(
ymws
.
frc1
,
ymws
.
frc2
,
U
,
gp
.
Ubnd
,
i
,
lp
.
npls
-
i
,
z1
,
z2
,
lp
)
CUDA
.
@cuda
threads
=
lp
.
bsz
blocks
=
lp
.
rsz
krnl_Dw_impr!
(
so
,
ymws
.
frc1
,
ymws
.
frc2
,
i
,
lp
.
npls
-
i
,
si
,
csw
,
lp
)
end
end
end
end
return
nothing
return
nothing
end
end
...
@@ -212,6 +228,19 @@ function krnl_g5Dw!(so, U, si, m0, th, lp::SpaceParm{4,6,B,D}) where {B,D}
...
@@ -212,6 +228,19 @@ function krnl_g5Dw!(so, U, si, m0, th, lp::SpaceParm{4,6,B,D}) where {B,D}
end
end
function
krnl_Dw_impr
!
(
so
,
F1
,
F2
,
id1
,
id2
,
si
,
csw
,
lp
::
SpaceParm
{
4
,
6
,
B
,
D
})
where
{
B
,
D
}
b
=
Int64
(
CUDA
.
threadIdx
()
.
x
);
r
=
Int64
(
CUDA
.
blockIdx
()
.
x
)
@inbounds
begin
# asignation between /mu/nu index and sigma index is NOT correct
so
[
b
,
r
]
+=
0.25
*
csw
*
im
*
(
F1
*
dmul
(
Gamma
{
id1
},
si
[
b
,
r
])
+
F2
*
dmul
(
Gamma
{
id2
},
si
[
b
,
r
]))
end
return
nothing
end
############################### HMC for fermions ###################################
############################### HMC for fermions ###################################
...
...
This diff is collapsed.
Click to expand it.
src/Groups/FundamentalSU3.jl
View file @
e7c87a6c
...
@@ -60,6 +60,16 @@ Base.:\(g::SU3{T},b::SU3fund{T}) where T <: AbstractFloat = SU3fund{T}(conj(
...
@@ -60,6 +60,16 @@ Base.:\(g::SU3{T},b::SU3fund{T}) where T <: AbstractFloat = SU3fund{T}(conj(
conj
(
g
.
u12
)
*
b
.
t1
+
conj
(
g
.
u22
)
*
b
.
t2
+
(
g
.
u13
*
g
.
u21
-
g
.
u11
*
g
.
u23
)
*
b
.
t3
,
conj
(
g
.
u12
)
*
b
.
t1
+
conj
(
g
.
u22
)
*
b
.
t2
+
(
g
.
u13
*
g
.
u21
-
g
.
u11
*
g
.
u23
)
*
b
.
t3
,
conj
(
g
.
u13
)
*
b
.
t1
+
conj
(
g
.
u23
)
*
b
.
t2
+
(
g
.
u11
*
g
.
u22
-
g
.
u12
*
g
.
u21
)
*
b
.
t3
)
conj
(
g
.
u13
)
*
b
.
t1
+
conj
(
g
.
u23
)
*
b
.
t2
+
(
g
.
u11
*
g
.
u22
-
g
.
u12
*
g
.
u21
)
*
b
.
t3
)
"""
*(a::SU3alg{T},b::SU3fund{T})
Returns a*b
"""
Base
.:*
(
a
::
SU3alg
{
T
},
b
::
SU3fund
{
T
})
where
T
<:
AbstractFloat
=
SU3fund
{
T
}(
complex
(
0.0
,
a
.
t7
/
2.0
+
a
.
t8
/
3.46410161513775458
)
*
b
.
t1
+
complex
(
a
.
t4
,
a
.
t1
)
*
b
.
t2
/
2.0
+
complex
(
a
.
t5
,
a
.
t2
)
*
b
.
t3
/
2.0
,
complex
(
-
a
.
t4
,
a
.
t1
)
*
b
.
t1
/
2.0
+
complex
(
0.0
,
-
a
.
t7
/
2.0
+
a
.
t8
/
3.46410161513775458
)
*
b
.
t2
+
complex
(
a
.
t6
,
a
.
t3
)
*
b
.
t3
/
2.0
,
complex
(
-
a
.
t5
,
a
.
t2
)
*
b
.
t1
/
2.0
+
complex
(
-
a
.
t6
,
a
.
t3
)
/
2.0
*
b
.
t2
+
complex
(
0.0
,
-
2.0
*
a
.
t8
/
3.46410161513775458
)
*
b
.
t3
)
Base
.:+
(
a
::
SU3fund
{
T
},
b
::
SU3fund
{
T
})
where
T
<:
AbstractFloat
=
SU3fund
{
T
}(
a
.
t1
+
b
.
t1
,
a
.
t2
+
b
.
t2
,
a
.
t3
+
b
.
t3
)
Base
.:+
(
a
::
SU3fund
{
T
},
b
::
SU3fund
{
T
})
where
T
<:
AbstractFloat
=
SU3fund
{
T
}(
a
.
t1
+
b
.
t1
,
a
.
t2
+
b
.
t2
,
a
.
t3
+
b
.
t3
)
Base
.:-
(
a
::
SU3fund
{
T
},
b
::
SU3fund
{
T
})
where
T
<:
AbstractFloat
=
SU3fund
{
T
}(
a
.
t1
-
b
.
t1
,
a
.
t2
-
b
.
t2
,
a
.
t3
-
b
.
t3
)
Base
.:-
(
a
::
SU3fund
{
T
},
b
::
SU3fund
{
T
})
where
T
<:
AbstractFloat
=
SU3fund
{
T
}(
a
.
t1
-
b
.
t1
,
a
.
t2
-
b
.
t2
,
a
.
t3
-
b
.
t3
)
Base
.:+
(
a
::
SU3fund
{
T
})
where
T
<:
AbstractFloat
=
SU3fund
{
T
}(
a
.
t1
,
a
.
t2
,
a
.
t3
)
Base
.:+
(
a
::
SU3fund
{
T
})
where
T
<:
AbstractFloat
=
SU3fund
{
T
}(
a
.
t1
,
a
.
t2
,
a
.
t3
)
...
...
This diff is collapsed.
Click to expand it.
src/Spinors/Spinors.jl
View file @
e7c87a6c
...
@@ -89,6 +89,13 @@ Returns ga
...
@@ -89,6 +89,13 @@ Returns ga
"""
"""
Base
.:*
(
g
::
S
,
b
::
Spinor
{
NS
,
G
})
where
{
S
<:
Group
,
NS
,
G
}
=
Spinor
{
NS
,
G
}(
ntuple
(
i
->
g
*
b
.
s
[
i
],
NS
))
Base
.:*
(
g
::
S
,
b
::
Spinor
{
NS
,
G
})
where
{
S
<:
Group
,
NS
,
G
}
=
Spinor
{
NS
,
G
}(
ntuple
(
i
->
g
*
b
.
s
[
i
],
NS
))
"""
*(a::SU3alg{T},b::Spinor)
Returns ab
"""
Base
.:*
(
a
::
S
,
b
::
Spinor
{
NS
,
G
})
where
{
S
<:
Algebra
,
NS
,
G
}
=
Spinor
{
NS
,
G
}(
ntuple
(
i
->
a
*
b
.
s
[
i
],
NS
))
"""
"""
\\
(g::SU3{T},b::Spinor{NS,G})
\\
(g::SU3{T},b::Spinor{NS,G})
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment