GLAC  1.0
Data Structures | Enumerations | Functions
lattice.h File Reference
#include <vector>
#include <mpi.h>
#include "parallelization/index.h"
#include "parallelization/neighbours.h"
#include "parallelization/parallelparameters.h"
#include "functions.h"
Include dependency graph for lattice.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  Lattice< T >
 A method for holding a lattice of type T. More...
 

Enumerations

enum  DIR { BACKWARDS = 0, FORWARDS = 1 }
 The DIR enum specifies if we are to move BACKWARDS or FORWARDS in the lattice shifts. More...
 

Functions

template<class T >
Lattice< T > operator+ (Lattice< T > A, Lattice< T > &B)
 
template<class T >
Lattice< T > operator+ (Lattice< T > A, Lattice< T > &&B)
 
template<class T >
Lattice< T > operator- (Lattice< T > A, Lattice< T > &B)
 
template<class T >
Lattice< T > operator- (Lattice< T > A, Lattice< T > &&B)
 
template<class T >
Lattice< T > operator * (Lattice< T > A, Lattice< T > &B)
 
template<class T >
Lattice< T > operator * (Lattice< T > A, Lattice< T > &&B)
 
template<class T >
Lattice< T > operator * (Lattice< T > A, double b)
 
template<class T >
Lattice< T > operator/ (Lattice< T > A, double b)
 
template<class T >
Lattice< T > operator+ (Lattice< T > A, complex b)
 
template<class T >
Lattice< T > operator- (Lattice< T > A, complex b)
 
template<class T >
Lattice< T > operator * (Lattice< T > A, complex b)
 
template<class T >
Lattice< T > operator/ (Lattice< T > A, complex b)
 
template<class SU3 >
Lattice< double > realTrace (Lattice< SU3 > L)
 
template<class SU3 >
Lattice< double > imagTrace (Lattice< SU3 > L)
 
template<class SU3 >
Lattice< complextrace (Lattice< SU3 > L)
 
template<class SU3 >
Lattice< SU3subtractImag (Lattice< SU3 > &L, const Lattice< double > &other)
 
template<class SU3 >
Lattice< SU3subtractImag (Lattice< SU3 > &&L, Lattice< double > &&other)
 
template<class SU3 >
Lattice< SU3subtractReal (Lattice< SU3 > &L, const Lattice< double > &other)
 
template<class SU3 >
Lattice< SU3subtractReal (Lattice< SU3 > &&L, Lattice< double > &&other)
 
template<class T >
sum (Lattice< T > L)
 
std::vector< double > sumSpatial (Lattice< double > L)
 
Lattice< double > realTraceMultiplication (Lattice< SU3 > L1, Lattice< SU3 > L2)
 
Lattice< double > imagTraceMultiplication (Lattice< SU3 > L1, Lattice< SU3 > L2)
 
template<class SU3 >
double sumRealTrace (Lattice< SU3 > L)
 
template<class SU3 >
double sumRealTraceMultiplication (Lattice< SU3 > L1, Lattice< SU3 > L2)
 
template<class SU3 >
Lattice< SU3inv (Lattice< SU3 > &B)
 
template<class SU3 >
Lattice< SU3inv (Lattice< SU3 > &&B)
 
template<class SU3 >
Lattice< SU3transpose (Lattice< SU3 > &B)
 
template<class SU3 >
Lattice< SU3transpose (Lattice< SU3 > &&B)
 
template<class SU3 >
Lattice< SU3conjugate (Lattice< SU3 > &B)
 
template<class SU3 >
Lattice< SU3conjugate (Lattice< SU3 > &&B)
 
template<class SU3 >
Lattice< SU3makeAntiHermitian (Lattice< SU3 > &B)
 
template<class SU3 >
Lattice< SU3makeAntiHermitian (Lattice< SU3 > &&B)
 
template<class SU3 >
Lattice< SU3makeHermitian (Lattice< SU3 > &B)
 
template<class SU3 >
Lattice< SU3makeHermitian (Lattice< SU3 > &&B)
 
Lattice< SU3shift (Lattice< SU3 > L, DIR direction, unsigned int lorentzVector)
 shift copies the lattice L and shifts it in a specified lorentzVector direction DIR. More...
 

Enumeration Type Documentation

◆ DIR

enum DIR

The DIR enum specifies if we are to move BACKWARDS or FORWARDS in the lattice shifts.

Enumerator
BACKWARDS 
FORWARDS 

Function Documentation

◆ conjugate() [1/2]

template<class SU3 >
Lattice<SU3> conjugate ( Lattice< SU3 > &  B)
inline
Here is the call graph for this function:

◆ conjugate() [2/2]

template<class SU3 >
Lattice<SU3> conjugate ( Lattice< SU3 > &&  B)
inline
Here is the call graph for this function:

◆ imagTrace()

template<class SU3 >
Lattice<double> imagTrace ( Lattice< SU3 L)
inline
Here is the caller graph for this function:

◆ imagTraceMultiplication()

Lattice<double> imagTraceMultiplication ( Lattice< SU3 L1,
Lattice< SU3 L2 
)
inline
Here is the call graph for this function:

◆ inv() [1/2]

template<class SU3 >
Lattice<SU3> inv ( Lattice< SU3 > &  B)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ inv() [2/2]

template<class SU3 >
Lattice<SU3> inv ( Lattice< SU3 > &&  B)
inline
Here is the call graph for this function:

◆ makeAntiHermitian() [1/2]

template<class SU3 >
Lattice<SU3> makeAntiHermitian ( Lattice< SU3 > &  B)
inline
Here is the call graph for this function:

◆ makeAntiHermitian() [2/2]

template<class SU3 >
Lattice<SU3> makeAntiHermitian ( Lattice< SU3 > &&  B)
inline
Here is the call graph for this function:

◆ makeHermitian() [1/2]

template<class SU3 >
Lattice<SU3> makeHermitian ( Lattice< SU3 > &  B)
inline
Here is the call graph for this function:

◆ makeHermitian() [2/2]

template<class SU3 >
Lattice<SU3> makeHermitian ( Lattice< SU3 > &&  B)
inline
Here is the call graph for this function:

◆ operator *() [1/4]

template<class T >
Lattice<T> operator * ( Lattice< T >  A,
Lattice< T > &  B 
)
inline

◆ operator *() [2/4]

template<class T >
Lattice<T> operator * ( Lattice< T >  A,
Lattice< T > &&  B 
)
inline

◆ operator *() [3/4]

template<class T >
Lattice<T> operator * ( Lattice< T >  A,
double  b 
)
inline

◆ operator *() [4/4]

template<class T >
Lattice<T> operator * ( Lattice< T >  A,
complex  b 
)
inline

◆ operator+() [1/3]

template<class T >
Lattice<T> operator+ ( Lattice< T >  A,
Lattice< T > &  B 
)
inline

◆ operator+() [2/3]

template<class T >
Lattice<T> operator+ ( Lattice< T >  A,
Lattice< T > &&  B 
)
inline

◆ operator+() [3/3]

template<class T >
Lattice<T> operator+ ( Lattice< T >  A,
complex  b 
)
inline

◆ operator-() [1/3]

template<class T >
Lattice<T> operator- ( Lattice< T >  A,
Lattice< T > &  B 
)
inline

◆ operator-() [2/3]

template<class T >
Lattice<T> operator- ( Lattice< T >  A,
Lattice< T > &&  B 
)
inline

◆ operator-() [3/3]

template<class T >
Lattice<T> operator- ( Lattice< T >  A,
complex  b 
)
inline

◆ operator/() [1/2]

template<class T >
Lattice<T> operator/ ( Lattice< T >  A,
double  b 
)
inline

◆ operator/() [2/2]

template<class T >
Lattice<T> operator/ ( Lattice< T >  A,
complex  b 
)
inline

◆ realTrace()

template<class SU3 >
Lattice<double> realTrace ( Lattice< SU3 L)
inline

◆ realTraceMultiplication()

Lattice<double> realTraceMultiplication ( Lattice< SU3 L1,
Lattice< SU3 L2 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shift()

Lattice<SU3> shift ( Lattice< SU3 L,
DIR  direction,
unsigned int  lorentzVector 
)
inline

shift copies the lattice L and shifts it in a specified lorentzVector direction DIR.

The shift shares a face of the lattice with a neighbouring processsors, and retrieves a corresponding face from a neighboring processor, essentialle shifting the entire lattice one \(\hat{\mu}\).

See also
Chapter 5 in https://github.com/hmvege/LQCDMasterThesis contains a detailed description of the sharing process.
Parameters
Lis the lattiece we are to shift
directionwe are shifting in. Either FORWARDS or BACKWARDS.
lorentzVectorthe direction in the Lorentz index \(\hat{\mu}\) we are shifting in. Either 0, 1, 2 or 3.
Returns
a copy of the lattice L that contains the face of a neighboring lattice.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ subtractImag() [1/2]

template<class SU3 >
Lattice<SU3> subtractImag ( Lattice< SU3 > &  L,
const Lattice< double > &  other 
)
inline
Here is the caller graph for this function:

◆ subtractImag() [2/2]

template<class SU3 >
Lattice<SU3> subtractImag ( Lattice< SU3 > &&  L,
Lattice< double > &&  other 
)
inline

◆ subtractReal() [1/2]

template<class SU3 >
Lattice<SU3> subtractReal ( Lattice< SU3 > &  L,
const Lattice< double > &  other 
)
inline

◆ subtractReal() [2/2]

template<class SU3 >
Lattice<SU3> subtractReal ( Lattice< SU3 > &&  L,
Lattice< double > &&  other 
)
inline

◆ sum()

template<class T >
T sum ( Lattice< T >  L)
inline
Here is the caller graph for this function:

◆ sumRealTrace()

template<class SU3 >
double sumRealTrace ( Lattice< SU3 L)
inline
Here is the caller graph for this function:

◆ sumRealTraceMultiplication()

template<class SU3 >
double sumRealTraceMultiplication ( Lattice< SU3 L1,
Lattice< SU3 L2 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sumSpatial()

std::vector<double> sumSpatial ( Lattice< double >  L)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ trace()

template<class SU3 >
Lattice<complex> trace ( Lattice< SU3 L)
inline

◆ transpose() [1/2]

template<class SU3 >
Lattice<SU3> transpose ( Lattice< SU3 > &  B)
inline
Here is the call graph for this function:

◆ transpose() [2/2]

template<class SU3 >
Lattice<SU3> transpose ( Lattice< SU3 > &&  B)
inline
Here is the call graph for this function: