CHROMA
Namespaces | Macros | Functions | Variables
syssolver_linop_qop_mg_w.cc File Reference

Make contact with the QDP clover multigrid solver, transfer the gauge field, generate the coarse grids, solve systems. More...

#include "state.h"
#include "meas/inline/io/named_objmap.h"
#include "actions/ferm/invert/syssolver_linop_factory.h"
#include "actions/ferm/invert/syssolver_linop_aggregate.h"
#include <cstdio>
#include <ostream>
#include "actions/ferm/invert/qop_mg/syssolver_linop_qop_mg_w.h"
#include "wilsonmg-interface.h"
#include "meas/glue/mesplq.h"

Go to the source code of this file.

Namespaces

 Chroma
 Asqtad Staggered-Dirac operator.
 
 Chroma::LinOpSysSolverQOPMGEnv
 QDP multigrid system solver namespace.
 

Macros

#define index(c)   c[0]+nrow[0]/2*(c[1]+nrow[1]*(c[2]+nrow[2]*(c[3]+nrow[3]*((c[0]+c[1]+c[2]+c[3])%2))))
 
#define pepo(d)
 

Functions

struct MGP (Clover_Params) PC(g_param)
 
 Chroma::pepo (0) pepo(1) pepo(2) pepo(3) LinOpSysSolverQOPMG
 
template<typename T >
void Chroma::importFermion (QLA(DiracFermion) *dest, T *vec_src, int coords[])
 
template<typename T >
void Chroma::peekpokesrc (QLA(DiracFermion) *dest, int coords[])
 
template<typename T >
void Chroma::peekpokeguess (QLA(DiracFermion) *dest, int coords[])
 
template<typename T >
void Chroma::peekpokesol (QLA(DiracFermion) *src, int coords[])
 
LinOpSystemSolver< LatticeFermion > * Chroma::LinOpSysSolverQOPMGEnv::createFerm (XMLReader &xml_in, const std::string &path, Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, Handle< LinearOperator< LatticeFermion > > A)
 Callback function for standard precision. More...
 
bool Chroma::LinOpSysSolverQOPMGEnv::registerAll ()
 Register all the factories. More...
 

Variables

static multi1d< LatticeColorMatrix > Chroma::u
 
void * Chroma::fermionsrc
 
void * Chroma::fermionsol
 

Detailed Description

Make contact with the QDP clover multigrid solver, transfer the gauge field, generate the coarse grids, solve systems.

Definition in file syssolver_linop_qop_mg_w.cc.

Macro Definition Documentation

◆ index

#define index (   c)    c[0]+nrow[0]/2*(c[1]+nrow[1]*(c[2]+nrow[2]*(c[3]+nrow[3]*((c[0]+c[1]+c[2]+c[3])%2))))

Definition at line 44 of file syssolver_linop_qop_mg_w.cc.

◆ pepo

#define pepo (   d)
Value:
void peekpoke##d(QLA(ColorMatrix) *dest, int coords[]) {\
START_CODE();\
multi1d<int> x(4); for (int i=0; i<4; i++) x[i] = coords[i];\
ColorMatrix U; U.elem() = u[d].elem(Layout::linearSiteIndex(x));\
END_CODE();\
\
QLA(Complex) z;\
QLA(Real) real, imag;\
for (int c1=0; c1<3; c1++)\
for (int c2=0; c2<3; c2++) {\
real = U.elem().elem().elem(c1,c2).real();\
imag = U.elem().elem().elem(c1,c2).imag();\
if (0&&c1==0&&c2==0) {std::fflush(stdout);printf("Chroma: gauge[%d] I am node %d, parsing %d %d %d %d; I see %g + I %g\n",d,Layout::nodeNumber(),x[0],x[1],x[2],x[3],real,imag); std::fflush(stdout);}\
QLA(C_eq_R_plus_i_R)(&z, &real, &imag);\
QLA_elem_M(*dest,c1,c2) = z;\
}\
}
unsigned i
Definition: ldumul_w.cc:34
int z
Definition: meslate.cc:36
int x
Definition: meslate.cc:34
multi1d< int > coords(const int x, const int y, const int z, const int t)
static multi1d< LatticeColorMatrix > u
DComplex d
Definition: invbicg.cc:99
multi1d< LatticeColorMatrix > U

Definition at line 45 of file syssolver_linop_qop_mg_w.cc.

Function Documentation

◆ MGP()

struct MGP ( Clover_Params  )