Lattice structure

D-dimensional lattice points are labeled by two ordered integer numbers: the point-in-block index ($b$ in the figure below) and the block index ($r$ in the figure below). This is called natural indexing, in contrast with the lexicographic indexing where points on the lattice are represented by a D-dimensional CartesianIndex. The routines up and dw allow you to displace to the neighboring points of the lattice. D dimensional lattice points are labeled by its index (a `Tuple` of integers). Given a point (by its index), there are routines to jump to neighboring points.

Directions are numbered fro 1 to D, and then Euclidean time is always assumed to be the last coordinate. Planes are also numbered from 1 to $N(N-1)/2$. The structure SpaceParm contains the information of the lattice structure and has to be passed as argument to most routines.

LatticeGPU.Space.SpaceParmType
struct SpaceParm{N,M,B,D}

This structure contains information about the lattice being simulated. The parameters that define the structure are

  • N: The number of dimensions
  • M: The number of planes (i.e. $N(N-1)/2$)
  • B: The boundary conditions in Euclidean time. Acceptable values are
    • BC_PERIODIC: Periodic boundary conditions
    • BC_SF_AFWB: Schrödinger Funtional Aoki-Frezzoptti-Weisz Choice B.
    • BC_SF_ORBI: Schrödinger Funtional orbifold constructions.
    • BC_OPEN: Open boundary conditions.

The structure conatins the following components:

  • iL: Tuple containing the lattice length in each dimension.
  • plidx: The directions of each plane
  • blk: The block size in each each dimension
  • rbk: The number of blocks in each dimension
  • bsz: The number of points in each block
  • rsz: The number of blocks in the lattice
  • ntw: The twist tensor in each plane
source
LatticeGPU.Space.upFunction
up(p::NTuple{2,Int64}, id::Int64, lp::SpaceParm)

Given a point x with index p, this routine returns the index of the point x + a id.

source
LatticeGPU.Space.dwFunction
dw(p::NTuple{2,Int64}, id::Int64, lp::SpaceParm)

Given a point x with index p, this routine returns the index of the point x - a id.

source
LatticeGPU.Space.updwFunction
updw(p::NTuple{2,Int64}, id::Int64, lp::SpaceParm)

Given a point x with index p, this routine returns the index of the points x + a id and x - a id.

source
LatticeGPU.Space.point_timeFunction
point_time(p::NTuple{2,Int64}, lp::SpaceParm{N,M,B,D}) where {N,M,B,D}

Returns the Euclidean time coordinate of point index p

source