Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Alberto Ramos Martinez
LatticeGPU.jl
Commits
d58f236d
Commit
d58f236d
authored
1 year ago
by
Fernando Pérez Panadero
Browse files
Options
Download
Email Patches
Plain Diff
Dirac documentation
parent
06e08c50
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
docs/make.jl
+1
-0
docs/make.jl
docs/src/dirac.md
+103
-0
docs/src/dirac.md
with
104 additions
and
0 deletions
+104
-0
docs/make.jl
View file @
d58f236d
...
...
@@ -10,5 +10,6 @@ makedocs(sitename="LatticeGPU", modules=[LatticeGPU], doctest=true,
"Space-time"
=>
"space.md"
,
"Groups and algebras"
=>
"groups.md"
,
"Fields"
=>
"fields.md"
"Dirac"
=>
"dirac.md"
],
repo
=
"https://igit.ific.uv.es/alramos/latticegpu.jl"
)
This diff is collapsed.
Click to expand it.
docs/src/dirac.md
0 → 100644
View file @
d58f236d
# Dirac operator
The module
`Dirac`
has the necessary stuctures and function
to simulate non-dynamical 4-dimensional Wilson fermions.
There are two main data structures in this module, the structure
[
`DiracParam`
](
@ref
)
```
@docs
DiracParam
```
and the workspace
[
`DiracWorkspace`
](
@ref
)
```
@docs
DiracWorkspace
```
The workspace stores four fermion fields, namely
`.sr`
,
`.sp`
,
`.sAp`
and
`.st`
, used
for different purposes. If the representation is either
`SU2fund`
of
`SU3fund`
, an extra
field with values in
`U2alg`
/
`U3alg`
is created to store the clover, used for the improvent.
## Functions
The functions
[
`Dw!`
](
@ref
)
,
[
`g5Dw!`
](
@ref
)
and
[
`DwdagDw!`
](
@ref
)
are all related to the
Wilson-Dirac operator.
The action of the Dirac operator
`Dw!`
is the following:
```
math
D\psi (\vec{x} = x_1,x_2,x_3,x_4) = (4 + m_0)psi(\vec{x})
```
```
math
- \frac{1}{2}\sum_{\mu = 1}^4 \theta (\mu) (1-\gamma_\mu) U_\mu(\vec{x}) \psi(\vec{x} + \hat{\mu})
```
```
math
+ \theta^* (\mu) (1 + \gamma_\mu) U^{-1}_\mu(\vec{x} - \hat{\mu}) \psi(\vec{x} - \hat{\mu})
```
where $$m_0$$ and $$
\t
heta$$ are respectively the values
`.m0`
and
`.th`
of
[
`DiracParam`
](
@ref
)
.
Note that $$|
\t
heta(i)|=1$$ is not built into the code, so it should be imposed explicitly.
Additionally, if |
`dpar.csw`
| > 1.0E-10, the clover term is assumed to be stored in
`ymws.csw`
, which
can be done via the
[
`Csw`
](
@ref
)
function. In this case we have an extra term in
`Dw!`
:
```
math
\frac{i}{2}C_{sw} \sum_{\pi = 1}^6 F^{cl}_\pi \sigma_\pi \psi(\vec{x})
```
where the $$
\s
igma$$ matrices are those described in the
`Spinors`
module and the index $$
\p
i$$ runs
as specified in
`lp.plidx`
.
If the boudary conditions, defined in
`lp`
, are either
`BC_SF_ORBI,D`
or
`BC_SF_AFWB`
, the
improvement term
```
math
(c_t -1) (\delta_{x_4,a} \psi(\vec{x}) + \delta_{x_4,T-a} \psi(\vec{x}))
```
is added. Since the time-slice $$t=T$$ is not stored, this accounts to modifying the second
and last time-slice.
Note that the Dirac operator for SF boundary conditions assumes that the value of the field
in the first time-slice is zero. To enforce this, we have the function
```
@docs
SF_bndfix!
```
The function
[
`Csw`
](
@ref
)
is used to store the clover in
`dws.csw`
. It is computed
according to the expression
```
math
F_{\mu,\nu} = \frac{1}{8} (Q_{\mu \nu} - Q_{\nu \mu})
```
where
```
math
Q_{\mu\nu} = U_\mu(\vec{x})U_{\nu}(x+\mu)U_{\mu}^{-1}(\vec{x}+\nu)U_{\nu}(\vec{x}) +
+ U_{\nu}^{-1}(\vec{x}-\nu) U_\mu (\vec{x}-\nu) U_{\nu}(\vec{x} +\mu - \nu) U^{-1}_{\mu}(\vec{x}) +
+ U^{-1}_{\mu}(x-\mu)U_\nu^{-1}(\vec{x} - \mu - \nu)U_\mu(\vec{x} - \mu - \nu)U_\nu^{-1}(x-\nu) +
+ U_{\nu}(\vec{x})U_{\mu}^{-1}(\vec{x} + \nu - \mu)U^{-1}_{\nu}(\vec{x} - \mu)U_\mu(\vec{x}-\mu)
```
The correspondence between the tensor field and the GPU-Array is the following:
```
math
F[b,1,r] \to F_{41}(b,r) ,\quad F[b,2,r] \to F_{42}(b,r) ,\quad F[b,3,r] \to F_{43}(b,r)
```
```
math
F[b,4,r] \to F_{31}(b,r) ,\quad F[b,5,r] \to F_{32}(b,r) ,\quad F[b,6,r] \to F_{21}(b,r)
```
where $$(b,r)$$ labels the lattice points as explained in the module
`Space`
The function
[
`pfrandomize!`
](
@ref
)
, userfull for stochastic sources, is also present.
The generic interface of these functions reads
```
@docs
Dw!
g5Dw!
DwdagDw!
Csw!
pfrandomize!
```
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
Menu
Projects
Groups
Snippets
Help