QUDA
1.0.0
|
#include <clover_field.h>
Public Member Functions | |
cudaCloverField (const CloverFieldParam ¶m) | |
virtual | ~cudaCloverField () |
void | copy (const CloverField &src, bool inverse=true) |
Copy into this CloverField from the generic CloverField src. More... | |
void | loadCPUField (const cpuCloverField &cpu) |
void | saveCPUField (cpuCloverField &cpu) const |
![]() | |
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 () |
Private Member Functions | |
void | compute (const cudaGaugeField &gauge) |
Private Attributes | |
void * | even |
void * | odd |
void * | evenNorm |
void * | oddNorm |
void * | evenInv |
void * | oddInv |
void * | evenInvNorm |
void * | oddInvNorm |
Friends | |
class | DiracClover |
class | DiracCloverPC |
struct | FullClover |
Definition at line 168 of file clover_field.h.
quda::cudaCloverField::cudaCloverField | ( | const CloverFieldParam & | param | ) |
Definition at line 78 of file clover_field.cpp.
References quda::CloverField::bytes, checkCudaError, quda::CloverFieldParam::clover, quda::CloverField::clover, quda::CloverFieldParam::cloverInv, quda::CloverField::cloverInv, quda::CloverField::create, deviceProp, quda::CloverFieldParam::direct, errorQuda, even, evenInv, evenInvNorm, evenNorm, quda::CloverFieldParam::inverse, quda::CloverFieldParam::invNorm, quda::CloverField::invNorm, quda::is_aligned(), quda::CloverField::isNative(), memset(), quda::CloverFieldParam::mu2, quda::CloverField::mu2, quda::CloverFieldParam::norm, quda::CloverField::norm, quda::CloverField::norm_bytes, odd, oddInv, oddInvNorm, oddNorm, pool_device_malloc, quda::LatticeField::precision, QUDA_DOUBLE_PRECISION, QUDA_HALF_PRECISION, QUDA_NULL_FIELD_CREATE, QUDA_QUARTER_PRECISION, QUDA_REFERENCE_FIELD_CREATE, QUDA_SINGLE_PRECISION, quda::LatticeField::total_bytes, quda::CloverFieldParam::twisted, and quda::CloverField::twisted.
|
virtual |
Definition at line 263 of file clover_field.cpp.
References checkCudaError, quda::CloverField::clover, quda::CloverField::cloverInv, quda::CloverField::create, quda::CloverField::invNorm, pool_device_free, and QUDA_REFERENCE_FIELD_CREATE.
|
private |
Computes Fmunu given the gauge field U
Definition at line 379 of file clover_field.cpp.
References quda::computeClover(), errorQuda, quda::LatticeField::precision, quda::LatticeField::Precision(), and QUDA_CUDA_FIELD_LOCATION.
void quda::cudaCloverField::copy | ( | const CloverField & | src, |
bool | inverse = true |
||
) |
Copy into this CloverField from the generic CloverField src.
src | The clover field from which we want to copy |
inverse | Are we copying the inverse or direct field |
Definition at line 281 of file clover_field.cpp.
References quda::CloverField::bytes, quda::CloverField::Bytes(), checkCudaError, quda::LatticeField::checkField(), quda::CloverField::clover, quda::CloverField::cloverInv, quda::copyGenericClover(), errorQuda, quda::inverse(), quda::CloverField::invNorm, quda::CloverField::Norm(), quda::CloverField::norm_bytes, quda::CloverField::NormBytes(), pool_device_free, pool_device_malloc, pool_pinned_free, pool_pinned_malloc, quda::LatticeField::precision, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, QUDA_HALF_PRECISION, QUDA_QUARTER_PRECISION, qudaDeviceSynchronize, qudaMemcpy, quda::reorder_location(), and quda::CloverField::V().
Referenced by loadCloverQuda(), loadCPUField(), and loadSloppyCloverQuda().
void quda::cudaCloverField::loadCPUField | ( | const cpuCloverField & | cpu | ) |
Copy into this CloverField from the cpuCloverField cpu
cpu | The cpu clover field from which we want to copy |
Definition at line 340 of file clover_field.cpp.
References copy().
void quda::cudaCloverField::saveCPUField | ( | cpuCloverField & | cpu | ) | const |
Copy from this CloverField into cpuCloverField cpu
cpu | The cpu clover destination field |
Definition at line 342 of file clover_field.cpp.
References quda::CloverField::bytes, checkCudaError, quda::LatticeField::checkField(), quda::CloverField::clover, quda::CloverField::cloverInv, quda::copyGenericClover(), errorQuda, quda::CloverField::invNorm, quda::CloverField::norm_bytes, pool_pinned_free, pool_pinned_malloc, quda::LatticeField::precision, QUDA_CPU_FIELD_LOCATION, QUDA_HALF_PRECISION, qudaDeviceSynchronize, qudaMemcpy, and quda::CloverField::V().
Referenced by quda::CoarseOp().
|
friend |
Definition at line 238 of file clover_field.h.
|
friend |
Definition at line 239 of file clover_field.h.
|
friend |
Definition at line 240 of file clover_field.h.
|
private |
Definition at line 171 of file clover_field.h.
Referenced by cudaCloverField(), and quda::FullClover::FullClover().
|
private |
Definition at line 174 of file clover_field.h.
Referenced by cudaCloverField(), and quda::FullClover::FullClover().
|
private |
Definition at line 175 of file clover_field.h.
Referenced by cudaCloverField(), and quda::FullClover::FullClover().
|
private |
Definition at line 172 of file clover_field.h.
Referenced by cudaCloverField(), and quda::FullClover::FullClover().
|
private |
Definition at line 171 of file clover_field.h.
Referenced by cudaCloverField(), and quda::FullClover::FullClover().
|
private |
Definition at line 174 of file clover_field.h.
Referenced by cudaCloverField(), and quda::FullClover::FullClover().
|
private |
Definition at line 175 of file clover_field.h.
Referenced by cudaCloverField(), and quda::FullClover::FullClover().
|
private |
Definition at line 172 of file clover_field.h.
Referenced by cudaCloverField(), and quda::FullClover::FullClover().