mirror of
https://igit.ific.uv.es/alramos/latticegpu.jl.git
synced 2025-05-14 11:13:42 +02:00
Documentation update and sfbndfix included in Dw.
This commit is contained in:
parent
4c560ab0fe
commit
ac796d95eb
13 changed files with 66 additions and 65 deletions
|
@ -1,7 +1,7 @@
|
|||
|
||||
# Dirac operator
|
||||
|
||||
The module `Dirac` has the necessary stuctures and function
|
||||
The module `Dirac` has the necessary structures and functions
|
||||
to simulate non-dynamical 4-dimensional Wilson fermions.
|
||||
|
||||
There are two main data structures in this module, the structure [`DiracParam`](@ref)
|
||||
|
@ -18,7 +18,7 @@ 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.
|
||||
field with values in `U2alg`/`U3alg` is created to store the clover, used for the improvement.
|
||||
|
||||
## Functions
|
||||
|
||||
|
@ -38,7 +38,7 @@ where $$m_0$$ and $$\theta$$ are respectively the values `.m0` and `.th` of [`Di
|
|||
Note that $$|\theta(\mu)|=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 the Sheikholeslami–Wohlert (SW) term
|
||||
can be done via the [`Csw!`](@ref) function. In this case we have the Sheikholeslami-Wohlert (SW) term
|
||||
in `Dw!`:
|
||||
|
||||
```math
|
||||
|
@ -53,7 +53,7 @@ improvement term
|
|||
```math
|
||||
\delta D_w^{SF} = (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
|
||||
is added. Since the time-slice $$t=T$$ is not stored, this accounts for modifying the second
|
||||
and last time-slice.
|
||||
|
||||
Note that the Dirac operator for SF boundary conditions assumes that the value of the field
|
||||
|
@ -63,11 +63,6 @@ in the first time-slice is zero. To enforce this, we have the function
|
|||
SF_bndfix!
|
||||
```
|
||||
|
||||
Note that this is not enforced in the Dirac operators, so if the field `so` does not satisfy SF
|
||||
boundary conditions, it will not (in general) satisfy them after applying [`Dw!`](@ref)
|
||||
or [`g5Dw!`](@ref). This function is called for the function [`DwdagDw!`](@ref), so in this case
|
||||
`so` will always be a proper SF field after calling this function.
|
||||
|
||||
The function [`Csw!`](@ref) is used to store the clover in `dws.csw`. It is computed
|
||||
according to the expression
|
||||
|
||||
|
@ -97,8 +92,8 @@ 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_{
|
|||
```
|
||||
where $$(b,r)$$ labels the lattice points as explained in the module `Space`
|
||||
|
||||
The function [`pfrandomize!`](@ref), userfull for stochastic sources, is also present. It
|
||||
randomizes a fermion field either in all the space or in a specifit time-slice.
|
||||
The function [`pfrandomize!`](@ref), userful for stochastic sources, is also present. It
|
||||
randomizes a fermion field, either in all the space or in a specific time-slice.
|
||||
|
||||
The generic interface of these functions reads
|
||||
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
|
||||
# Lattice fields
|
||||
|
||||
The module `Fields` include simple routines to define a few typical
|
||||
The module `Fields` includes simple routines to define a few typical
|
||||
fields. Fields are simple `CuArray` types with special memory
|
||||
layout. A field always has an associated elemental type (i.e. for
|
||||
gauge fields `SU3`, for scalar fields `Float64`). We have:
|
||||
- scalar fields: One elemental type in each spacetime point.
|
||||
- vector field: One elemental type at each spacetime point and
|
||||
- Scalar fields: One elemental type in each spacetime point.
|
||||
- Vector field: One elemental type at each spacetime point and
|
||||
direction.
|
||||
- `N` scalar fields: `N` elemental types at each spacetime point.
|
||||
- Tensor fields: One elemental type at each spacetime point and
|
||||
plane. They are to be thought of as symmetric tensors.
|
||||
|
||||
Fields can have **naturaL indexing**, where the memory layout follows
|
||||
Fields can have **natural indexing**, where the memory layout follows
|
||||
the point-in-block and block indices (see
|
||||
[`SpaceParm`](@ref)). Fields can also have **lexicographic indexing**,
|
||||
where points are labelled by a D-dimensional index (see [`scalar_field_point`](@ref)).
|
||||
|
@ -21,6 +23,7 @@ where points are labelled by a D-dimensional index (see [`scalar_field_point`](@
|
|||
```@docs
|
||||
scalar_field
|
||||
vector_field
|
||||
tensor_field
|
||||
nscalar_field
|
||||
scalar_field_point
|
||||
```
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
# Groups and Algebras
|
||||
|
||||
The module `Groups` contain generic data types to deal with group and
|
||||
The module `Groups` contains generic data types to deal with group and
|
||||
algebra elements. Group elements $$g\in SU(N)$$ are represented in
|
||||
some compact notation. For the case $$N=2$$ we use two complex numbers
|
||||
(Caley-Dickson representation, i.e. $$g=(z_1,z_2)$$ with
|
||||
|
@ -79,7 +79,7 @@ elements. The objective is to get an idea on how group operations
|
|||
We can generate some random group elements.
|
||||
```@repl exs
|
||||
# Generate random groups elements,
|
||||
# check they are actually from the grup
|
||||
# check they are actually from the group
|
||||
g = rand(SU2{Float64})
|
||||
println("Are we in a group?: ", isgroup(g))
|
||||
g = rand(SU3{Float64})
|
||||
|
|
|
@ -29,13 +29,15 @@ is given by $$|$$``dws.sr``$$|^2$$.
|
|||
|
||||
## Propagators.jl
|
||||
|
||||
In this file, we define a couple of useful functions to obtain certain
|
||||
In this file, we define some useful functions to obtain certain
|
||||
propagators.
|
||||
|
||||
```@docs
|
||||
propagator!
|
||||
```
|
||||
|
||||
Note that the indexing in Julia starts at 1, so the first tiime slice is t=1.
|
||||
|
||||
Internally, this function solves the equation
|
||||
|
||||
```math
|
||||
|
|
|
@ -6,7 +6,7 @@ which is a NS-tuple with values in G.
|
|||
The functions `norm`, `norm2`, `dot`, `*`, `/`, `/`, `+`, `-`, `imm` and `mimm`,
|
||||
if defined for G, are extended to Spinor{NS,G} for general NS.
|
||||
|
||||
For the 4d case where NS = 4 there are some specific functions to implement different
|
||||
For the 4D case, where NS = 4, there are some specific functions to implement different
|
||||
operations with the gamma matrices. The convention for these matrices is
|
||||
|
||||
|
||||
|
@ -79,7 +79,6 @@ using LatticeGPU # hide
|
|||
```
|
||||
```@repl exs
|
||||
spin = Spinor{4,Complex{Float64}}((1.0,im*0.5,2.3,0.0))
|
||||
println(spin)
|
||||
println(dmul(Gamma{4},spin))
|
||||
println(pmul(Pgamma{2,-1},spin))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue