|
QUDA
1.0.0
|
#include <gauge_field.h>


Public Member Functions | |
| cpuGaugeField (const GaugeFieldParam ¶m) | |
| Constructor for cpuGaugeField from a GaugeFieldParam. More... | |
| virtual | ~cpuGaugeField () |
| void | exchangeGhost (QudaLinkDirection link_direction=QUDA_LINK_BACKWARDS) |
| Exchange the ghost and store store in the padded region. More... | |
| void | injectGhost (QudaLinkDirection link_direction=QUDA_LINK_BACKWARDS) |
| The opposite of exchangeGhost: take the ghost zone on x, send to node x-1, and inject back into the field. More... | |
| void | exchangeExtendedGhost (const int *R, bool no_comms_fill=false) |
| This does routine will populate the border / halo region of a gauge field that has been created using copyExtendedGauge. More... | |
| void | exchangeExtendedGhost (const int *R, TimeProfile &profile, bool no_comms_fill=false) |
| This does routine will populate the border / halo region of a gauge field that has been created using copyExtendedGauge. Overloaded variant that will start and stop a comms profile. More... | |
| void | copy (const GaugeField &src) |
| void * | Gauge_p () |
| const void * | Gauge_p () const |
| void | setGauge (void **_gauge) |
| void | zero () |
| void | backup () const |
| Backs up the cpuGaugeField. More... | |
| void | restore () const |
| Restores the cpuGaugeField. More... | |
Public Member Functions inherited from quda::GaugeField | |
| GaugeField (const GaugeFieldParam ¶m) | |
| virtual | ~GaugeField () |
| size_t | Length () const |
| int | Ncolor () const |
| QudaReconstructType | Reconstruct () const |
| QudaGaugeFieldOrder | Order () const |
| double | Anisotropy () const |
| double | Tadpole () const |
| QudaTboundary | TBoundary () const |
| QudaLinkType | LinkType () const |
| QudaGaugeFixed | GaugeFixed () const |
| QudaGaugeFieldOrder | FieldOrder () const |
| QudaFieldGeometry | Geometry () const |
| QudaStaggeredPhase | StaggeredPhase () const |
| bool | StaggeredPhaseApplied () const |
| void | applyStaggeredPhase (QudaStaggeredPhase phase=QUDA_STAGGERED_PHASE_INVALID) |
| void | removeStaggeredPhase () |
| double | iMu () const |
| const double & | LinkMax () const |
| int | Nface () const |
| void | checkField (const LatticeField &) const |
| bool | isNative () const |
| size_t | Bytes () const |
| size_t | PhaseBytes () const |
| size_t | PhaseOffset () const |
| virtual void * | Even_p () |
| virtual void * | Odd_p () |
| virtual const void * | Even_p () const |
| virtual const void * | Odd_p () const |
| const void ** | Ghost () const |
| void ** | Ghost () |
| size_t | SiteOffset () const |
| size_t | SiteSize () const |
| double | norm1 (int dim=-1) const |
| Compute the L1 norm of the field. More... | |
| double | norm2 (int dim=-1) const |
| Compute the L2 norm squared of the field. More... | |
| double | abs_max (int dim=-1) const |
| Compute the absolute maximum of the field (Linfinity norm) More... | |
| double | abs_min (int dim=-1) const |
| Compute the absolute minimum of the field. More... | |
| uint64_t | checksum (bool mini=false) const |
Public Member Functions inherited from quda::LatticeField | |
| 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 |
Public Member Functions inherited from quda::Object | |
| Object () | |
| virtual | ~Object () |
Private Attributes | |
| void ** | gauge |
Friends | |
| void | cudaGaugeField::copy (const GaugeField &cpu) |
| void | cudaGaugeField::loadCPUField (const cpuGaugeField &cpu) |
| void | cudaGaugeField::saveCPUField (cpuGaugeField &cpu) const |
Definition at line 580 of file gauge_field.h.
| quda::cpuGaugeField::cpuGaugeField | ( | const GaugeFieldParam & | param | ) |
Constructor for cpuGaugeField from a GaugeFieldParam.
| [in,out] | param | Parameter struct - note that in the case that we are wrapping host-side extended fields, this param is modified for subsequent creation of fields that are not extended. |
Definition at line 9 of file cpu_gauge_field.cpp.
References quda::GaugeField::abs_max(), quda::GaugeField::bytes, quda::GaugeFieldParam::compute_fat_link_max, quda::GaugeField::create, errorQuda, exchangeGhost(), quda::GaugeField::fat_link_max, quda::GaugeFieldParam::gauge, gauge, quda::GaugeField::geometry, quda::GaugeField::ghost, quda::LatticeField::ghostExchange, quda::GaugeField::link_type, memset(), quda::LatticeField::nDim, quda::GaugeField::nFace, quda::GaugeField::nInternal, quda::GaugeField::order, quda::LatticeField::pad, quda::LatticeField::precision, QUDA_ASQTAD_MOM_LINKS, QUDA_BQCD_GAUGE_ORDER, QUDA_COARSE_GEOMETRY, QUDA_CPS_WILSON_GAUGE_ORDER, QUDA_GHOST_EXCHANGE_PAD, QUDA_HALF_PRECISION, QUDA_LINK_BACKWARDS, QUDA_LINK_BIDIRECTIONAL, QUDA_MILC_GAUGE_ORDER, QUDA_MILC_SITE_GAUGE_ORDER, QUDA_NULL_FIELD_CREATE, QUDA_QDP_GAUGE_ORDER, QUDA_QUARTER_PRECISION, QUDA_RECONSTRUCT_10, QUDA_RECONSTRUCT_NO, QUDA_REFERENCE_FIELD_CREATE, QUDA_SCALAR_GEOMETRY, QUDA_TENSOR_GEOMETRY, QUDA_TIFR_GAUGE_ORDER, QUDA_TIFR_PADDED_GAUGE_ORDER, QUDA_VECTOR_GEOMETRY, QUDA_ZERO_FIELD_CREATE, quda::GaugeField::reconstruct, safe_malloc, quda::GaugeField::site_size, quda::LatticeField::surface, quda::LatticeField::volume, and quda::LatticeField::x.

|
virtual |
Definition at line 102 of file cpu_gauge_field.cpp.
References quda::GaugeField::create, errorQuda, gauge, quda::GaugeField::geometry, quda::GaugeField::ghost, host_free, quda::GaugeField::link_type, quda::LatticeField::nDim, quda::GaugeField::order, QUDA_ASQTAD_MOM_LINKS, QUDA_COARSE_GEOMETRY, QUDA_NULL_FIELD_CREATE, QUDA_QDP_GAUGE_ORDER, QUDA_SCALAR_GEOMETRY, QUDA_TENSOR_GEOMETRY, QUDA_VECTOR_GEOMETRY, and QUDA_ZERO_FIELD_CREATE.
|
virtual |
Backs up the cpuGaugeField.
Reimplemented from quda::LatticeField.
Definition at line 344 of file cpu_gauge_field.cpp.
References quda::LatticeField::backed_up, quda::LatticeField::backup_h, quda::GaugeField::bytes, errorQuda, gauge, quda::GaugeField::geometry, and QUDA_QDP_GAUGE_ORDER.
|
virtual |
Generic gauge field copy
| [in] | src | Source from which we are copying |
Implements quda::GaugeField.
Definition at line 261 of file cpu_gauge_field.cpp.
References quda::GaugeField::Bytes(), checkCudaError, quda::GaugeField::checkField(), quda::copyExtendedGauge(), quda::copyGenericGauge(), quda::create_gauge_buffer(), quda::create_ghost_buffer(), errorQuda, exchangeGhost(), quda::GaugeField::fat_link_max, quda::free_gauge_buffer(), quda::free_ghost_buffer(), gauge, Gauge_p(), quda::GaugeField::geometry, quda::GaugeField::Ghost(), quda::LatticeField::ghost_bytes, quda::LatticeField::ghostExchange, quda::LatticeField::GhostExchange(), quda::GaugeField::isNative(), quda::GaugeField::link_type, quda::GaugeField::LinkMax(), quda::GaugeField::nColor, quda::GaugeField::nFace, pool_pinned_free, pool_pinned_malloc, quda::LatticeField::precision, QUDA_ASQTAD_FAT_LINKS, QUDA_COARSE_GEOMETRY, QUDA_CPU_FIELD_LOCATION, QUDA_CUDA_FIELD_LOCATION, QUDA_GHOST_EXCHANGE_EXTENDED, QUDA_GHOST_EXCHANGE_PAD, QUDA_HALF_PRECISION, QUDA_LINK_BACKWARDS, QUDA_LINK_BIDIRECTIONAL, QUDA_QDP_GAUGE_ORDER, QUDA_QUARTER_PRECISION, QUDA_RECONSTRUCT_NO, QUDA_VECTOR_GEOMETRY, qudaMemcpy, quda::GaugeField::reconstruct, quda::reorder_location(), and quda::LatticeField::surface.
Referenced by quda::DiracCoarse::initializeLazy().


|
virtual |
This does routine will populate the border / halo region of a gauge field that has been created using copyExtendedGauge.
| R | The thickness of the extended region in each dimension |
| no_comms_fill | Do local exchange to fill out the extended region in non-partitioned dimenions |
Implements quda::GaugeField.
Definition at line 188 of file cpu_gauge_field.cpp.
References quda::GaugeField::bytes, comm_declare_receive_relative, comm_declare_send_relative, comm_dim_partitioned(), comm_free(), comm_start(), comm_wait(), quda::extractExtendedGaugeGhost(), quda::GaugeField::geometry, host_free, quda::LatticeField::mh_recv_back, quda::LatticeField::mh_recv_fwd, quda::LatticeField::mh_send_back, quda::LatticeField::mh_send_fwd, quda::LatticeField::nDim, quda::GaugeField::nInternal, quda::LatticeField::precision, QUDA_MAX_DIM, safe_malloc, and quda::LatticeField::surface.
Referenced by exchangeExtendedGhost(), and hisq_force_test().


|
virtual |
This does routine will populate the border / halo region of a gauge field that has been created using copyExtendedGauge. Overloaded variant that will start and stop a comms profile.
| R | The thickness of the extended region in each dimension |
| profile | TimeProfile intance which will record the time taken |
| no_comms_fill | Do local exchange to fill out the extended region in non-partitioned dimensions |
Implements quda::GaugeField.
Definition at line 249 of file cpu_gauge_field.cpp.
References quda::GaugeField::bytes, quda::create_gauge_buffer(), quda::create_ghost_buffer(), exchangeExtendedGhost(), quda::free_gauge_buffer(), quda::free_ghost_buffer(), quda::GaugeField::geometry, quda::GaugeField::order, and quda::QUDA_PROFILE_COMMS.

|
virtual |
Exchange the ghost and store store in the padded region.
| [in] | link_direction | Which links are we extracting: this flag only applies to bi-directional coarse-link fields |
Implements quda::GaugeField.
Definition at line 136 of file cpu_gauge_field.cpp.
References errorQuda, quda::GaugeField::exchange(), quda::extractGaugeGhost(), quda::GaugeField::geometry, quda::GaugeField::ghost, host_free, quda::LatticeField::nDim, quda::GaugeField::nFace, quda::GaugeField::nInternal, quda::LatticeField::precision, QUDA_COARSE_GEOMETRY, QUDA_FORWARDS, QUDA_LINK_BACKWARDS, QUDA_LINK_BIDIRECTIONAL, QUDA_LINK_FORWARDS, QUDA_MAX_DIM, QUDA_VECTOR_GEOMETRY, safe_malloc, and quda::LatticeField::surface.
Referenced by quda::GaugeField::applyStaggeredPhase(), copy(), cpuGaugeField(), and quda::GaugeField::removeStaggeredPhase().


|
inlinevirtual |
Reimplemented from quda::GaugeField.
Definition at line 642 of file gauge_field.h.
References quda::GaugeFieldParam::gauge.
Referenced by computeHISQLinksCPU(), copy(), hisq_force_init(), hisq_force_test(), hisqCompleteForceCPU(), hisqLongLinkForceCPU(), hisqStaplesForceCPU(), quda::isUnitary(), quda::cudaGaugeField::saveCPUField(), TEST(), and quda::unitarizeLinksCPU().

|
inlinevirtual |
Reimplemented from quda::GaugeField.
Definition at line 643 of file gauge_field.h.
References quda::applyGaugePhase(), quda::ax(), quda::Checksum(), quda::copyExtendedGauge(), quda::copyGenericGauge(), quda::extractExtendedGaugeGhost(), quda::extractGaugeGhost(), quda::GaugeFieldParam::gauge, in, quda::GaugeFieldParam::location, quda::norm1(), quda::norm2(), out, R, and quda::zero().

|
virtual |
The opposite of exchangeGhost: take the ghost zone on x, send to node x-1, and inject back into the field.
| [in] | link_direction | Which links are we injecting: this flag only applies to bi-directional coarse-link fields |
Implements quda::GaugeField.
Definition at line 169 of file cpu_gauge_field.cpp.
References errorQuda, quda::GaugeField::exchange(), quda::extractGaugeGhost(), quda::GaugeField::geometry, quda::GaugeField::ghost, host_free, quda::LatticeField::nDim, quda::GaugeField::nFace, quda::GaugeField::nInternal, quda::LatticeField::precision, QUDA_BACKWARDS, QUDA_COARSE_GEOMETRY, QUDA_LINK_BACKWARDS, QUDA_MAX_DIM, QUDA_VECTOR_GEOMETRY, safe_malloc, and quda::LatticeField::surface.

|
virtual |
Restores the cpuGaugeField.
Reimplemented from quda::LatticeField.
Definition at line 362 of file cpu_gauge_field.cpp.
References quda::LatticeField::backed_up, quda::LatticeField::backup_h, errorQuda, gauge, quda::GaugeField::geometry, and QUDA_QDP_GAUGE_ORDER.
| void quda::cpuGaugeField::setGauge | ( | void ** | _gauge | ) |
Definition at line 335 of file cpu_gauge_field.cpp.
References quda::GaugeField::create, errorQuda, gauge, and QUDA_REFERENCE_FIELD_CREATE.
|
virtual |
Set all field elements to zero
Implements quda::GaugeField.
Definition at line 381 of file cpu_gauge_field.cpp.
References gauge, and memset().

|
friend |
|
friend |
|
friend |
|
private |
Definition at line 587 of file gauge_field.h.
Referenced by backup(), copy(), cpuGaugeField(), restore(), quda::cudaGaugeField::saveCPUField(), setGauge(), zero(), and ~cpuGaugeField().
1.8.13