QUDA  v1.1.0
A library for QCD on GPUs
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
quda::ColorSpinorField Class Referenceabstract

#include <color_spinor_field.h>

+ Inheritance diagram for quda::ColorSpinorField:

Public Types

using param_type = ColorSpinorParam
 

Public Member Functions

 ColorSpinorField (const ColorSpinorField &)
 
 ColorSpinorField (const ColorSpinorParam &)
 
virtual ~ColorSpinorField ()
 
virtual ColorSpinorFieldoperator= (const ColorSpinorField &)
 
int Ncolor () const
 
int Nspin () const
 
int Nvec () const
 
QudaTwistFlavorType TwistFlavor () const
 
int Ndim () const
 
const int * X () const
 
int X (int d) const
 
size_t RealLength () const
 
size_t Length () const
 
size_t Stride () const
 
size_t Volume () const
 
size_t VolumeCB () const
 
int Pad () const
 
size_t Bytes () const
 
size_t NormBytes () const
 
size_t TotalBytes () const
 
size_t GhostBytes () const
 
size_t GhostFaceBytes (int i) const
 
size_t GhostNormBytes () const
 
void PrintDims () const
 
void * V ()
 
const void * V () const
 
void * Norm ()
 
const void * Norm () const
 
virtual const void * Ghost2 () const
 
virtual int full_dim (int d) const
 
void exchange (void **ghost, void **sendbuf, int nFace=1) const
 
virtual 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 =0
 
bool isNative () const
 
bool IsComposite () const
 
bool IsComponent () const
 
int CompositeDim () const
 
int ComponentId () const
 
int ComponentVolume () const
 
int ComponentVolumeCB () const
 
int ComponentStride () const
 
size_t ComponentLength () const
 
size_t ComponentRealLength () const
 
size_t ComponentBytes () const
 
size_t ComponentNormBytes () const
 
QudaPCType PCType () const
 
QudaParity SuggestedParity () const
 
void setSuggestedParity (QudaParity suggested_parity)
 
QudaSiteSubset SiteSubset () const
 
QudaSiteOrder SiteOrder () const
 
QudaFieldOrder FieldOrder () const
 
QudaGammaBasis GammaBasis () const
 
const int * GhostFace () const
 
const int * GhostFaceCB () const
 
size_t GhostOffset (const int dim, const int dir) const
 
void * Ghost (const int i)
 
const void * Ghost (const int i) const
 
void * GhostNorm (const int i)
 
const void * GhostNorm (const int i) const
 
void *const * Ghost () const
 
const DslashConstantgetDslashConstant () const
 Get the dslash_constant structure from this field. More...
 
const ColorSpinorFieldEven () const
 
const ColorSpinorFieldOdd () const
 
ColorSpinorFieldEven ()
 
ColorSpinorFieldOdd ()
 
ColorSpinorFieldComponent (const int idx) const
 
ColorSpinorFieldComponent (const int idx)
 
CompositeColorSpinorFieldComponents ()
 
virtual void Source (const QudaSourceType sourceType, const int st=0, const int s=0, const int c=0)=0
 
virtual void PrintVector (unsigned int x) const =0
 
void PrintVector (unsigned int x_cb, unsigned int parity) const
 Thin wrapper around PrintVector that takes in a checkerboard index and a parity instead of a full index. More...
 
void LatticeIndex (int *y, int i) const
 
void OffsetIndex (int &i, int *y) const
 
ColorSpinorFieldCreateAlias (const ColorSpinorParam &param)
 Create a field that aliases this field's storage. The alias field can use a different precision than this field, though it cannot be greater. This functionality is useful for the case where we have multiple temporaries in different precisions, but do not need them simultaneously. Use this functionality with caution. More...
 
ColorSpinorFieldCreateCoarse (const int *geoBlockSize, int spinBlockSize, int Nvec, QudaPrecision precision=QUDA_INVALID_PRECISION, QudaFieldLocation location=QUDA_INVALID_FIELD_LOCATION, QudaMemoryType mem_Type=QUDA_MEMORY_INVALID)
 Create a coarse color-spinor field, using this field to set the meta data. More...
 
ColorSpinorFieldCreateFine (const int *geoblockSize, int spinBlockSize, int Nvec, QudaPrecision precision=QUDA_INVALID_PRECISION, QudaFieldLocation location=QUDA_INVALID_FIELD_LOCATION, QudaMemoryType mem_type=QUDA_MEMORY_INVALID)
 Create a fine color-spinor field, using this field to set the meta data. More...
 
- Public Member Functions inherited from quda::LatticeField
 LatticeField (const LatticeFieldParam &param)
 
 LatticeField (const LatticeField &field)
 
virtual ~LatticeField ()
 
void allocateGhostBuffer (size_t ghost_bytes) const
 Allocate the static ghost buffers. More...
 
void createComms (bool no_comms_fill=false, bool bidir=true)
 
void destroyComms ()
 
void createIPCComms ()
 
bool ipcCopyComplete (int dir, int dim)
 
bool ipcRemoteCopyComplete (int dir, int dim)
 
const cudaEvent_t & getIPCCopyEvent (int dir, int dim) const
 
const cudaEvent_t & getIPCRemoteCopyEvent (int dir, int dim) const
 
int Ndim () const
 
const int * X () const
 
size_t Volume () const
 
size_t VolumeCB () const
 
size_t LocalVolume () const
 
size_t LocalVolumeCB () const
 
const int * SurfaceCB () const
 
int SurfaceCB (const int i) const
 
size_t Stride () const
 
int Pad () const
 
const int * R () const
 
QudaGhostExchange GhostExchange () const
 
QudaPrecision Precision () const
 
QudaPrecision GhostPrecision () const
 
double Scale () const
 
void Scale (double scale_)
 Set the scale factor for a fixed-point field. More...
 
virtual QudaMemoryType MemType () const
 
int Nvec () const
 
QudaFieldLocation Location () const
 
size_t GBytes () const
 
void checkField (const LatticeField &a) const
 
virtual void read (char *filename)
 
virtual void write (char *filename)
 
void * myFace_h (int dir, int dim) const
 Return pointer to the local pinned my_face buffer in a given direction and dimension. More...
 
void * myFace_hd (int dir, int dim) const
 Return pointer to the local mapped my_face buffer in a given direction and dimension. More...
 
void * myFace_d (int dir, int dim) const
 Return pointer to the device send buffer in a given direction and dimension. More...
 
void * remoteFace_d (int dir, int dim) const
 Return base pointer to a remote device buffer for direct sending in a given direction and dimension. Since this is a base pointer, one still needs to take care of offsetting to the correct point for each direction/dimension. More...
 
void * remoteFace_r () const
 Return base pointer to the ghost recv buffer. Since this is a base pointer, one still needs to take care of offsetting to the correct point for each direction/dimension. More...
 
virtual void gather (int nFace, int dagger, int dir, qudaStream_t *stream_p=NULL)
 
virtual void commsStart (int nFace, int dir, int dagger=0, qudaStream_t *stream_p=NULL, bool gdr_send=false, bool gdr_recv=true)
 
virtual int commsQuery (int nFace, int dir, int dagger=0, qudaStream_t *stream_p=NULL, bool gdr_send=false, bool gdr_recv=true)
 
virtual void commsWait (int nFace, int dir, int dagger=0, qudaStream_t *stream_p=NULL, bool gdr_send=false, bool gdr_recv=true)
 
virtual void scatter (int nFace, int dagger, int dir)
 
const char * VolString () const
 
const char * AuxString () const
 
virtual void backup () const
 Backs up the LatticeField. More...
 
virtual void restore () const
 Restores the LatticeField. More...
 
virtual void prefetch (QudaFieldLocation mem_space, qudaStream_t stream=0) const
 If managed memory and prefetch is enabled, prefetch all relevant memory fields to the current device or to the CPU. More...
 
virtual void copy_to_buffer (void *buffer) const =0
 Copy all contents of the field to a host buffer. More...
 
virtual void copy_from_buffer (void *buffer)=0
 Copy all contents of the field from a host buffer to this field. More...
 
- Public Member Functions inherited from quda::Object
 Object ()
 
virtual ~Object ()
 

Static Public Member Functions

static ColorSpinorFieldCreate (const ColorSpinorParam &param)
 
static ColorSpinorFieldCreate (const ColorSpinorField &src, const ColorSpinorParam &param)
 
- Static Public Member Functions inherited from quda::LatticeField
static void freeGhostBuffer (void)
 Free statically allocated ghost buffers. More...
 
static void destroyIPCComms ()
 
- Static Public Member Functions inherited from quda::Object
static void * operator new (std::size_t size)
 
static void operator delete (void *p)
 
static void * operator new[] (std::size_t size)
 
static void operator delete[] (void *p)
 

Protected Member Functions

void createGhostZone (int nFace, bool spin_project=true) const
 
void reset (const ColorSpinorParam &)
 
void fill (ColorSpinorParam &) const
 
void setTuningString ()
 Set the vol_string and aux_string for use in tuning. More...
 
- Protected Member Functions inherited from quda::LatticeField
void precisionCheck ()
 

Static Protected Member Functions

static void checkField (const ColorSpinorField &, const ColorSpinorField &)
 

Protected Attributes

bool init
 
QudaPrecision ghost_precision_allocated
 
int nColor
 
int nSpin
 
int nVec
 
int nDim
 
int x [QUDA_MAX_DIM]
 
size_t volume
 
size_t volumeCB
 
size_t pad
 
size_t stride
 
QudaTwistFlavorType twistFlavor
 
QudaPCType pc_type
 
QudaParity suggested_parity
 
size_t real_length
 
size_t length
 
void * v
 
void * norm
 
void * v_h
 
void * norm_h
 
void * ghost [2][QUDA_MAX_DIM]
 
void * ghostNorm [2][QUDA_MAX_DIM]
 
int ghostFace [QUDA_MAX_DIM]
 
int ghostFaceCB [QUDA_MAX_DIM]
 
void * ghost_buf [2 *QUDA_MAX_DIM]
 
DslashConstant dslash_constant
 
size_t bytes
 
size_t norm_bytes
 
QudaSiteSubset siteSubset
 
QudaSiteOrder siteOrder
 
QudaFieldOrder fieldOrder
 
QudaGammaBasis gammaBasis
 
ColorSpinorFieldeven
 
ColorSpinorFieldodd
 
CompositeColorSpinorFieldDescriptor composite_descr
 used for deflation eigenvector sets etc.: More...
 
CompositeColorSpinorField components
 
- Protected Attributes inherited from quda::LatticeField
size_t volume
 
size_t volumeCB
 
size_t localVolume
 
size_t localVolumeCB
 
size_t stride
 
int pad
 
size_t total_bytes
 
int nDim
 
int x [QUDA_MAX_DIM]
 
int surface [QUDA_MAX_DIM]
 
int surfaceCB [QUDA_MAX_DIM]
 
int r [QUDA_MAX_DIM]
 
QudaPrecision precision
 
QudaPrecision ghost_precision
 
bool ghost_precision_reset
 
double scale
 
QudaSiteSubset siteSubset
 
QudaGhostExchange ghostExchange
 
int nDimComms
 
size_t ghost_bytes
 
size_t ghost_bytes_old
 
size_t ghost_face_bytes [QUDA_MAX_DIM]
 
size_t ghost_face_bytes_aligned [QUDA_MAX_DIM]
 
size_t ghost_offset [QUDA_MAX_DIM][2]
 
void * my_face_h [2]
 
void * my_face_hd [2]
 
void * my_face_d [2]
 
void * my_face_dim_dir_h [2][QUDA_MAX_DIM][2]
 
void * my_face_dim_dir_hd [2][QUDA_MAX_DIM][2]
 
void * my_face_dim_dir_d [2][QUDA_MAX_DIM][2]
 
void * from_face_h [2]
 
void * from_face_hd [2]
 
void * from_face_d [2]
 
void * from_face_dim_dir_h [2][QUDA_MAX_DIM][2]
 
void * from_face_dim_dir_hd [2][QUDA_MAX_DIM][2]
 
void * from_face_dim_dir_d [2][QUDA_MAX_DIM][2]
 
MsgHandlemh_recv_fwd [2][QUDA_MAX_DIM]
 
MsgHandlemh_recv_back [2][QUDA_MAX_DIM]
 
MsgHandlemh_send_fwd [2][QUDA_MAX_DIM]
 
MsgHandlemh_send_back [2][QUDA_MAX_DIM]
 
MsgHandlemh_recv_rdma_fwd [2][QUDA_MAX_DIM]
 
MsgHandlemh_recv_rdma_back [2][QUDA_MAX_DIM]
 
MsgHandlemh_send_rdma_fwd [2][QUDA_MAX_DIM]
 
MsgHandlemh_send_rdma_back [2][QUDA_MAX_DIM]
 
bool initComms
 
char vol_string [TuneKey::volume_n]
 
char aux_string [TuneKey::aux_n]
 
QudaMemoryType mem_type
 
char * backup_h
 
char * backup_norm_h
 
bool backed_up
 

Friends

class ColorSpinorParam
 
std::ostream & operator<< (std::ostream &out, const ColorSpinorField &)
 

Additional Inherited Members

- Static Public Attributes inherited from quda::LatticeField
static int bufferIndex = 0
 
static bool ghost_field_reset = false
 
- Static Protected Attributes inherited from quda::LatticeField
static void * ghost_send_buffer_d [2] = {nullptr, nullptr}
 
static void * ghost_recv_buffer_d [2] = {nullptr, nullptr}
 
static void * ghost_pinned_send_buffer_h [2] = {nullptr, nullptr}
 
static void * ghost_pinned_recv_buffer_h [2] = {nullptr, nullptr}
 
static void * ghost_pinned_send_buffer_hd [2] = {nullptr, nullptr}
 
static void * ghost_pinned_recv_buffer_hd [2] = {nullptr, nullptr}
 
static void * ghost_remote_send_buffer_d [2][QUDA_MAX_DIM][2]
 
static size_t ghostFaceBytes = 0
 
static bool initGhostFaceBuffer = false
 
static MsgHandlemh_send_p2p_fwd [2][QUDA_MAX_DIM] { }
 
static MsgHandlemh_send_p2p_back [2][QUDA_MAX_DIM] { }
 
static MsgHandlemh_recv_p2p_fwd [2][QUDA_MAX_DIM] { }
 
static MsgHandlemh_recv_p2p_back [2][QUDA_MAX_DIM] { }
 
static int buffer_send_p2p_fwd [2][QUDA_MAX_DIM] { }
 
static int buffer_recv_p2p_fwd [2][QUDA_MAX_DIM] { }
 
static int buffer_send_p2p_back [2][QUDA_MAX_DIM] { }
 
static int buffer_recv_p2p_back [2][QUDA_MAX_DIM] { }
 
static cudaEvent_t ipcCopyEvent [2][2][QUDA_MAX_DIM]
 
static cudaEvent_t ipcRemoteCopyEvent [2][2][QUDA_MAX_DIM]
 
static bool initIPCComms = false
 

Detailed Description

Definition at line 379 of file color_spinor_field.h.

Member Typedef Documentation

◆ param_type

Define the parameter type for this field.

Definition at line 511 of file color_spinor_field.h.

Constructor & Destructor Documentation

◆ ColorSpinorField() [1/2]

quda::ColorSpinorField::ColorSpinorField ( const ColorSpinorField field)

Definition at line 29 of file color_spinor_field.cpp.

◆ ColorSpinorField() [2/2]

quda::ColorSpinorField::ColorSpinorField ( const ColorSpinorParam param)

Definition at line 16 of file color_spinor_field.cpp.

◆ ~ColorSpinorField()

quda::ColorSpinorField::~ColorSpinorField ( )
virtual

Definition at line 40 of file color_spinor_field.cpp.

Member Function Documentation

◆ Bytes()

size_t quda::ColorSpinorField::Bytes ( ) const
inline

Definition at line 492 of file color_spinor_field.h.

◆ checkField()

void quda::ColorSpinorField::checkField ( const ColorSpinorField a,
const ColorSpinorField b 
)
staticprotected

Definition at line 548 of file color_spinor_field.cpp.

◆ Component() [1/2]

ColorSpinorField & quda::ColorSpinorField::Component ( const int  idx)

Definition at line 602 of file color_spinor_field.cpp.

◆ Component() [2/2]

ColorSpinorField & quda::ColorSpinorField::Component ( const int  idx) const

Definition at line 615 of file color_spinor_field.cpp.

◆ ComponentBytes()

size_t quda::ColorSpinorField::ComponentBytes ( ) const
inline

Definition at line 559 of file color_spinor_field.h.

◆ ComponentId()

int quda::ColorSpinorField::ComponentId ( ) const
inline

Definition at line 552 of file color_spinor_field.h.

◆ ComponentLength()

size_t quda::ColorSpinorField::ComponentLength ( ) const
inline

Definition at line 556 of file color_spinor_field.h.

◆ ComponentNormBytes()

size_t quda::ColorSpinorField::ComponentNormBytes ( ) const
inline

Definition at line 560 of file color_spinor_field.h.

◆ ComponentRealLength()

size_t quda::ColorSpinorField::ComponentRealLength ( ) const
inline

Definition at line 557 of file color_spinor_field.h.

◆ Components()

CompositeColorSpinorField& quda::ColorSpinorField::Components ( )
inline

Definition at line 606 of file color_spinor_field.h.

◆ ComponentStride()

int quda::ColorSpinorField::ComponentStride ( ) const
inline

Definition at line 555 of file color_spinor_field.h.

◆ ComponentVolume()

int quda::ColorSpinorField::ComponentVolume ( ) const
inline

Definition at line 553 of file color_spinor_field.h.

◆ ComponentVolumeCB()

int quda::ColorSpinorField::ComponentVolumeCB ( ) const
inline

Definition at line 554 of file color_spinor_field.h.

◆ CompositeDim()

int quda::ColorSpinorField::CompositeDim ( ) const
inline

Definition at line 551 of file color_spinor_field.h.

◆ Create() [1/2]

ColorSpinorField * quda::ColorSpinorField::Create ( const ColorSpinorField src,
const ColorSpinorParam param 
)
static

Definition at line 728 of file color_spinor_field.cpp.

◆ Create() [2/2]

ColorSpinorField * quda::ColorSpinorField::Create ( const ColorSpinorParam param)
static

Definition at line 714 of file color_spinor_field.cpp.

◆ CreateAlias()

ColorSpinorField * quda::ColorSpinorField::CreateAlias ( const ColorSpinorParam param)

Create a field that aliases this field's storage. The alias field can use a different precision than this field, though it cannot be greater. This functionality is useful for the case where we have multiple temporaries in different precisions, but do not need them simultaneously. Use this functionality with caution.

Parameters
[in]paramParameters for the alias field

Definition at line 742 of file color_spinor_field.cpp.

◆ CreateCoarse()

ColorSpinorField * quda::ColorSpinorField::CreateCoarse ( const int *  geoBlockSize,
int  spinBlockSize,
int  Nvec,
QudaPrecision  precision = QUDA_INVALID_PRECISION,
QudaFieldLocation  location = QUDA_INVALID_FIELD_LOCATION,
QudaMemoryType  mem_Type = QUDA_MEMORY_INVALID 
)

Create a coarse color-spinor field, using this field to set the meta data.

Parameters
[in]geoBlockSizeGeometric block size that defines the coarse grid dimensions
[in]spinlockSizeGeometric block size that defines the coarse spin dimension
[in]NvecNumber of coarse color degrees of freedom per grid point
[in]precisionOptionally set the precision of the fine field
[in]locationOptionally set the location of the coarse field
[in]mem_typeOptionally set the memory type used (e.g., can override with mapped memory)

Definition at line 776 of file color_spinor_field.cpp.

◆ CreateFine()

ColorSpinorField * quda::ColorSpinorField::CreateFine ( const int *  geoblockSize,
int  spinBlockSize,
int  Nvec,
QudaPrecision  precision = QUDA_INVALID_PRECISION,
QudaFieldLocation  location = QUDA_INVALID_FIELD_LOCATION,
QudaMemoryType  mem_type = QUDA_MEMORY_INVALID 
)

Create a fine color-spinor field, using this field to set the meta data.

Parameters
[in]geoBlockSizeGeometric block size that defines the fine grid dimensions
[in]spinlockSizeGeometric block size that defines the fine spin dimension
[in]NvecNumber of fine color degrees of freedom per grid point
[in]precisionOptionally set the precision of the fine field
[in]locationOptionally set the location of the fine field
[in]mem_typeOptionally set the memory type used (e.g., can override with mapped memory)

Definition at line 826 of file color_spinor_field.cpp.

◆ createGhostZone()

void quda::ColorSpinorField::createGhostZone ( int  nFace,
bool  spin_project = true 
) const
protected

Compute the required extended ghost zone sizes and offsets

Parameters
[in]nFaceThe depth of the halo
[in]spin_projectWhether we are spin projecting

includes DW and non-degenerate TM ghosts

Definition at line 44 of file color_spinor_field.cpp.

◆ Even() [1/2]

ColorSpinorField & quda::ColorSpinorField::Even ( )

Definition at line 586 of file color_spinor_field.cpp.

◆ Even() [2/2]

const ColorSpinorField & quda::ColorSpinorField::Even ( ) const

Definition at line 570 of file color_spinor_field.cpp.

◆ exchange()

void quda::ColorSpinorField::exchange ( void **  ghost,
void **  sendbuf,
int  nFace = 1 
) const

Do the exchange between neighbouring nodes of the data in sendbuf storing the result in recvbuf. The arrays are ordered (2*dim + dir).

Parameters
recvbufPacked buffer where we store the result
sendbufPacked buffer from which we're sending
nFaceNumber of layers we are exchanging

Definition at line 406 of file color_spinor_field.cpp.

◆ exchangeGhost()

virtual void quda::ColorSpinorField::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
pure virtual

This is a unified ghost exchange function for doing a complete halo exchange regardless of the type of field. All dimensions are exchanged and no spin projection is done in the case of Wilson fermions.

Parameters
[in]parityField parity
[in]nFaceDepth of halo exchange
[in]daggerIs this for a dagger operator (only relevant for spin projected Wilson)
[in]pack_destinationDestination of the packing buffer
[in]halo_locationDestination of the halo reading buffer
[in]gdr_sendAre we using GDR for sending
[in]gdr_recvAre we using GDR for receiving
[in]ghost_precisionThe precision used for the ghost exchange

Implemented in quda::cpuColorSpinorField, and quda::cudaColorSpinorField.

◆ FieldOrder()

QudaFieldOrder quda::ColorSpinorField::FieldOrder ( ) const
inline

Definition at line 568 of file color_spinor_field.h.

◆ fill()

void quda::ColorSpinorField::fill ( ColorSpinorParam param) const
protected

Definition at line 381 of file color_spinor_field.cpp.

◆ full_dim()

virtual int quda::ColorSpinorField::full_dim ( int  d) const
inlinevirtual
Returns
The pointer to the full lattice-dimension array

Implements quda::LatticeField.

Definition at line 506 of file color_spinor_field.h.

◆ GammaBasis()

QudaGammaBasis quda::ColorSpinorField::GammaBasis ( ) const
inline

Definition at line 569 of file color_spinor_field.h.

◆ getDslashConstant()

const DslashConstant& quda::ColorSpinorField::getDslashConstant ( ) const
inline

Get the dslash_constant structure from this field.

Definition at line 595 of file color_spinor_field.h.

◆ Ghost() [1/3]

void *const * quda::ColorSpinorField::Ghost ( ) const

Return array of pointers to the ghost zones (ordering dim*2+dir)

Definition at line 650 of file color_spinor_field.cpp.

◆ Ghost() [2/3]

void * quda::ColorSpinorField::Ghost ( const int  i)

Definition at line 629 of file color_spinor_field.cpp.

◆ Ghost() [3/3]

const void * quda::ColorSpinorField::Ghost ( const int  i) const

Definition at line 634 of file color_spinor_field.cpp.

◆ Ghost2()

virtual const void* quda::ColorSpinorField::Ghost2 ( ) const
inlinevirtual

Reimplemented in quda::cudaColorSpinorField.

Definition at line 504 of file color_spinor_field.h.

◆ GhostBytes()

size_t quda::ColorSpinorField::GhostBytes ( ) const
inline

Definition at line 495 of file color_spinor_field.h.

◆ GhostFace()

const int* quda::ColorSpinorField::GhostFace ( ) const
inline

Definition at line 571 of file color_spinor_field.h.

◆ GhostFaceBytes()

size_t quda::ColorSpinorField::GhostFaceBytes ( int  i) const
inline

Definition at line 496 of file color_spinor_field.h.

◆ GhostFaceCB()

const int* quda::ColorSpinorField::GhostFaceCB ( ) const
inline

Definition at line 572 of file color_spinor_field.h.

◆ GhostNorm() [1/2]

void * quda::ColorSpinorField::GhostNorm ( const int  i)

Definition at line 640 of file color_spinor_field.cpp.

◆ GhostNorm() [2/2]

const void * quda::ColorSpinorField::GhostNorm ( const int  i) const

Definition at line 645 of file color_spinor_field.cpp.

◆ GhostNormBytes()

size_t quda::ColorSpinorField::GhostNormBytes ( ) const
inline

Definition at line 497 of file color_spinor_field.h.

◆ GhostOffset()

size_t quda::ColorSpinorField::GhostOffset ( const int  dim,
const int  dir 
) const
inline

Return the offset in bytes to the start of the ghost zone in a given dimension and direction

Parameters
[in]dimThe dimension of the ghost
[in]dirThe direction of the ghost

Definition at line 580 of file color_spinor_field.h.

◆ IsComponent()

bool quda::ColorSpinorField::IsComponent ( ) const
inline

Definition at line 549 of file color_spinor_field.h.

◆ IsComposite()

bool quda::ColorSpinorField::IsComposite ( ) const
inline

Definition at line 548 of file color_spinor_field.h.

◆ isNative()

bool quda::ColorSpinorField::isNative ( ) const
inlinevirtual

This function returns true if the field is stored in an internal field order, given the precision and the length of the spin dimension.

Implements quda::LatticeField.

Definition at line 546 of file color_spinor_field.h.

◆ LatticeIndex()

void quda::ColorSpinorField::LatticeIndex ( int *  y,
int  i 
) const

Compute the n-dimensional site index given the 1-d offset index

Parameters
yn-dimensional site index
i1-dimensional site index

Definition at line 660 of file color_spinor_field.cpp.

◆ Length()

size_t quda::ColorSpinorField::Length ( ) const
inline

Definition at line 487 of file color_spinor_field.h.

◆ Ncolor()

int quda::ColorSpinorField::Ncolor ( ) const
inline

Definition at line 479 of file color_spinor_field.h.

◆ Ndim()

int quda::ColorSpinorField::Ndim ( ) const
inline

Definition at line 483 of file color_spinor_field.h.

◆ Norm() [1/2]

void* quda::ColorSpinorField::Norm ( )
inline

Definition at line 502 of file color_spinor_field.h.

◆ Norm() [2/2]

const void* quda::ColorSpinorField::Norm ( ) const
inline

Definition at line 503 of file color_spinor_field.h.

◆ NormBytes()

size_t quda::ColorSpinorField::NormBytes ( ) const
inline

Definition at line 493 of file color_spinor_field.h.

◆ Nspin()

int quda::ColorSpinorField::Nspin ( ) const
inline

Definition at line 480 of file color_spinor_field.h.

◆ Nvec()

int quda::ColorSpinorField::Nvec ( ) const
inline

Definition at line 481 of file color_spinor_field.h.

◆ Odd() [1/2]

ColorSpinorField & quda::ColorSpinorField::Odd ( )

Definition at line 594 of file color_spinor_field.cpp.

◆ Odd() [2/2]

const ColorSpinorField & quda::ColorSpinorField::Odd ( ) const

Definition at line 578 of file color_spinor_field.cpp.

◆ OffsetIndex()

void quda::ColorSpinorField::OffsetIndex ( int &  i,
int *  y 
) const

Compute the 1-d offset index given the n-dimensional site index

Parameters
i1-dimensional site index
yn-dimensional site index

Definition at line 689 of file color_spinor_field.cpp.

◆ operator=()

ColorSpinorField & quda::ColorSpinorField::operator= ( const ColorSpinorField src)
virtual

Reimplemented in quda::cpuColorSpinorField, and quda::cudaColorSpinorField.

Definition at line 269 of file color_spinor_field.cpp.

◆ Pad()

int quda::ColorSpinorField::Pad ( ) const
inline

Definition at line 491 of file color_spinor_field.h.

◆ PCType()

QudaPCType quda::ColorSpinorField::PCType ( ) const
inline

Definition at line 562 of file color_spinor_field.h.

◆ PrintDims()

void quda::ColorSpinorField::PrintDims ( ) const
inline

Definition at line 498 of file color_spinor_field.h.

◆ PrintVector() [1/2]

virtual void quda::ColorSpinorField::PrintVector ( unsigned int  x) const
pure virtual

◆ PrintVector() [2/2]

void quda::ColorSpinorField::PrintVector ( unsigned int  x_cb,
unsigned int  parity 
) const
inline

Thin wrapper around PrintVector that takes in a checkerboard index and a parity instead of a full index.

Parameters
[in]x_cbcheckerboard index
[in]paritysite parity

Definition at line 620 of file color_spinor_field.h.

◆ RealLength()

size_t quda::ColorSpinorField::RealLength ( ) const
inline

Definition at line 486 of file color_spinor_field.h.

◆ reset()

void quda::ColorSpinorField::reset ( const ColorSpinorParam param)
protected

for deflated solvers:

Definition at line 291 of file color_spinor_field.cpp.

◆ setSuggestedParity()

void quda::ColorSpinorField::setSuggestedParity ( QudaParity  suggested_parity)
inline

Definition at line 564 of file color_spinor_field.h.

◆ setTuningString()

void quda::ColorSpinorField::setTuningString ( )
protectedvirtual

Set the vol_string and aux_string for use in tuning.

Reimplemented from quda::LatticeField.

Definition at line 238 of file color_spinor_field.cpp.

◆ SiteOrder()

QudaSiteOrder quda::ColorSpinorField::SiteOrder ( ) const
inline

Definition at line 567 of file color_spinor_field.h.

◆ SiteSubset()

QudaSiteSubset quda::ColorSpinorField::SiteSubset ( ) const
inlinevirtual
Returns
Field subset type

Reimplemented from quda::LatticeField.

Definition at line 566 of file color_spinor_field.h.

◆ Source()

virtual void quda::ColorSpinorField::Source ( const QudaSourceType  sourceType,
const int  st = 0,
const int  s = 0,
const int  c = 0 
)
pure virtual

◆ Stride()

size_t quda::ColorSpinorField::Stride ( ) const
inline

Definition at line 488 of file color_spinor_field.h.

◆ SuggestedParity()

QudaParity quda::ColorSpinorField::SuggestedParity ( ) const
inline

Definition at line 563 of file color_spinor_field.h.

◆ TotalBytes()

size_t quda::ColorSpinorField::TotalBytes ( ) const
inline

Definition at line 494 of file color_spinor_field.h.

◆ TwistFlavor()

QudaTwistFlavorType quda::ColorSpinorField::TwistFlavor ( ) const
inline

Definition at line 482 of file color_spinor_field.h.

◆ V() [1/2]

void* quda::ColorSpinorField::V ( )
inline

Definition at line 500 of file color_spinor_field.h.

◆ V() [2/2]

const void* quda::ColorSpinorField::V ( ) const
inline

Definition at line 501 of file color_spinor_field.h.

◆ Volume()

size_t quda::ColorSpinorField::Volume ( ) const
inline

Definition at line 489 of file color_spinor_field.h.

◆ VolumeCB()

size_t quda::ColorSpinorField::VolumeCB ( ) const
inline

Definition at line 490 of file color_spinor_field.h.

◆ X() [1/2]

const int* quda::ColorSpinorField::X ( ) const
inline

Definition at line 484 of file color_spinor_field.h.

◆ X() [2/2]

int quda::ColorSpinorField::X ( int  d) const
inline

Definition at line 485 of file color_spinor_field.h.

Friends And Related Function Documentation

◆ ColorSpinorParam

friend class ColorSpinorParam
friend

Definition at line 678 of file color_spinor_field.h.

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const ColorSpinorField a 
)
friend

Definition at line 865 of file color_spinor_field.cpp.

Member Data Documentation

◆ bytes

size_t quda::ColorSpinorField::bytes
protected

Definition at line 436 of file color_spinor_field.h.

◆ components

CompositeColorSpinorField quda::ColorSpinorField::components
protected

Definition at line 451 of file color_spinor_field.h.

◆ composite_descr

CompositeColorSpinorFieldDescriptor quda::ColorSpinorField::composite_descr
protected

used for deflation eigenvector sets etc.:

Definition at line 449 of file color_spinor_field.h.

◆ dslash_constant

DslashConstant quda::ColorSpinorField::dslash_constant
mutableprotected

Definition at line 434 of file color_spinor_field.h.

◆ even

ColorSpinorField* quda::ColorSpinorField::even
protected

Definition at line 445 of file color_spinor_field.h.

◆ fieldOrder

QudaFieldOrder quda::ColorSpinorField::fieldOrder
protected

Definition at line 441 of file color_spinor_field.h.

◆ gammaBasis

QudaGammaBasis quda::ColorSpinorField::gammaBasis
protected

Definition at line 442 of file color_spinor_field.h.

◆ ghost

void* quda::ColorSpinorField::ghost[2][QUDA_MAX_DIM]
protected

Definition at line 426 of file color_spinor_field.h.

◆ ghost_buf

void* quda::ColorSpinorField::ghost_buf[2 *QUDA_MAX_DIM]
mutableprotected

Definition at line 432 of file color_spinor_field.h.

◆ ghost_precision_allocated

QudaPrecision quda::ColorSpinorField::ghost_precision_allocated
mutableprotected

Used to keep local track of allocated ghost_precision in createGhostZone

Definition at line 391 of file color_spinor_field.h.

◆ ghostFace

int quda::ColorSpinorField::ghostFace[QUDA_MAX_DIM]
mutableprotected

Definition at line 429 of file color_spinor_field.h.

◆ ghostFaceCB

int quda::ColorSpinorField::ghostFaceCB[QUDA_MAX_DIM]
mutableprotected

Definition at line 430 of file color_spinor_field.h.

◆ ghostNorm

void* quda::ColorSpinorField::ghostNorm[2][QUDA_MAX_DIM]
protected

Definition at line 427 of file color_spinor_field.h.

◆ init

bool quda::ColorSpinorField::init
protected

Definition at line 388 of file color_spinor_field.h.

◆ length

size_t quda::ColorSpinorField::length
protected

Definition at line 416 of file color_spinor_field.h.

◆ nColor

int quda::ColorSpinorField::nColor
protected

Definition at line 393 of file color_spinor_field.h.

◆ nDim

int quda::ColorSpinorField::nDim
protected

Definition at line 397 of file color_spinor_field.h.

◆ norm

void* quda::ColorSpinorField::norm
protected

Definition at line 419 of file color_spinor_field.h.

◆ norm_bytes

size_t quda::ColorSpinorField::norm_bytes
protected

Definition at line 437 of file color_spinor_field.h.

◆ norm_h

void* quda::ColorSpinorField::norm_h
protected

Definition at line 422 of file color_spinor_field.h.

◆ nSpin

int quda::ColorSpinorField::nSpin
protected

Definition at line 394 of file color_spinor_field.h.

◆ nVec

int quda::ColorSpinorField::nVec
protected

Definition at line 395 of file color_spinor_field.h.

◆ odd

ColorSpinorField* quda::ColorSpinorField::odd
protected

Definition at line 446 of file color_spinor_field.h.

◆ pad

size_t quda::ColorSpinorField::pad
protected

Definition at line 402 of file color_spinor_field.h.

◆ pc_type

QudaPCType quda::ColorSpinorField::pc_type
protected

Definition at line 407 of file color_spinor_field.h.

◆ real_length

size_t quda::ColorSpinorField::real_length
protected

Definition at line 415 of file color_spinor_field.h.

◆ siteOrder

QudaSiteOrder quda::ColorSpinorField::siteOrder
protected

Definition at line 440 of file color_spinor_field.h.

◆ siteSubset

QudaSiteSubset quda::ColorSpinorField::siteSubset
protected

Definition at line 439 of file color_spinor_field.h.

◆ stride

size_t quda::ColorSpinorField::stride
protected

Definition at line 403 of file color_spinor_field.h.

◆ suggested_parity

QudaParity quda::ColorSpinorField::suggested_parity
protected

Used to specify whether a single parity field is even/odd By construction not enforced, this is more of an optional metadata to specify, for ex, if an eigensolver is for an even or odd parity.

Definition at line 413 of file color_spinor_field.h.

◆ twistFlavor

QudaTwistFlavorType quda::ColorSpinorField::twistFlavor
protected

Definition at line 405 of file color_spinor_field.h.

◆ v

void* quda::ColorSpinorField::v
protected

Definition at line 418 of file color_spinor_field.h.

◆ v_h

void* quda::ColorSpinorField::v_h
protected

Definition at line 421 of file color_spinor_field.h.

◆ volume

size_t quda::ColorSpinorField::volume
protected

Definition at line 400 of file color_spinor_field.h.

◆ volumeCB

size_t quda::ColorSpinorField::volumeCB
protected

Definition at line 401 of file color_spinor_field.h.

◆ x

int quda::ColorSpinorField::x[QUDA_MAX_DIM]
protected

Definition at line 398 of file color_spinor_field.h.


The documentation for this class was generated from the following files: