Clover fermion routines. More...
#include <clover.h>Go to the source code of this file.
Functions | |
| void | ByGenLeft (Complex_f a[nc], const unsigned short gen) |
| Multiply leaf (or part of one) by generator from left. | |
| void | ByGenRight (Complex_f a[nc], const unsigned short gen) |
| Multiply leaf (or part of one) by generator from right. | |
| void | Half_Leaf (Complex_f Leaves[nc], Complex_f *ut[nc], Complex_f a[nc], unsigned int *iu, unsigned int *id, const unsigned int i, const unsigned short mu, const unsigned short nu, const unsigned short leaf) |
| Calculates the first half of the leaf for a clover term. We split it so that the force term can reuse the first half of the leaf. | |
| void | Half_Leaves (Complex_f *hLeaves[2], Complex_f *ut[2], unsigned int *iu, unsigned int *id, const unsigned short mu, const unsigned short nu) |
| Calculates the products of the first two links in a plaquette. | |
| void | Leaf (Complex_f Leaves[nc], Complex_f *ut[nc], unsigned int *iu, unsigned int *id, unsigned int i, const unsigned short mu, const unsigned short nu, const unsigned short leaf) |
| Calculates a leaf for a clover term. | |
| void | Clover (Complex_f *clover[2], Complex_f *ut[2], unsigned int *iu, unsigned int *id) |
| Calculates the clovers in all directions at all sites. | |
| void | ByClover (Complex *phi, Complex *r, Complex *clover[2], Complex *sigval, const float akappa, unsigned short *sigin, bool dag) |
| Clover analogue of the Dslash operation. This version acts on all flavours similar to Dslash and Dslash_d. | |
| void | HbyClover (Complex *phi, Complex *r, Complex *clover[2], Complex *sigval, const float akappa, unsigned short *sigin, bool dag) |
| Clover analogue of the Dslash operation. This version acts on all flavours similar to Dslash and Dslash_d. | |
| void | ByClover_f (Complex_f *phi, Complex_f *r, Complex_f *clover[2], Complex_f *sigval, const float akappa, unsigned short *sigin, bool dag) |
| Clover analogue of the Dslash operation. This version acts on all flavours similar to Dslash and Dslash_d. | |
| void | HbyClover_f (Complex_f *phi, Complex_f *r, Complex_f *clover[2], Complex_f *sigval, const float akappa, unsigned short *sigin, bool dag) |
| Clover analogue of the Dslash operation. This version acts on all flavours similar to Dslash and Dslash_d. | |
| static void | GetBilinear (Complex_f Z[nc *nc], Bilinear_a Xmn, unsigned int ind) |
| Loads the compacted bilinear form into a \(2\times2\) complex valued matrix. | |
| void | CalcXmunu (Bilinear_a Xmunu, Complex_f *X1, Complex_f *X2, const Complex_f *sigval, const unsigned short *sigin, const unsigned short mu, const unsigned short nu) |
| Gets \(X_{\mu\nu}\) for the clover force. | |
| static void | GLeft (Complex_f out[4], const Complex_f G[2], const Complex_f X[4]) |
| Multiplies \( X_{\mu\nu}\) by a gauge field from the left. | |
| static void | GRight (Complex_f out[4], const Complex_f G[2], const Complex_f X[4]) |
| Multiplies \( X_{\mu\nu}\) by a gauge field from the right. | |
| static void | GSandwich (Complex_f out[4], Complex_f tmp[4], const Complex_f Gl[2], const Complex_f X[4], const Complex_f Gr[2]) |
| Multiplies \( X_{\mu\nu}\) by a gauge field from the left and the right. | |
| void | Clov_Force (double *dSdpi, Complex_f *ut[2], Complex_f *X1, Complex_f *X2, const Complex_f *sigval, const unsigned short *sigin, unsigned int *iu, unsigned int *id, const float akappa) |
| Gets the clover contribution to the force. | |
| int | Init_clover (Complex **sigval, Complex_f **sigval_f, unsigned short **sigin, float c_sw) |
| Initialise values needed for the clover terms. | |
| void | Clover_free (Complex_f *clover[nc]) |
| Free's memory used for clover terms and leaves. | |
Clover fermion routines.
Definition in file clover.c.