QUDA v0.3.2
A library for QCD on GPUs

quda/include/gauge_quda.h

Go to the documentation of this file.
00001 #ifndef _GAUGE_QUDA_H
00002 #define _GAUGE_QUDA_H
00003 
00004 #include <quda_internal.h>
00005 #include <quda.h>
00006 
00007 #ifdef __cplusplus
00008 extern "C" {
00009 #endif
00010 
00011   void createGaugeField(FullGauge *cudaGauge, void *cpuGauge, QudaPrecision cuda_prec, QudaPrecision cpu_prec,
00012                         GaugeFieldOrder gauge_order, ReconstructType reconstruct, GaugeFixed gauge_fixed,
00013                         Tboundary t_boundary, int *XX, double anisotropy, double tadpole_coeff, int pad);
00014 
00015   void restoreGaugeField(void *cpuGauge, FullGauge *cudaGauge, QudaPrecision cpu_prec, GaugeFieldOrder gauge_order);
00016 
00017   void freeGaugeField(FullGauge *cudaGauge);
00018   
00019   void loadLinkToGPU(FullGauge cudaGauge, void *cpuGauge, QudaGaugeParam* param);
00020   void storeLinkToCPU(void* cpuGauge, FullGauge *cudaGauge, QudaGaugeParam* param);
00021   void createLinkQuda(FullGauge* cudaGauge, QudaGaugeParam* param);
00022   void createStapleQuda(FullStaple* cudaStaple, QudaGaugeParam* param);
00023   void freeStapleQuda(FullStaple* cudaStaple);
00024   void createMomQuda(FullMom* cudaMom, QudaGaugeParam* param);
00025   void freeMomQuda(FullMom *cudaMom);
00026   void storeMomToCPU(void* mom, FullMom cudaMom, QudaGaugeParam* param);
00027   void loadMomToGPU(FullMom cudaMom, void* mom, QudaGaugeParam* param);
00028 
00029 #define freeLinkQuda freeGaugeField
00030 
00031 #define momSiteSize   10 // real numbers per momentum
00032 #define gaugeSiteSize 18 // real numbers per gauge field
00033   
00034 #ifdef __cplusplus
00035 }
00036 #endif
00037 
00038 #endif // _GAUGE_QUDA_H
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines