su2hmc
|
Conjugate gradients. Congradq for the solver and Congradp for the inversion. More...
#include <matrices.h>
Go to the source code of this file.
Functions | |
int | Congradq (int na, double res, Complex *X1, Complex *r, Complex_f *u11t, Complex_f *u12t, unsigned int *iu, unsigned int *id, Complex_f *gamval_f, int *gamin, float *dk4m, float *dk4p, Complex_f jqq, float akappa, 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 single precision, while the update is done at double. | |
int | Congradp (int na, double res, Complex *Phi, Complex *xi, Complex_f *u11t, Complex_f *u12t, unsigned int *iu, unsigned int *id, Complex_f *gamval, int *gamin, float *dk4m, float *dk4p, Complex_f jqq, float akappa, 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. | |
Conjugate gradients. Congradq for the solver and Congradp for the inversion.
Definition in file congrad.c.
int Congradp | ( | int | na, |
double | res, | ||
Complex * | Phi, | ||
Complex * | xi, | ||
Complex_f * | u11t, | ||
Complex_f * | u12t, | ||
unsigned int * | iu, | ||
unsigned int * | id, | ||
Complex_f * | gamval, | ||
int * | gamin, | ||
float * | dk4m, | ||
float * | dk4p, | ||
Complex_f | jqq, | ||
float | akappa, | ||
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.
na | Flavour index |
res | Limit for conjugate gradient |
Phi | Pseudofermion field. |
xi | Returned as \((M^\dagger M)^{-1} \Phi\) |
u11t | First colour's trial field |
u12t | Second colour's trial field |
iu | Upper halo indices |
id | Lower halo indices |
gamval_f | Single precision gamma matrices rescaled by kappa |
gamin | Dirac indices |
dk4m | \(\left(1+\gamma_0\right)e^{-\mu}\) |
dk4p | \(\left(1-\gamma_0\right)e^\mu\) |
jqq | Diquark source |
akappa | Hopping Parameter |
itercg | Counts the iterations of the conjugate gradient |
Definition at line 262 of file congrad.c.
References AVX, Complex, Complex_f, Dslash_f(), Dslashd_f(), kferm, kfermHalo, kvol, nc, ndim, ngorkov, niterc, Par_dsum(), Par_fsum(), and rank.
int Congradq | ( | int | na, |
double | res, | ||
Complex * | X1, | ||
Complex * | r, | ||
Complex_f * | u11t_f, | ||
Complex_f * | u12t_f, | ||
unsigned int * | iu, | ||
unsigned int * | id, | ||
Complex_f * | gamval_f, | ||
int * | gamin, | ||
float * | dk4m_f, | ||
float * | dk4p_f, | ||
Complex_f | jqq, | ||
float | akappa, | ||
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 single precision, while the update is done at double.
na | Flavour index |
res | Limit for conjugate gradient |
X1 | Pseudofermion field \(\Phi\) initially, returned as \((M^\dagger M)^{-1} \Phi\) |
r | Partition of \(\Phi\) being used. Gets recycled as the residual vector |
u11t_f | First colour's trial field |
u12t_f | Second colour's trial field |
iu | Upper halo indices |
id | Lower halo indices |
gamval_f | Single precision gamma matrices rescaled by kappa |
gamin | Dirac indices |
dk4m_f | \(\left(1+\gamma_0\right)e^{-\mu}\) |
dk4p_f | \(\left(1-\gamma_0\right)e^\mu\) |
jqq | Diquark source |
akappa | Hopping Parameter |
itercg | Counts the iterations of the conjugate gradient |
Definition at line 7 of file congrad.c.
References AVX, Complex, Complex_f, Hdslash_f(), Hdslashd_f(), kferm2, kferm2Halo, kvol, nc, ndim, ndirac, niterc, Par_dsum(), Par_fsum(), and rank.