Function declarations for most of the routines. More...
Go to the source code of this file.
Functions | |
| void | Force_s (double *dSdpi, Complex_f *ut[2], Complex_f *X1, Complex_f *X2, Complex_f gamval[20], unsigned int *iu, const unsigned short gamin[16], const float akappa, const unsigned short mu) |
| Calculates the force \(\frac{dS}{d\pi}\) at each intermediate time. | |
| void | Force_t (double *dSdpi, Complex_f *ut[2], Complex_f *X1, Complex_f *X2, Complex_f gamval[20], float *dk[2], unsigned int *iu, const unsigned short gamin[16], float akappa) |
| Calculates the force \(\frac{dS}{d\pi}\) at each intermediate time. | |
| int | Force (double *dSdpi, const bool iflag, double res1, Complex *X0, Complex *X1, Complex *Phi, Complex *ut[2], Complex_f *ut_f[2], unsigned int *iu, unsigned int *id, Complex gamval[20], Complex_f gamval_f[20], const unsigned short gamin[16], Complex *sigval, Complex_f *sigval_f, unsigned short *sigin, double *dk[2], float *dk_f[2], const Complex_f jqq, const float akappa, const float beta, const float c_sw, double *ancg) |
| Calculates the force \(\frac{dS}{d\pi}\) at each intermediate time. | |
| int | Gauge_force (double *dSdpi, Complex_f *ut[2], unsigned int *iu, unsigned int *id, float beta) |
| Calculates the gauge force due to the Wilson Action at each intermediate time. | |
| int | Init (const int istart, const int ibound, const int iread, const float beta, const float fmu, const float akappa, const Complex_f ajq, const float c_sw, Complex *u[2], Complex *ut[2], Complex_f *ut_f[2], Complex gamval[20], Complex_f gamval_f[20], unsigned short gamin[16], double *dk[2], float *dk_f[2], unsigned int *iu, unsigned int *id) |
| Initialises the system. | |
| int | Hamilton (double *h, double *s, double res2, double *pp, Complex *X0, Complex *X1, Complex *Phi, Complex *ud[2], Complex_f *ut[2], unsigned int *iu, unsigned int *id, Complex gamval[20], Complex_f gamval_f[20], const unsigned short gamin[16], Complex *sigval, Complex_f *sigval_f, unsigned short *sigin, double *dk[2], float *dk_f[2], Complex_f jqq, float akappa, float beta, float c_sw, double *ancgh, int traj) |
| Calculate the Hamiltonian. | |
| int | Congradq (int na, double res, Complex *X1, Complex *r, Complex *ud[2], Complex_f *ut[2], Complex_f *clover_f[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], Complex_f gamval_f[20], const unsigned short gamin[16], Complex *sigval, Complex_f *sigval_f, unsigned short *sigin, double *dk[2], float *dk_f[2], Complex_f jqq, float akappa, float c_sw, int *itercg) |
| Matrix Inversion via Conjugate Gradient (up/down flavour partitioning). Solves \((M^\dagger)Mx=\Phi\) Implements up/down partitioning The matrix multiplication step is done at mixed precision, while the update is done at double. | |
| int | Congradp (int na, double res, Complex *Phi, Complex *xi, Complex *ud[2], Complex_f *ut[2], Complex_f *clover_f[nc], unsigned int *iu, unsigned int *id, Complex gamval[20], Complex_f gamval_f[20], const unsigned short gamin[16], Complex *sigval, Complex_f *sigval_f, unsigned short *sigin, double *dk[2], float *dk_f[2], Complex_f jqq, float akappa, float c_sw, int *itercg) |
| Matrix Inversion via Conjugate Gradient (no up/down flavour partitioning). Solves \((M^\dagger)Mx=\Phi\) The matrix multiplication step is done at single precision, while the update is done at double. | |
| int | Measure (double *pbp, double *endenf, double *denf, Complex *qq, Complex *qbqb, double res, int *itercg, Complex *ut[2], Complex_f *ut_f[2], unsigned int *iu, unsigned int *id, Complex gamval[20], Complex_f gamval_f[20], const unsigned short gamin[16], Complex *sigval, Complex_f *sigval_f, unsigned short *sigin, double *dk[2], float *dk_f[2], Complex_f jqq, float akappa, float c_sw, Complex *Phi) |
| Calculate fermion expectation values via a noisy estimator. | |
| int | Average_Plaquette (double *hg, double *avplaqs, double *avplaqt, Complex_f *ut[2], unsigned int *iu, float beta) |
| Calculates the gauge action using new (how new?) lookup table Follows a routine called qedplaq in some QED3 code. | |
| int | SU2plaq (Complex_f *ut[2], Complex_f Sigma[2], unsigned int *iu, int i, int mu, int nu) |
| Calculates the plaquette at site i in the \(\mu--\nu\) direction. | |
| double | Polyakov (Complex_f *ut[2]) |
| Calculate the Polyakov loop (no prizes for guessing that one...). | |
| int | C_gather (Complex_f *x, Complex_f *y, int n, unsigned int *table, unsigned int mu) |
| Extracts all the single precision gauge links in the \(\mu\) direction only. | |
| int | Z_gather (Complex *x, Complex *y, int n, unsigned int *table, unsigned int mu) |
| Extracts all the double precision gauge links in the \(\mu\) direction only. | |
| int | Fill_Small_Phi (int na, Complex *smallPhi, Complex *Phi) |
| Copies necessary (2*4*kvol) elements of Phi into a vector variable. | |
| int | UpDownPart (const unsigned int na, Complex *X0, Complex *R1) |
| Up/Down partitioning of the pseudofermion field. | |
| int | Reunitarise (Complex *ut[2]) |
| Reunitarises u11t and u12t as in conj(u11t[i])*u11t[i]+conj(u12t[i])*u12t[i]=1. | |
| int | ComplexConvert (Complex_f *a, Complex *b, const unsigned int len, const bool dtof, const unsigned short stride) |
| takes an array of complex float and double precision numbers and converts the precision | |
| void | cuAverage_Plaquette (double *hgs, double *hgt, Complex_f *u11t, Complex_f *u12t, unsigned int *iu, dim3 dimGrid, dim3 dimBlock) |
| Calculates the gauge action using new (how new?) lookup table Follows a routine called qedplaq in some QED3 code. | |
| void | cuPolyakov (Complex_f *Sigma[2], Complex_f *ut[2], dim3 dimGrid, dim3 dimBlock) |
| Calculate the Polyakov loop (no prizes for guessing that one...). | |
| void | cuGauge_force (Complex_f *ut[2], double *dSdpi, float beta, unsigned int *iu, unsigned int *id, dim3 dimGrid, dim3 dimBlock) |
| Calculate the gauge contribution to the force. | |
| void | cuForce (double *dSdpi, Complex_f *ut[2], Complex_f *X1, Complex_f *X2, Complex_f gamval[20], float *dk[2], unsigned int *iu, const unsigned short gamin[16], float akappa, dim3 dimGrid, dim3 dimBlock) |
| Calculates the force \(\frac{dS}{d\pi}\) at each intermediate time. | |
| void | Init_CUDA (Complex *u11t, Complex *u12t, Complex gamval[20], Complex_f gamval_f[20], unsigned short gamin[16], double *dk4m, double *dk4p, unsigned int *iu, unsigned int *id) |
| Initialise CUDA cuInit was taken already by CUDA (unsurprisingly). | |
| void | cuFill_Small_Phi (const unsigned int na, Complex *smallPhi, Complex *Phi, dim3 dimBlock, dim3 dimGrid) |
| Copies necessary (2*4*kvol) elements of Phi into a vector variable. | |
| void | cuComplex_convert (Complex_f *a, Complex *b, const unsigned int len, const bool dtof, dim3 dimBlock, dim3 dimGrid) |
| takes an array of complex float and double precision numbers and converts the precision | |
| void | cuReal_convert (float *a, double *b, const unsigned int len, const bool dtof, dim3 dimBlock, dim3 dimGrid) |
| takes an array of real-valued float and double precision numbers and converts the precision | |
| void | cuUpDownPart (const unsigned int na, Complex *X0, Complex *R1, dim3 dimBlock, dim3 dimGrid) |
| Up/Down partitioning of the pseudofermion field. | |
| void | cuReunitarise (Complex *ut[2], dim3 dimGrid, dim3 dimBlock) |
| Reunitarises u11t and u12t as in conj(u11t[i])*u11t[i]+conj(u12t[i])*u12t[i]=1. | |
| void | blockInit (int x, int y, int z, int t, dim3 *dimBlock, dim3 *dimGrid) |
| Initialises the CUDA grid and block size for a given lattice. | |
Variables | |
| cudaStream_t | streams [ndirac *ndim *nadj] |
| An array of concurrent GPU streams to keep it busy. | |
Function declarations for most of the routines.
Definition in file su2hmc.h.
An array of concurrent GPU streams to keep it busy.
Definition at line 29 of file cusu2hmc.cu.