QUDA
v1.1.0
A library for QCD on GPUs
|
#include <gauge_field_order.h>
Public Types | |
using | Float = Float_ |
using | storeFloat = storeFloat_ |
using | accessor_type = Accessor< Float, nColor, order, storeFloat > |
Public Member Functions | |
FieldOrder (GaugeField &U, void *gauge_=0, void **ghost_=0) | |
FieldOrder (const FieldOrder &o) | |
void | resetScale (double max) |
__device__ __host__ complex< Float > | operator() (int d, int parity, int x, int row, int col) const |
__device__ __host__ const auto | wrap (int d, int parity, int x) const |
This and the following method (eventually) creates a fieldorder_wrapper object whose pointer points to the start of the memory chunk corresponds to the matrix at d, parity, x. Only available for the QUDA_MILC_GAUGE_ORDER order. More... | |
__device__ __host__ auto | wrap (int d, int parity, int x) |
the non-const wrap method. More... | |
__device__ __host__ fieldorder_wrapper< Float, storeFloat > | operator() (int d, int parity, int x, int row, int col) |
__device__ __host__ complex< Float > | Ghost (int d, int parity, int x, int row, int col) const |
__device__ __host__ auto | Ghost (int d, int parity, int x) const |
__device__ __host__ fieldorder_wrapper< Float, storeFloat > | Ghost (int d, int parity, int x, int row, int col) |
__device__ __host__ const auto | wrap_ghost (int d, int parity, int x) const |
This and the following method (eventually) creates a fieldorder_wrapper object whose pointer points to the start of the memory chunk corresponds to the matrix at d, parity, x. Only available for the QUDA_MILC_GAUGE_ORDER order. More... | |
__device__ __host__ auto | wrap_ghost (int d, int parity, int x) |
the non-const wrap_ghost method. More... | |
__device__ __host__ const complex< Float > | operator() (int d, int parity, int x, int s_row, int s_col, int c_row, int c_col) const |
__device__ __host__ fieldorder_wrapper< Float, storeFloat > | operator() (int d, int parity, int x, int s_row, int s_col, int c_row, int c_col) |
__device__ __host__ const auto | wrap (int d, int parity, int x, int s_row, int s_col) const |
This and the following method (eventually) creates a fieldorder_wrapper object whose pointer points to the start of the memory chunk corresponds to the matrix at d, parity, x, s_row, s_col. Only available for the QUDA_MILC_GAUGE_ORDER order. More... | |
__device__ __host__ auto | wrap (int d, int parity, int x, int s_row, int s_col) |
the non-const wrap method. More... | |
__device__ __host__ complex< Float > | Ghost (int d, int parity, int x, int s_row, int s_col, int c_row, int c_col) const |
__device__ __host__ fieldorder_wrapper< Float, storeFloat > | Ghost (int d, int parity, int x, int s_row, int s_col, int c_row, int c_col) |
__device__ __host__ const auto | wrap_ghost (int d, int parity, int x, int s_row, int s_col) const |
This and the following method (eventually) creates a fieldorder_wrapper object whose pointer points to the start of the memory chunk corresponds to the matrix at d, parity, x, s_row, s_col. Only available for the QUDA_MILC_GAUGE_ORDER order. More... | |
__device__ __host__ auto | wrap_ghost (int d, int parity, int x, int s_row, int s_col) |
the non-const wrap_ghost method. More... | |
template<typename theirFloat > | |
__device__ __host__ void | atomicAdd (int d, int parity, int x, int s_row, int s_col, int c_row, int c_col, const complex< theirFloat > &val) |
__device__ __host__ int | Ncolor () const |
__device__ __host__ int | Volume () const |
__device__ __host__ int | VolumeCB () const |
__device__ __host__ int | Ndim () const |
__device__ __host__ int | Geometry () const |
__device__ __host__ int | NspinCoarse () const |
__device__ __host__ int | NcolorCoarse () const |
__host__ double | norm1 (int dim=-1, bool global=true) const |
Returns the L1 norm of the field in a given dimension. More... | |
__host__ double | norm2 (int dim=-1, bool global=true) const |
Returns the L2 norm squared of the field in a given dimension. More... | |
__host__ double | abs_max (int dim=-1, bool global=true) const |
Returns the Linfinity norm of the field in a given dimension. More... | |
__host__ double | abs_min (int dim=-1, bool global=true) const |
Returns the minimum absolute value of the field. More... | |
size_t | Bytes () const |
Static Public Member Functions | |
static constexpr bool | fixedPoint () |
Public Attributes | |
const int | volumeCB |
const int | nDim |
const int_fastdiv | geometry |
const QudaFieldLocation | location |
accessor_type | accessor |
GhostAccessor< Float, nColor, order, native_ghost, storeFloat > | ghostAccessor |
Static Public Attributes | |
static constexpr int | nColorCoarse = nColor / nSpinCoarse |
static constexpr bool | is_mma_compatible = accessor_type::is_mma_compatible |
static constexpr bool | supports_ghost_zone = true |
This is a template driven generic gauge field accessor. To deploy for a specifc field ordering, the two operator() accessors have to be specialized for that ordering.
Float_ | Underlying type returned by the accessors |
nColor | Number of colors for the field |
nSpinCoarse | Number of "spin degrees of freedom" (for coarse-link fields only) |
order | Storage order of the field |
native_ghost | Whether to use native ghosts (inlined into |
storeFloat_ | Underlying storage type for the field the padded area for internal-order fields or use a separate array if false) |
Definition at line 921 of file gauge_field_order.h.
using quda::gauge::FieldOrder< Float_, nColor, nSpinCoarse, order, native_ghost, storeFloat_ >::accessor_type = Accessor<Float, nColor, order, storeFloat> |
Definition at line 934 of file gauge_field_order.h.
using quda::gauge::FieldOrder< Float_, nColor, nSpinCoarse, order, native_ghost, storeFloat_ >::Float = Float_ |
Convenient types
Definition at line 924 of file gauge_field_order.h.
using quda::gauge::FieldOrder< Float_, nColor, nSpinCoarse, order, native_ghost, storeFloat_ >::storeFloat = storeFloat_ |
Definition at line 925 of file gauge_field_order.h.
|
inline |
Constructor for the FieldOrder class
field | The field that we are accessing |
Definition at line 946 of file gauge_field_order.h.
|
inline |
Definition at line 955 of file gauge_field_order.h.
|
inline |
Returns the Linfinity norm of the field in a given dimension.
[in] | dim | Which dimension we are taking the norm of (dim=-1 mean all dimensions) |
Definition at line 1224 of file gauge_field_order.h.
|
inline |
Returns the minimum absolute value of the field.
[in] | dim | Which dimension we are taking the norm of (dim=-1 mean all dimensions) |
Definition at line 1236 of file gauge_field_order.h.
|
inline |
Definition at line 1169 of file gauge_field_order.h.
|
inline |
Return the size of the allocation (geometry and parity left out and added as needed in Tunable::bytes)
Definition at line 1244 of file gauge_field_order.h.
|
inlinestaticconstexpr |
Definition at line 965 of file gauge_field_order.h.
|
inline |
Returns the field geometry
Definition at line 1187 of file gauge_field_order.h.
|
inline |
Definition at line 1025 of file gauge_field_order.h.
|
inline |
Writable complex-member accessor function for the ghost zone
d | dimension index |
parity | Parity index |
x | 1-d site index |
row | row index |
c | column index |
Definition at line 1035 of file gauge_field_order.h.
|
inline |
Read-only complex-member accessor function for the ghost zone
d | dimension index |
parity | Parity index |
x | 1-d site index |
row | row index |
c | column index |
Definition at line 1020 of file gauge_field_order.h.
|
inline |
Specialized read-only complex-member accessor function (for coarse gauge field ghost zone)
d | dimension index |
parity | Parity index |
x | 1-d site index |
s_row | row spin index |
c_row | row color index |
s_col | col spin index |
c_col | col color index |
Definition at line 1140 of file gauge_field_order.h.
|
inline |
Specialized read-only complex-member accessor function (for coarse gauge field ghost zone)
d | dimension index |
parity | Parity index |
x | 1-d site index |
s_row | row spin index |
c_row | row color index |
s_col | col spin index |
c_col | col color index |
Definition at line 1124 of file gauge_field_order.h.
|
inline |
Returns the number of field colors
Definition at line 1175 of file gauge_field_order.h.
|
inline |
Returns the number of coarse gauge field colors
Definition at line 1193 of file gauge_field_order.h.
|
inline |
Returns the field geometric dimension
Definition at line 1184 of file gauge_field_order.h.
|
inline |
Returns the L1 norm of the field in a given dimension.
[in] | dim | Which dimension we are taking the norm of (dim=-1 mean all dimensions) |
Definition at line 1200 of file gauge_field_order.h.
|
inline |
Returns the L2 norm squared of the field in a given dimension.
[in] | dim | Which dimension we are taking the norm of (dim=-1 mean all dimensions) |
Definition at line 1212 of file gauge_field_order.h.
|
inline |
Returns the number of coarse gauge field spins
Definition at line 1190 of file gauge_field_order.h.
|
inline |
Writable complex-member accessor function
d | dimension index |
parity | Parity index |
x | 1-d site index |
row | row index |
c | column index |
Definition at line 1007 of file gauge_field_order.h.
|
inline |
Read-only complex-member accessor function
d | dimension index |
parity | Parity index |
x | 1-d site index |
row | row index |
c | column index |
Definition at line 975 of file gauge_field_order.h.
|
inline |
Specialized read-only complex-member accessor function (for coarse gauge field)
d | dimension index |
parity | Parity index |
x | 1-d site index |
s_row | row spin index |
c_row | row color index |
s_col | col spin index |
c_col | col color index |
Definition at line 1085 of file gauge_field_order.h.
|
inline |
Specialized read-only complex-member accessor function (for coarse gauge field)
d | dimension index |
parity | Parity index |
x | 1-d site index |
s_row | row spin index |
c_row | row color index |
s_col | col spin index |
c_col | col color index |
Definition at line 1069 of file gauge_field_order.h.
|
inline |
Definition at line 960 of file gauge_field_order.h.
|
inline |
Returns the field volume
Definition at line 1178 of file gauge_field_order.h.
|
inline |
Returns the field volume
Definition at line 1181 of file gauge_field_order.h.
|
inline |
the non-const wrap
method.
Definition at line 997 of file gauge_field_order.h.
|
inline |
This and the following method (eventually) creates a fieldorder_wrapper object whose pointer points to the start of the memory chunk corresponds to the matrix at d, parity, x. Only available for the QUDA_MILC_GAUGE_ORDER order.
d | dimension index |
parity | Parity index |
x | 1-d site index |
Definition at line 989 of file gauge_field_order.h.
|
inline |
the non-const wrap
method.
Definition at line 1109 of file gauge_field_order.h.
|
inline |
This and the following method (eventually) creates a fieldorder_wrapper object whose pointer points to the start of the memory chunk corresponds to the matrix at d, parity, x, s_row, s_col. Only available for the QUDA_MILC_GAUGE_ORDER order.
d | dimension index |
parity | Parity index |
x | 1-d site index |
s_row | row spin index |
s_col | col spin index |
Definition at line 1101 of file gauge_field_order.h.
|
inline |
the non-const wrap_ghost
method.
Definition at line 1057 of file gauge_field_order.h.
|
inline |
This and the following method (eventually) creates a fieldorder_wrapper object whose pointer points to the start of the memory chunk corresponds to the matrix at d, parity, x. Only available for the QUDA_MILC_GAUGE_ORDER order.
d | dimension index |
parity | Parity index |
x | 1-d site index |
Definition at line 1049 of file gauge_field_order.h.
|
inline |
the non-const wrap_ghost
method.
Definition at line 1163 of file gauge_field_order.h.
|
inline |
This and the following method (eventually) creates a fieldorder_wrapper object whose pointer points to the start of the memory chunk corresponds to the matrix at d, parity, x, s_row, s_col. Only available for the QUDA_MILC_GAUGE_ORDER order.
d | dimension index |
parity | Parity index |
x | 1-d site index |
s_row | row spin index |
s_col | col spin index |
Definition at line 1155 of file gauge_field_order.h.
accessor_type quda::gauge::FieldOrder< Float_, nColor, nSpinCoarse, order, native_ghost, storeFloat_ >::accessor |
Definition at line 936 of file gauge_field_order.h.
const int_fastdiv quda::gauge::FieldOrder< Float_, nColor, nSpinCoarse, order, native_ghost, storeFloat_ >::geometry |
Definition at line 930 of file gauge_field_order.h.
GhostAccessor<Float, nColor, order, native_ghost, storeFloat> quda::gauge::FieldOrder< Float_, nColor, nSpinCoarse, order, native_ghost, storeFloat_ >::ghostAccessor |
Definition at line 937 of file gauge_field_order.h.
|
staticconstexpr |
Definition at line 935 of file gauge_field_order.h.
const QudaFieldLocation quda::gauge::FieldOrder< Float_, nColor, nSpinCoarse, order, native_ghost, storeFloat_ >::location |
Definition at line 931 of file gauge_field_order.h.
|
staticconstexpr |
Definition at line 932 of file gauge_field_order.h.
const int quda::gauge::FieldOrder< Float_, nColor, nSpinCoarse, order, native_ghost, storeFloat_ >::nDim |
Definition at line 929 of file gauge_field_order.h.
|
staticconstexpr |
Does this field type support ghost zones?
Definition at line 940 of file gauge_field_order.h.
const int quda::gauge::FieldOrder< Float_, nColor, nSpinCoarse, order, native_ghost, storeFloat_ >::volumeCB |
An internal reference to the actual field we are accessing
Definition at line 928 of file gauge_field_order.h.