4 #define FINE_GRAINED_ACCESS 11 using namespace gauge;
14 template <
typename Float,
int Nc>
17 constexpr
int length = 2*Nc*Nc;
24 #ifdef FINE_GRAINED_ACCESS 26 extractGhost<Float,length>(G(const_cast<GaugeField&>(u), 0, (
void**)Ghost), u, location, extract,
offset);
29 extractGhost<Float,length>(G(u, 0, Ghost), u, location, extract,
offset);
34 #ifdef BUILD_QDP_INTERFACE 35 #ifdef FINE_GRAINED_ACCESS 37 extractGhost<Float,length>(G(const_cast<GaugeField&>(u), 0, (
void**)Ghost), u, location, extract,
offset);
42 errorQuda(
"QDP interface has not been built\n");
52 template <
typename Float>
62 extractGhostMG<Float, 4>(u, Ghost, extract,
offset);
63 }
else if (u.
Ncolor() == 32) {
64 extractGhostMG<Float, 32>(u, Ghost, extract,
offset);
65 }
else if (u.
Ncolor() == 48) {
66 extractGhostMG<Float, 48>(u, Ghost, extract,
offset);
67 }
else if (u.
Ncolor() == 64) {
68 extractGhostMG<Float, 64>(u, Ghost, extract,
offset);
77 #ifdef GPU_MULTIGRID_DOUBLE 80 errorQuda(
"Double precision multigrid has not been enabled");
QudaLinkType LinkType() const
void extractGhostMG(const GaugeField &u, Float **Ghost, bool extract, int offset)
Main header file for host and device accessors to GaugeFields.
enum QudaFieldLocation_s QudaFieldLocation
QudaReconstructType Reconstruct() const
void extractGaugeGhostMG(const GaugeField &u, void **ghost, bool extract, int offset)
QudaGaugeFieldOrder Order() const
QudaPrecision Precision() const