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
a7d23188
Commit
a7d23188
authored
2 years ago
by
Fernando Pérez Panadero
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
improvement term added for g5Dw
parent
b7f9e0fb
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
3 deletions
+34
-3
src/Dirac/Dirac.jl
src/Dirac/Dirac.jl
+34
-3
No files found.
src/Dirac/Dirac.jl
View file @
a7d23188
...
...
@@ -88,7 +88,7 @@ function Dw!(so, U, si, dpar::DiracParam, lp::SpaceParm{4,6,B,D}, ymws = "ymws",
return
nothing
end
function
DwdagDw
!
(
so
,
U
,
si
,
dpar
::
DiracParam
,
st
,
lp
::
SpaceParm
{
4
,
6
,
B
,
D
})
where
{
B
,
D
}
function
DwdagDw
!
(
so
,
U
,
si
,
dpar
::
DiracParam
,
st
,
lp
::
SpaceParm
{
4
,
6
,
B
,
D
}
,
ymws
=
"ymws"
,
gp
=
"gp"
)
where
{
B
,
D
}
...
...
@@ -129,7 +129,7 @@ function DwdagDw!(so, U, si, dpar::DiracParam, st, lp::SpaceParm{4,6,B,D}) where
end
function
g5Dw
!
(
so
,
U
,
si
,
dpar
,
lp
::
SpaceParm
{
4
,
6
,
B
,
D
})
where
{
B
,
D
}
function
g5Dw
!
(
so
,
U
,
si
,
dpar
,
lp
::
SpaceParm
{
4
,
6
,
B
,
D
}
,
ymws
=
"ymws"
,
gp
=
"gp"
)
where
{
B
,
D
}
if
B
==
BC_SF_AFWB
||
B
==
BC_SF_ORBI
CUDA
.
@sync
begin
...
...
@@ -151,6 +151,24 @@ function g5Dw!(so, U, si, dpar, lp::SpaceParm{4,6,B,D}) where {B,D}
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
1
:
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_g5Dw_impr!
(
so
,
ymws
.
frc1
,
ymws
.
frc2
,
Gamma
{
i
+
9
},
Gamma
{
lp
.
npls
-
i
+
8
},
si
,
dpar
.
csw
,
lp
)
end
end
end
end
end
return
nothing
end
...
...
@@ -234,7 +252,7 @@ function krnl_Dw_impr!(so, F1, F2, Gid1, Gid2, si, csw, lp::SpaceParm{4,6,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 : sigma 31 -> sigma13 in Spinors end
so
[
b
,
r
]
+=
0.25
*
csw
*
im
*
(
F1
[
b
,
r
]
*
dmul
(
Gid1
,
si
[
b
,
r
])
-
F2
[
b
,
r
]
*
dmul
(
Gid2
,
si
[
b
,
r
]))
end
...
...
@@ -242,6 +260,19 @@ function krnl_Dw_impr!(so, F1, F2, Gid1, Gid2, si, csw, lp::SpaceParm{4,6,B,D})
return
nothing
end
function
krnl_g5Dw_impr
!
(
so
,
F1
,
F2
,
Gid1
,
Gid2
,
si
,
csw
,
lp
::
SpaceParm
{
4
,
6
,
B
,
D
})
where
{
B
,
D
}
b
=
Int64
(
CUDA
.
threadIdx
()
.
x
);
r
=
Int64
(
CUDA
.
blockIdx
()
.
x
)
@inbounds
begin
so
[
b
,
r
]
+=
0.25
*
csw
*
im
*
dmul
(
Gamma
{
5
},(
F1
[
b
,
r
]
*
dmul
(
Gid1
,
si
[
b
,
r
])
-
F2
[
b
,
r
]
*
dmul
(
Gid2
,
si
[
b
,
r
])))
end
return
nothing
end
############################### HMC for fermions ###################################
...
...
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