QUDA
1.0.0
|
#include <clover_field.h>
Public Member Functions | |
CloverField (const CloverFieldParam ¶m) | |
virtual | ~CloverField () |
void * | V (bool inverse=false) |
void * | Norm (bool inverse=false) |
const void * | V (bool inverse=false) const |
const void * | Norm (bool inverse=false) const |
bool | isNative () const |
double * | TrLog () const |
QudaCloverFieldOrder | Order () const |
size_t | Bytes () const |
size_t | NormBytes () const |
int | Ncolor () const |
int | Nspin () const |
double | Csw () const |
bool | Twisted () const |
double | Mu2 () const |
double | Rho () const |
void | setRho (double rho) |
Bakes in the rho factor into the clover field, (for real diagonal additive Hasenbusch), e.g., A + rho. More... | |
double | norm1 () const |
Compute the L1 norm of the field. More... | |
double | norm2 () const |
Compute the L2 norm squared of the field. More... | |
double | abs_max () const |
Compute the absolute maximum of the field (Linfinity norm) More... | |
double | abs_min () const |
Compute the absolute minimum of the field. More... | |
![]() | |
LatticeField (const LatticeFieldParam ¶m) | |
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 |
int | Volume () const |
int | VolumeCB () const |
const int * | SurfaceCB () const |
int | SurfaceCB (const int i) const |
int | 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 QudaSiteSubset | SiteSubset () const |
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) |
virtual void | gather (int nFace, int dagger, int dir, cudaStream_t *stream_p=NULL) |
virtual void | commsStart (int nFace, int dir, int dagger=0, cudaStream_t *stream_p=NULL, bool gdr_send=false, bool gdr_recv=true) |
virtual int | commsQuery (int nFace, int dir, int dagger=0, cudaStream_t *stream_p=NULL, bool gdr_send=false, bool gdr_recv=true) |
virtual void | commsWait (int nFace, int dir, int dagger=0, cudaStream_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... | |
![]() | |
Object () | |
virtual | ~Object () |
Additional Inherited Members | |
![]() | |
static void | freeGhostBuffer (void) |
Free statically allocated ghost buffers. More... | |
static void | destroyIPCComms () |
![]() | |
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) |
![]() | |
static int | bufferIndex = 0 |
static bool | ghost_field_reset = false |
![]() | |
virtual void | setTuningString () |
void | precisionCheck () |
![]() | |
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 MsgHandle * | mh_send_p2p_fwd [2][QUDA_MAX_DIM] { } |
static MsgHandle * | mh_send_p2p_back [2][QUDA_MAX_DIM] { } |
static MsgHandle * | mh_recv_p2p_fwd [2][QUDA_MAX_DIM] { } |
static MsgHandle * | mh_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 |
Definition at line 45 of file clover_field.h.
quda::CloverField::CloverField | ( | const CloverFieldParam & | param | ) |
Definition at line 37 of file clover_field.cpp.
References ALIGNMENT_ADJUST, bytes, create, errorQuda, isNative(), length, mu2, nColor, quda::LatticeField::nDim, norm_bytes, nSpin, order, quda::LatticeField::precision, QUDA_HALF_PRECISION, QUDA_QDPJIT_CLOVER_ORDER, QUDA_QUARTER_PRECISION, QUDA_REFERENCE_FIELD_CREATE, real_length, quda::LatticeField::stride, twisted, and quda::LatticeField::volumeCB.
|
virtual |
Definition at line 61 of file clover_field.cpp.
double quda::CloverField::abs_max | ( | ) | const |
Compute the absolute maximum of the field (Linfinity norm)
Definition at line 69 of file max_clover.cu.
References quda::ABS_MAX, errorQuda, QUDA_DOUBLE_PRECISION, and QUDA_SINGLE_PRECISION.
double quda::CloverField::abs_min | ( | ) | const |
Compute the absolute minimum of the field.
Definition at line 79 of file max_clover.cu.
References quda::ABS_MIN, errorQuda, QUDA_DOUBLE_PRECISION, and QUDA_SINGLE_PRECISION.
|
inline |
Definition at line 98 of file clover_field.h.
References quda::blas::bytes.
Referenced by quda::clover::Accessor< Float, nColor, nSpin, QUDA_PACKED_CLOVER_ORDER >::Accessor(), quda::clover::BQCDOrder< Float, length >::BQCDOrder(), quda::cudaCloverField::copy(), and loadCloverQuda().
|
inline |
Definition at line 118 of file clover_field.h.
References quda::CloverFieldParam::csw.
Referenced by loadCloverQuda().
bool quda::CloverField::isNative | ( | ) | const |
Definition at line 63 of file clover_field.cpp.
References order, quda::LatticeField::precision, QUDA_DOUBLE_PRECISION, QUDA_FLOAT2_CLOVER_ORDER, QUDA_FLOAT4_CLOVER_ORDER, QUDA_HALF_PRECISION, QUDA_QUARTER_PRECISION, and QUDA_SINGLE_PRECISION.
Referenced by CloverField(), quda::CloverInvertArg< Float >::CloverInvertArg(), and quda::cudaCloverField::cudaCloverField().
|
inline |
Definition at line 128 of file clover_field.h.
References quda::CloverFieldParam::mu2.
|
inline |
Definition at line 108 of file clover_field.h.
References nColor.
Referenced by quda::_norm().
|
inline |
Definition at line 75 of file clover_field.h.
References quda::CloverFieldParam::inverse, quda::CloverFieldParam::invNorm, and quda::CloverFieldParam::norm.
Referenced by quda::cudaCloverField::copy(), and quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::FloatNOrder().
|
inline |
Definition at line 77 of file clover_field.h.
References quda::CloverFieldParam::inverse, quda::CloverFieldParam::invNorm, and quda::CloverFieldParam::norm.
double quda::CloverField::norm1 | ( | ) | const |
Compute the L1 norm of the field.
Definition at line 49 of file max_clover.cu.
References errorQuda, quda::NORM1, QUDA_DOUBLE_PRECISION, and QUDA_SINGLE_PRECISION.
double quda::CloverField::norm2 | ( | ) | const |
Compute the L2 norm squared of the field.
Definition at line 59 of file max_clover.cu.
References errorQuda, quda::NORM2, QUDA_DOUBLE_PRECISION, and QUDA_SINGLE_PRECISION.
|
inline |
Definition at line 103 of file clover_field.h.
Referenced by quda::cudaCloverField::copy().
|
inline |
Definition at line 113 of file clover_field.h.
|
inline |
Definition at line 93 of file clover_field.h.
References quda::CloverFieldParam::order.
Referenced by quda::cloverInvert(), quda::CloverInvertArg< Float >::CloverInvertArg(), quda::copyGenericClover(), quda::norm(), and quda::LatticeField::Nvec().
|
inline |
Definition at line 134 of file clover_field.h.
References quda::norm1(), quda::norm2(), and quda::CloverFieldParam::rho.
void quda::CloverField::setRho | ( | double | rho | ) |
Bakes in the rho factor into the clover field, (for real diagonal additive Hasenbusch), e.g., A + rho.
Definition at line 73 of file clover_field.cpp.
References rho.
Referenced by loadCloverQuda().
|
inline |
Definition at line 88 of file clover_field.h.
Referenced by loadCloverQuda().
|
inline |
Definition at line 123 of file clover_field.h.
References quda::CloverFieldParam::twisted.
|
inline |
Definition at line 74 of file clover_field.h.
References quda::CloverFieldParam::clover, quda::CloverFieldParam::cloverInv, and quda::CloverFieldParam::inverse.
Referenced by quda::clover::Accessor< Float, nColor, nSpin, QUDA_PACKED_CLOVER_ORDER >::Accessor(), quda::clover::BQCDOrder< Float, length >::BQCDOrder(), quda::colorSpinorParam(), quda::cudaCloverField::copy(), quda::clover::FloatNOrder< Float, length, N, add_rho, huge_alloc >::FloatNOrder(), loadCloverQuda(), loadSloppyCloverQuda(), quda::clover::QDPJITOrder< Float, length >::QDPJITOrder(), quda::clover::QDPOrder< Float, length >::QDPOrder(), and quda::cudaCloverField::saveCPUField().
|
inline |
Definition at line 76 of file clover_field.h.
References quda::CloverFieldParam::clover, quda::CloverFieldParam::cloverInv, and quda::CloverFieldParam::inverse.
|
protected |
Definition at line 48 of file clover_field.h.
Referenced by CloverField(), quda::cudaCloverField::copy(), quda::cpuCloverField::cpuCloverField(), quda::cudaCloverField::cudaCloverField(), and quda::cudaCloverField::saveCPUField().
|
protected |
|
protected |
Definition at line 57 of file clover_field.h.
Referenced by quda::cudaCloverField::copy(), quda::cpuCloverField::cpuCloverField(), quda::cudaCloverField::cudaCloverField(), quda::DiracCloverPC::DiracCloverPC(), quda::cudaCloverField::saveCPUField(), quda::cpuCloverField::~cpuCloverField(), and quda::cudaCloverField::~cudaCloverField().
|
protected |
Definition at line 66 of file clover_field.h.
Referenced by CloverField(), quda::cpuCloverField::cpuCloverField(), quda::cudaCloverField::cudaCloverField(), quda::cpuCloverField::~cpuCloverField(), and quda::cudaCloverField::~cudaCloverField().
|
protected |
Definition at line 60 of file clover_field.h.
|
protected |
|
protected |
Definition at line 50 of file clover_field.h.
Referenced by CloverField().
|
protected |
Definition at line 62 of file clover_field.h.
Referenced by CloverField(), and quda::cudaCloverField::cudaCloverField().
|
protected |
Definition at line 52 of file clover_field.h.
Referenced by CloverField().
|
protected |
Definition at line 56 of file clover_field.h.
Referenced by quda::cudaCloverField::cudaCloverField().
|
protected |
Definition at line 49 of file clover_field.h.
Referenced by CloverField(), quda::cudaCloverField::copy(), quda::cpuCloverField::cpuCloverField(), quda::cudaCloverField::cudaCloverField(), and quda::cudaCloverField::saveCPUField().
|
protected |
Definition at line 53 of file clover_field.h.
Referenced by CloverField().
|
protected |
Definition at line 65 of file clover_field.h.
Referenced by CloverField(), quda::cpuCloverField::cpuCloverField(), and isNative().
|
protected |
Definition at line 51 of file clover_field.h.
Referenced by CloverField().
|
protected |
Definition at line 63 of file clover_field.h.
Referenced by setRho().
|
mutableprotected |
Definition at line 68 of file clover_field.h.
|
protected |
Definition at line 61 of file clover_field.h.
Referenced by CloverField(), and quda::cudaCloverField::cudaCloverField().