49 memcpy(
v, dynamic_cast<const cpuColorSpinorField&>(src).
v,
bytes);
53 errorQuda(
"Unknown input ColorSpinorField %s",
typeid(src).name());
92 errorQuda(
"Unknown input ColorSpinorField %s",
typeid(src).name());
162 memcpy(param.
x,
x,
nDim*
sizeof(
int));
180 errorQuda(
"dual-parity fields should have double the size of a single-parity field (%lu,%lu,%lu)\n",
206 for (
int i=0; i<
x[
nDim-1]; i++) memcpy(((
void**)
v)[i], ((
void**)src.
v)[i],
bytes/x[
nDim-1]);
289 for(
int i=0; i < 4; i++){
309 errorQuda(
"Full spinor is not supported in unpackGhost for cpu");
328 packGhost(sendbuf, parity, nFace, dagger);
static int initGhostFaceBuffer
int genericCompare(const cpuColorSpinorField &a, const cpuColorSpinorField &b, int tol)
void genericPrintVector(const cpuColorSpinorField &a, unsigned int x)
void copy(const cpuColorSpinorField &)
QudaFieldOrder fieldOrder
void PrintVector(unsigned int x) const
void unpackGhost(void *ghost_spinor, const int dim, const QudaDirection dir, const int dagger)
enum QudaPrecision_s QudaPrecision
void create(const QudaFieldCreate)
CompositeColorSpinorFieldDescriptor composite_descr
used for deflation eigenvector sets etc.:
cpuColorSpinorField(const cpuColorSpinorField &)
void Source(const QudaSourceType sourceType, const int st=0, const int s=0, const int c=0)
void copyGenericColorSpinor(ColorSpinorField &dst, const ColorSpinorField &src, QudaFieldLocation location, void *Dst=0, void *Src=0, void *dstNorm=0, void *srcNorm=0)
void restore() const
Restores the cpuColorSpinorField.
QudaSiteSubset siteSubset
enum QudaSourceType_s QudaSourceType
void packGhost(void **ghost, const QudaParity parity, const int nFace, const int dagger) const
bool is_composite
for deflation solvers:
enum QudaDirection_s QudaDirection
static void * backGhostFaceSendBuffer[QUDA_MAX_DIM]
void genericPackGhost(void **ghost, const ColorSpinorField &a, QudaParity parity, int nFace, int dagger, MemoryLocation *destination=nullptr)
Generic ghost packing routine.
static void checkField(const ColorSpinorField &, const ColorSpinorField &)
void exchange(void **ghost, void **sendbuf, int nFace=1) const
void reset(const ColorSpinorParam &)
#define ALIGNMENT_ADJUST(n)
QudaSiteSubset SiteSubset() const
void saveSpinorField(ColorSpinorField &src) const
void * ghost[2][QUDA_MAX_DIM]
static void * backGhostFaceBuffer[QUDA_MAX_DIM]
enum QudaParity_s QudaParity
void genericSource(cpuColorSpinorField &a, QudaSourceType sourceType, int x, int s, int c)
void exchangeGhost(QudaParity parity, int nFace, int dagger, const MemoryLocation *pack_destination=nullptr, const MemoryLocation *halo_location=nullptr, bool gdr_send=false, bool gdr_recv=false, QudaPrecision ghost_precision=QUDA_INVALID_PRECISION) const
This is a unified ghost exchange function for doing a complete halo exchange regardless of the type o...
void init()
Create the CUBLAS context.
static void * fwdGhostFaceSendBuffer[QUDA_MAX_DIM]
static void freeGhostBuffer(void)
#define safe_malloc(size)
static void * fwdGhostFaceBuffer[QUDA_MAX_DIM]
static int Compare(const cpuColorSpinorField &a, const cpuColorSpinorField &b, const int resolution=1)
Perform a component by component comparison of two color-spinor fields. In doing we normalize with re...
void * memset(void *s, int c, size_t n)
virtual ColorSpinorField & operator=(const ColorSpinorField &)
void backup() const
Backs up the cpuColorSpinorField.
virtual ~cpuColorSpinorField()
void allocateGhostBuffer(int nFace) const
Allocate the ghost buffers.
int surfaceCB[QUDA_MAX_DIM]
enum QudaFieldCreate_s QudaFieldCreate
#define QUDA_MAX_DIM
Maximum number of dimensions supported by QUDA. In practice, no routines make use of more than 5...
void * ghost_buf[2 *QUDA_MAX_DIM]
QudaSiteSubset siteSubset
static size_t ghostFaceBytes[QUDA_MAX_DIM]
ColorSpinorField & operator=(const ColorSpinorField &)