QUDA v0.3.2
A library for QCD on GPUs
Defines | Functions | Variables

quda/lib/gauge_force_quda.cu File Reference

#include <read_gauge.h>
#include <gauge_quda.h>
#include "gauge_force_quda.h"

Go to the source code of this file.

Defines

#define MULT_SU3_NN_TEST(ma, mb)
#define MULT_SU3_NA_TEST(ma, mb)
#define MULT_SU3_AN_TEST(ma, mb)
#define GF_SITE_MATRIX_LOAD_TEX   1
#define LOAD_EVEN_MATRIX(dir, idx, var)   LOAD_MATRIX_12_SINGLE_TEX(siteLink0TexSingle, dir, idx, var)
#define LOAD_ODD_MATRIX(dir, idx, var)   LOAD_MATRIX_12_SINGLE_TEX(siteLink1TexSingle, dir, idx, var)
#define LOAD_MATRIX   LOAD_MATRIX_12_SINGLE
#define LOAD_ANTI_HERMITIAN   LOAD_ANTI_HERMITIAN_SINGLE
#define WRITE_ANTI_HERMITIAN   WRITE_ANTI_HERMITIAN_SINGLE
#define RECONSTRUCT_MATRIX   RECONSTRUCT_LINK_12
#define COMPUTE_NEW_FULL_IDX_PLUS_UPDATE(mydir, idx)
#define COMPUTE_NEW_FULL_IDX_MINUS_UPDATE(mydir, idx)
#define GF_COMPUTE_RECONSTRUCT_SIGN(sign, dir, i1, i2, i3, i4)

Functions

void gauge_force_init_cuda (QudaGaugeParam *param, int path_max_length)
template<int oddBit>
__global__ void parity_compute_gauge_force_kernel (float2 *momEven, float2 *momOdd, int dir, double eb3, float4 *linkEven, float4 *linkOdd, int *input_path, int *length, float *path_coeff, int num_paths)
void gauge_force_cuda (FullMom cudaMom, int dir, double eb3, FullGauge cudaSiteLink, QudaGaugeParam *param, int **input_path, int *length, void *path_coeff, int num_paths, int max_length)

Variables

__constant__ int path_max_length

Define Documentation

#define COMPUTE_NEW_FULL_IDX_MINUS_UPDATE (   mydir,
  idx 
)
Value:
do {            \
        switch(mydir){                                                  \
        case 0:                                                         \
            new_mem_idx = ( (new_x1==0)?idx+X1m1:idx-1);                \
            new_x1 = (new_x1==0)?X1m1:new_x1 - 1;                       \
            break;                                                      \
        case 1:                                                         \
            new_mem_idx = ( (new_x2==0)?idx+X2X1mX1:idx-X1);            \
            new_x2 = (new_x2==0)?X2m1:new_x2 - 1;                       \
            break;                                                      \
        case 2:                                                         \
            new_mem_idx = ( (new_x3==0)?idx+X3X2X1mX2X1:idx-X2X1);      \
            new_x3 = (new_x3==0)?X3m1:new_x3 - 1;                       \
            break;                                                      \
        case 3:                                                         \
            new_mem_idx = ( (new_x4==0)?idx+X4X3X2X1mX3X2X1:idx-X3X2X1); \
            new_x4 = (new_x4==0)?X4m1:new_x4 - 1;                       \
            break;                                                      \
        }                                                               \
    }while(0)

Definition at line 348 of file gauge_force_quda.cu.

#define COMPUTE_NEW_FULL_IDX_PLUS_UPDATE (   mydir,
  idx 
)
Value:
do {            \
        switch(mydir){                                                  \
        case 0:                                                         \
            new_mem_idx = ( (new_x1==X1m1)?idx-X1m1:idx+1);             \
            new_x1 = (new_x1==X1m1)?0:new_x1+1;                         \
            break;                                                      \
        case 1:                                                         \
            new_mem_idx = ( (new_x2==X2m1)?idx-X2X1mX1:idx+X1);         \
            new_x2 = (new_x2==X2m1)?0:new_x2+1;                         \
            break;                                                      \
        case 2:                                                         \
            new_mem_idx = ( (new_x3==X3m1)?idx-X3X2X1mX2X1:idx+X2X1);   \
            new_x3 = (new_x3==X3m1)?0:new_x3+1;                         \
            break;                                                      \
        case 3:                                                         \
            new_mem_idx = ( (new_x4==X4m1)?idx-X4X3X2X1mX3X2X1:idx+X3X2X1); \
            new_x4 = (new_x4==X4m1)?0:new_x4+1;                         \
            break;                                                      \
        }                                                               \
    }while(0)

Definition at line 327 of file gauge_force_quda.cu.

#define GF_COMPUTE_RECONSTRUCT_SIGN (   sign,
  dir,
  i1,
  i2,
  i3,
  i4 
)
Value:
do {    \
        sign =1;                                                        \
        switch(dir){                                                    \
        case XUP:                                                       \
            if ( (i4 & 1) == 1){                                        \
                sign = 1;                                               \
            }                                                           \
            break;                                                      \
        case YUP:                                                       \
            if ( ((i4+i1) & 1) == 1){                                   \
                sign = 1;                                               \
            }                                                           \
            break;                                                      \
        case ZUP:                                                       \
            if ( ((i4+i1+i2) & 1) == 1){                                \
                sign = 1;                                               \
            }                                                           \
            break;                                                      \
        case TUP:                                                       \
            if (i4 == X4m1 ){                                           \
                sign = 1;                                               \
            }                                                           \
            break;                                                      \
        }                                                               \
    }while (0)

Definition at line 369 of file gauge_force_quda.cu.

#define GF_SITE_MATRIX_LOAD_TEX   1

Definition at line 292 of file gauge_force_quda.cu.

#define LOAD_ANTI_HERMITIAN   LOAD_ANTI_HERMITIAN_SINGLE

Definition at line 305 of file gauge_force_quda.cu.

#define LOAD_EVEN_MATRIX (   dir,
  idx,
  var 
)    LOAD_MATRIX_12_SINGLE_TEX(siteLink0TexSingle, dir, idx, var)

Definition at line 296 of file gauge_force_quda.cu.

#define LOAD_MATRIX   LOAD_MATRIX_12_SINGLE

Definition at line 304 of file gauge_force_quda.cu.

#define LOAD_ODD_MATRIX (   dir,
  idx,
  var 
)    LOAD_MATRIX_12_SINGLE_TEX(siteLink1TexSingle, dir, idx, var)

Definition at line 297 of file gauge_force_quda.cu.

#define MULT_SU3_AN_TEST (   ma,
  mb 
)

Definition at line 197 of file gauge_force_quda.cu.

#define MULT_SU3_NA_TEST (   ma,
  mb 
)

Definition at line 101 of file gauge_force_quda.cu.

#define MULT_SU3_NN_TEST (   ma,
  mb 
)

Definition at line 6 of file gauge_force_quda.cu.

#define RECONSTRUCT_MATRIX   RECONSTRUCT_LINK_12

Definition at line 307 of file gauge_force_quda.cu.

#define WRITE_ANTI_HERMITIAN   WRITE_ANTI_HERMITIAN_SINGLE

Definition at line 306 of file gauge_force_quda.cu.


Function Documentation

void gauge_force_cuda ( FullMom  cudaMom,
int  dir,
double  eb3,
FullGauge  cudaSiteLink,
QudaGaugeParam param,
int **  input_path,
int *  length,
void *  path_coeff,
int  num_paths,
int  max_length 
)

Definition at line 535 of file gauge_force_quda.cu.

void gauge_force_init_cuda ( QudaGaugeParam param,
int  path_max_length 
)

Definition at line 313 of file gauge_force_quda.cu.

template<int oddBit>
__global__ void parity_compute_gauge_force_kernel ( float2 *  momEven,
float2 *  momOdd,
int  dir,
double  eb3,
float4 *  linkEven,
float4 *  linkOdd,
int *  input_path,
int *  length,
float *  path_coeff,
int  num_paths 
)

Definition at line 401 of file gauge_force_quda.cu.


Variable Documentation

__constant__ int path_max_length

Definition at line 310 of file gauge_force_quda.cu.

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines