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.
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.SpaceParm
— Typestruct 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 dimensionsM
: The number of planes (i.e. $N(N-1)/2$)B
: The boundary conditions in Euclidean time. Acceptable values areBC_PERIODIC
: Periodic boundary conditionsBC_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 planeblk
: The block size in each each dimensionrbk
: The number of blocks in each dimensionbsz
: The number of points in each blockrsz
: The number of blocks in the latticentw
: The twist tensor in each plane
LatticeGPU.Space.up
— Functionup(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
.
LatticeGPU.Space.dw
— Functiondw(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
.
LatticeGPU.Space.updw
— Functionupdw(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
.
LatticeGPU.Space.point_coord
— Functionpoint_coord(p::NTuple{2,Int64}, lp::SpaceParm{N,M,B,D}) where {N,M,B,D}
Returns the cartesian coordinates of point index p
LatticeGPU.Space.point_time
— Functionpoint_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
LatticeGPU.Space.point_index
— Functionpoint_index(pt::CartesianIndex, lp::SpaceParm)
Given the cartesian coordinates of a point, returns the point index
LatticeGPU.Space.point_color
— Functionpoint_color(p::NTuple{2,Int64}, lp::SpaceParm)
Returns the sum of the cartesian coordinates of the point p=(b,r).