mirror of
https://igit.ific.uv.es/alramos/latticegpu.jl.git
synced 2025-05-14 11:13:42 +02:00
Solvers documentation
This commit is contained in:
parent
d997df20d4
commit
ed9d18b25d
2 changed files with 87 additions and 0 deletions
|
@ -11,5 +11,6 @@ makedocs(sitename="LatticeGPU", modules=[LatticeGPU], doctest=true,
|
||||||
"Groups and algebras" => "groups.md",
|
"Groups and algebras" => "groups.md",
|
||||||
"Fields" => "fields.md"
|
"Fields" => "fields.md"
|
||||||
"Dirac" => "dirac.md"
|
"Dirac" => "dirac.md"
|
||||||
|
"Solvers" => "solvers.md"
|
||||||
],
|
],
|
||||||
repo = "https://igit.ific.uv.es/alramos/latticegpu.jl")
|
repo = "https://igit.ific.uv.es/alramos/latticegpu.jl")
|
||||||
|
|
86
docs/src/solvers.md
Normal file
86
docs/src/solvers.md
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
|
||||||
|
# Solvers
|
||||||
|
|
||||||
|
The module `Solvers` contains the functions to invert the Dirac
|
||||||
|
operator as well as functions to obtain specific propagators.
|
||||||
|
|
||||||
|
|
||||||
|
## CG.jl
|
||||||
|
|
||||||
|
The function [`CG!`](@ref) implements the Conjugate gradient
|
||||||
|
algorith for the operator A
|
||||||
|
|
||||||
|
```@docs
|
||||||
|
CG!
|
||||||
|
```
|
||||||
|
|
||||||
|
where the tolerance is normalized with respect to $$|$$``si``$$|^2$$.
|
||||||
|
The operator A must have the same input structure as all the Dirac
|
||||||
|
operators. If the maximum number of iterations `maxiter` is reached,
|
||||||
|
the function will throw an error. The estimation for $$A^{-1}x$$ is
|
||||||
|
stored in ``si``, and the number of iterations is returned.
|
||||||
|
|
||||||
|
|
||||||
|
Note that all the fermion field in ``dws`` are used
|
||||||
|
inside the function and will be modified. In particular, the final residue
|
||||||
|
is given by $$|$$``dws.sr``$$|^2$$.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Propagators.jl
|
||||||
|
|
||||||
|
In this file, we define a couple of useful functions to obtain certain
|
||||||
|
propagators.
|
||||||
|
|
||||||
|
```@docs
|
||||||
|
propagator!
|
||||||
|
```
|
||||||
|
|
||||||
|
Internally, this function solves the equation
|
||||||
|
|
||||||
|
```math
|
||||||
|
D_w^\dagger D_w \psi = \gamma_5 D_w \gamma_5 \eta
|
||||||
|
```
|
||||||
|
|
||||||
|
where $$\eta$$ is either a point-source with the specified color and spin
|
||||||
|
or a random source in a time-slice and stores the value in ``pro``.
|
||||||
|
To solve this equation, the [`CG!`](@ref) function is used.
|
||||||
|
|
||||||
|
|
||||||
|
For the case of SF boundary conditions, we have the boundary-to-bulk
|
||||||
|
propagator, implemented by the function [`bndpropagator!`](@ref)
|
||||||
|
|
||||||
|
```@docs
|
||||||
|
bndpropagator!
|
||||||
|
```
|
||||||
|
|
||||||
|
This propagator is defined by the equation:
|
||||||
|
|
||||||
|
```math
|
||||||
|
D_W S(x) = \frac{c_t}{\sqrt{V}} \delta_{x_0,1} U_0^\dagger(0,\vec{x}) P_+
|
||||||
|
```
|
||||||
|
|
||||||
|
The analog for the other boundary is implemented in the function [`Tbndpropagator!`](@ref)
|
||||||
|
|
||||||
|
```@docs
|
||||||
|
Tbndpropagator!
|
||||||
|
```
|
||||||
|
|
||||||
|
defined by the equation:
|
||||||
|
|
||||||
|
```math
|
||||||
|
D_W R(x) = \frac{c_t}{\sqrt{V}} \delta_{x_0,T-1} U_0(T-1,\vec{x}) P_-
|
||||||
|
```
|
||||||
|
|
||||||
|
Where $$P_\pm = (1 \pm \gamma_0)/2$$. The boundary-to-boundary
|
||||||
|
propagator
|
||||||
|
|
||||||
|
```math
|
||||||
|
- \frac{c_t}{\sqrt{V}} \sum_\vec{x} U_0 ^\dagger (T-1,\vec{x}) P_+ S(T-1,\vec{x})
|
||||||
|
```
|
||||||
|
|
||||||
|
is computed by the function [`bndtobnd`](@ref)
|
||||||
|
|
||||||
|
```@docs
|
||||||
|
bndtobnd
|
||||||
|
```
|
Loading…
Add table
Add a link
Reference in a new issue