|
QUDA v0.4.0
A library for QCD on GPUs
|
Main header file for the QUDA library. More...
#include <enum_quda.h>Go to the source code of this file.
Classes | |
| struct | QudaGaugeParam_s |
| struct | QudaInvertParam_s |
Defines | |
| #define | QUDA_VERSION_MAJOR 0 |
| #define | QUDA_VERSION_MINOR 4 |
| #define | QUDA_VERSION_SUBMINOR 0 |
| #define | QUDA_VERSION ((QUDA_VERSION_MAJOR<<16) | (QUDA_VERSION_MINOR<<8) | QUDA_VERSION_SUBMINOR) |
| This macro is deprecated. Use QUDA_VERSION_MAJOR, etc., instead. | |
| #define | QUDA_MAX_DIM 6 |
| Maximum number of dimensions supported by QUDA. In practice, no routines make use of more than 5. | |
| #define | QUDA_MAX_MULTI_SHIFT 32 |
| Maximum number of shifts supported by the multi-shift solver. This number may be changed if need be. | |
Typedefs | |
| typedef struct QudaGaugeParam_s | QudaGaugeParam |
| typedef struct QudaInvertParam_s | QudaInvertParam |
Functions | |
| void | initQuda (int device) |
| void | loadGaugeQuda (void *h_gauge, QudaGaugeParam *param) |
| void | freeGaugeQuda (void) |
| void | saveGaugeQuda (void *h_gauge, QudaGaugeParam *param) |
| void | loadCloverQuda (void *h_clover, void *h_clovinv, QudaInvertParam *inv_param) |
| void | freeCloverQuda (void) |
| void | invertQuda (void *h_x, void *h_b, QudaInvertParam *param) |
| void | invertMultiShiftQuda (void **_hp_x, void *_hp_b, QudaInvertParam *param, double *offsets, int num_offsets, double *residue_sq) |
| void | invertMultiShiftQudaMixed (void **_hp_x, void *_hp_b, QudaInvertParam *param, double *offsets, int num_offsets, double *residue_sq) |
| void | dslashQuda (void *h_out, void *h_in, QudaInvertParam *inv_param, QudaParity parity) |
| void | MatQuda (void *h_out, void *h_in, QudaInvertParam *inv_param) |
| void | MatDagMatQuda (void *h_out, void *h_in, QudaInvertParam *inv_param) |
| void | endQuda (void) |
| QudaGaugeParam | newQudaGaugeParam (void) |
| QudaInvertParam | newQudaInvertParam (void) |
| void | printQudaGaugeParam (QudaGaugeParam *param) |
| void | printQudaInvertParam (QudaInvertParam *param) |
| void | record_gauge (int *X, void *_fatlink, int _fatlink_pad, void *_longlink, int _longlink_pad, QudaReconstructType _longlink_recon, QudaReconstructType _longlink_recon_sloppy, QudaGaugeParam *_param) |
| void | set_dim (int *) |
| void | pack_ghost (void **cpuLink, void **cpuGhost, int nFace, QudaPrecision precision) |
| void | setFatLinkPadding (QudaComputeFatMethod method, QudaGaugeParam *param) |
| int | computeFatLinkQuda (void *fatlink, void **sitelink, double *act_path_coeff, QudaGaugeParam *param, QudaComputeFatMethod method) |
| void | initCommsQuda (int argc, char **argv, const int *X, const int nDim) |
| void | endCommsQuda () |
Main header file for the QUDA library.
Note to QUDA developers: When adding new members to QudaGaugeParam and QudaInvertParam, be sure to update lib/check_params.h
Definition in file quda.h.
| #define QUDA_MAX_DIM 6 |
| #define QUDA_MAX_MULTI_SHIFT 32 |
| #define QUDA_VERSION ((QUDA_VERSION_MAJOR<<16) | (QUDA_VERSION_MINOR<<8) | QUDA_VERSION_SUBMINOR) |
| typedef struct QudaGaugeParam_s QudaGaugeParam |
Parameters having to do with the gauge field or the interpretation of the gauge field by various Dirac operators
| typedef struct QudaInvertParam_s QudaInvertParam |
| int computeFatLinkQuda | ( | void * | fatlink, |
| void ** | sitelink, | ||
| double * | act_path_coeff, | ||
| QudaGaugeParam * | param, | ||
| QudaComputeFatMethod | method | ||
| ) |
| void dslashQuda | ( | void * | h_out, |
| void * | h_in, | ||
| QudaInvertParam * | inv_param, | ||
| QudaParity | parity | ||
| ) |
Apply the Dslash operator (D_{eo} or D_{oe})
Definition at line 633 of file interface_quda.cpp.
| void endCommsQuda | ( | ) |
Definition at line 1909 of file interface_quda.cpp.
| void endQuda | ( | void | ) |
Finalize the library
Definition at line 431 of file interface_quda.cpp.
| void freeCloverQuda | ( | void | ) |
Free QUDA's internal copy of the clover term and/or clover inverse.
Definition at line 420 of file interface_quda.cpp.
| void freeGaugeQuda | ( | void | ) |
Free QUDA's internal copy of the gauge field.
Definition at line 393 of file interface_quda.cpp.
| void initCommsQuda | ( | int | argc, |
| char ** | argv, | ||
| const int * | X, | ||
| const int | nDim | ||
| ) |
Definition at line 1880 of file interface_quda.cpp.
| void initQuda | ( | int | device | ) |
Initialize the library.
| device | CUDA device number to use. In a multi-GPU build, this parameter may be either set explicitly on a per-process basis or set to -1 to enable a default allocation of devices to processes. |
Definition at line 108 of file interface_quda.cpp.
| void invertMultiShiftQuda | ( | void ** | _hp_x, |
| void * | _hp_b, | ||
| QudaInvertParam * | param, | ||
| double * | offsets, | ||
| int | num_offsets, | ||
| double * | residue_sq | ||
| ) |
Solve for multiple shifts (e.g., masses).
Generic version of the multi-shift solver. Should work for most fermions. Note, offset[0] is not folded into the mass parameter
Definition at line 944 of file interface_quda.cpp.
| void invertMultiShiftQudaMixed | ( | void ** | _hp_x, |
| void * | _hp_b, | ||
| QudaInvertParam * | param, | ||
| double * | offsets, | ||
| int | num_offsets, | ||
| double * | residue_sq | ||
| ) |
Mixed-precision multi-shift solver. In the future, this functionality will be folded into invertMultiShiftQuda().
Definition at line 1269 of file interface_quda.cpp.
| void invertQuda | ( | void * | h_x, |
| void * | h_b, | ||
| QudaInvertParam * | param | ||
| ) |
Perform the solve, according to the parameters set in param. It is assumed that the gauge field has already been loaded via loadGaugeQuda().
Definition at line 786 of file interface_quda.cpp.
| void loadCloverQuda | ( | void * | h_clover, |
| void * | h_clovinv, | ||
| QudaInvertParam * | inv_param | ||
| ) |
Load the clover term and/or the clover inverse from the host. Either h_clover or h_clovinv may be set to NULL.
Definition at line 315 of file interface_quda.cpp.
| void loadGaugeQuda | ( | void * | h_gauge, |
| QudaGaugeParam * | param | ||
| ) |
Load the gauge field from the host.
Definition at line 205 of file interface_quda.cpp.
| void MatDagMatQuda | ( | void * | h_out, |
| void * | h_in, | ||
| QudaInvertParam * | inv_param | ||
| ) |
Apply M^{}M, possibly even/odd preconditioned
Definition at line 709 of file interface_quda.cpp.
| void MatQuda | ( | void * | h_out, |
| void * | h_in, | ||
| QudaInvertParam * | inv_param | ||
| ) |
Apply the full Dslash matrix, possibly even/odd preconditioned
Definition at line 668 of file interface_quda.cpp.
| QudaGaugeParam newQudaGaugeParam | ( | void | ) |
A new QudaGaugeParam should always be initialized immediately after it's defined (and prior to explicitly setting its members) using this function. Typical usage is as follows:
QudaGaugeParam gauge_param = newQudaGaugeParam();
| QudaInvertParam newQudaInvertParam | ( | void | ) |
A new QudaInvertParam should always be initialized immediately after it's defined (and prior to explicitly setting its members) using this function. Typical usage is as follows:
QudaInvertParam invert_param = newQudaInvertParam();
| void pack_ghost | ( | void ** | cpuLink, |
| void ** | cpuGhost, | ||
| int | nFace, | ||
| QudaPrecision | precision | ||
| ) |
| void printQudaGaugeParam | ( | QudaGaugeParam * | param | ) |
Print the members of QudaGaugeParam.
Definition at line 39 of file check_params.h.
| void printQudaInvertParam | ( | QudaInvertParam * | param | ) |
Print the members of QudaGaugeParam.
Definition at line 109 of file check_params.h.
| void record_gauge | ( | int * | X, |
| void * | _fatlink, | ||
| int | _fatlink_pad, | ||
| void * | _longlink, | ||
| int | _longlink_pad, | ||
| QudaReconstructType | _longlink_recon, | ||
| QudaReconstructType | _longlink_recon_sloppy, | ||
| QudaGaugeParam * | _param | ||
| ) |
Definition at line 1146 of file interface_quda.cpp.
| void saveGaugeQuda | ( | void * | h_gauge, |
| QudaGaugeParam * | param | ||
| ) |
Save the gauge field to the host.
Definition at line 289 of file interface_quda.cpp.
| void set_dim | ( | int * | ) |
| void setFatLinkPadding | ( | QudaComputeFatMethod | method, |
| QudaGaugeParam * | param | ||
| ) |
1.7.4