QUDA  v1.1.0
A library for QCD on GPUs
Classes | Functions | Variables
quda::gauge Namespace Reference

Classes

struct  fieldorder_wrapper
 fieldorder_wrapper is an internal class that is used to wrap instances of FieldOrder accessors, currying in the specific location on the field. This is used as a helper class for fixed-point accessors providing the necessary conversion and scaling when writing to a fixed-point field. More...
 
struct  square_
 
struct  square_< ReduceType, int8_t >
 
struct  square_< ReduceType, short >
 
struct  square_< ReduceType, int >
 
struct  abs_
 
struct  abs_< Float, int8_t >
 
struct  abs_< Float, short >
 
struct  abs_< Float, int >
 
struct  Accessor
 
struct  GhostAccessor
 
struct  Accessor< Float, nColor, QUDA_QDP_GAUGE_ORDER, storeFloat >
 
struct  GhostAccessor< Float, nColor, QUDA_QDP_GAUGE_ORDER, native_ghost, storeFloat >
 
struct  Accessor< Float, nColor, QUDA_MILC_GAUGE_ORDER, storeFloat >
 
struct  GhostAccessor< Float, nColor, QUDA_MILC_GAUGE_ORDER, native_ghost, storeFloat >
 
struct  Accessor< Float, nColor, QUDA_FLOAT2_GAUGE_ORDER, storeFloat >
 
struct  GhostAccessor< Float, nColor, QUDA_FLOAT2_GAUGE_ORDER, native_ghost, storeFloat >
 
struct  FieldOrder
 
struct  Reconstruct
 Generic reconstruction helper with no reconstruction. More...
 
struct  Reconstruct< 12, Float, ghostExchange_ >
 Gauge reconstruct 12 helper where we reconstruct the third row from the cross product of the first two rows. More...
 
struct  Reconstruct< 11, Float, ghostExchange_ >
 Gauge reconstruct helper for Momentum field with 10 packed elements (really 9 from the Lie algebra, with zero for last element). We label this as 11 to avoid collisions with simple load/store of momentum field where we do not seek to unpack/pack. More...
 
struct  Reconstruct< 13, Float, ghostExchange_, stag_phase >
 Gauge reconstruct 13 helper where we reconstruct the third row from the cross product of the first two rows, and include a non-trivial phase factor. More...
 
struct  Reconstruct< 8, Float, ghostExchange_ >
 Gauge reconstruct 8 helper where we reconstruct the gauge matrix from 8 packed elements (maximal compression) More...
 
struct  Reconstruct< 9, Float, ghostExchange_, stag_phase >
 Gauge reconstruct 9 helper where we reconstruct the gauge matrix from 8 packed elements (maximal compression) and include a non-trivial phase factor. More...
 
struct  FloatNOrder
 
struct  S
 This is just a dummy structure we use for trove to define the required structure size. More...
 
struct  LegacyOrder
 The LegacyOrder defines the ghost zone storage and ordering for all cpuGaugeFields, which use the same ghost zone storage. More...
 
struct  QDPOrder
 
struct  QDPJITOrder
 
struct  MILCOrder
 
struct  MILCSiteOrder
 struct to define gauge fields packed into an opaque MILC site struct: More...
 
struct  CPSOrder
 
struct  BQCDOrder
 struct to define BQCD ordered gauge fields: More...
 
struct  TIFROrder
 struct to define TIFR ordered gauge fields: [mu][parity][volumecb][col][row] More...
 
struct  TIFRPaddedOrder
 

Functions

bool isNative (QudaGaugeFieldOrder order, QudaPrecision precision, QudaReconstructType reconstruct)
 
template<typename Float , typename storeFloat >
__host__ constexpr __device__ bool fixed_point ()
 
template<>
__host__ constexpr __device__ bool fixed_point< float, int8_t > ()
 
template<>
__host__ constexpr __device__ bool fixed_point< float, short > ()
 
template<>
__host__ constexpr __device__ bool fixed_point< float, int > ()
 
template<typename Float , typename storeFloat >
__host__ constexpr __device__ bool match ()
 
template<>
__host__ constexpr __device__ bool match< int, int > ()
 
template<>
__host__ constexpr __device__ bool match< short, short > ()
 
template<typename Float , typename storeFloat >
__device__ __host__ complex< Float > operator* (const Float &a, const fieldorder_wrapper< Float, storeFloat > &b)
 
template<typename Float , typename storeFloat >
__device__ __host__ complex< Float > operator+ (const fieldorder_wrapper< Float, storeFloat > &a, const complex< Float > &b)
 
template<typename Float , typename storeFloat >
__device__ __host__ complex< Float > operator+ (const complex< Float > &a, const fieldorder_wrapper< Float, storeFloat > &b)
 
template<int nColor, int N>
__device__ __host__ int indexFloatN (int dim, int parity, int x_cb, int row, int col, int stride, int offset_cb)
 
template<QudaGhostExchange ghostExchange_, typename T , typename I >
__device__ __host__ T timeBoundary (int idx, const I X[QUDA_MAX_DIM], const int R[QUDA_MAX_DIM], T tBoundary, T scale, int firstTimeSliceBound, int lastTimeSliceBound, bool isFirstTimeSlice, bool isLastTimeSlice, QudaGhostExchange ghostExchange=QUDA_GHOST_EXCHANGE_NO)
 timeBoundary Compute boundary condition correction More...
 
template<typename Float , typename I >
__device__ __host__ Float milcStaggeredPhase (int dim, const int x[], const I R[])
 
__host__ constexpr __device__ int ct_sqrt (int n, int i=1)
 
__host__ constexpr __device__ int Ncolor (int length)
 Return the number of colors of the accessor based on the length of the field. More...
 
template<QudaStaggeredPhase phase>
__host__ __device__ bool static_phase ()
 

Variables

constexpr bool default_huge_alloc = true
 

Function Documentation

◆ ct_sqrt()

__host__ constexpr __device__ int quda::gauge::ct_sqrt ( int  n,
int  i = 1 
)
constexpr

Definition at line 1817 of file gauge_field_order.h.

◆ fixed_point()

template<typename Float , typename storeFloat >
__host__ constexpr __device__ bool quda::gauge::fixed_point ( )
inlineconstexpr

Definition at line 218 of file gauge_field_order.h.

◆ fixed_point< float, int >()

template<>
__host__ constexpr __device__ bool quda::gauge::fixed_point< float, int > ( )
inlineconstexpr

Definition at line 221 of file gauge_field_order.h.

◆ fixed_point< float, int8_t >()

template<>
__host__ constexpr __device__ bool quda::gauge::fixed_point< float, int8_t > ( )
inlineconstexpr

Definition at line 219 of file gauge_field_order.h.

◆ fixed_point< float, short >()

template<>
__host__ constexpr __device__ bool quda::gauge::fixed_point< float, short > ( )
inlineconstexpr

Definition at line 220 of file gauge_field_order.h.

◆ indexFloatN()

template<int nColor, int N>
__device__ __host__ int quda::gauge::indexFloatN ( int  dim,
int  parity,
int  x_cb,
int  row,
int  col,
int  stride,
int  offset_cb 
)
inline

Definition at line 728 of file gauge_field_order.h.

◆ isNative()

bool quda::gauge::isNative ( QudaGaugeFieldOrder  order,
QudaPrecision  precision,
QudaReconstructType  reconstruct 
)
inline

Definition at line 15 of file gauge_field.h.

◆ match()

template<typename Float , typename storeFloat >
__host__ constexpr __device__ bool quda::gauge::match ( )
inlineconstexpr

Definition at line 223 of file gauge_field_order.h.

◆ match< int, int >()

template<>
__host__ constexpr __device__ bool quda::gauge::match< int, int > ( )
inlineconstexpr

Definition at line 224 of file gauge_field_order.h.

◆ match< short, short >()

template<>
__host__ constexpr __device__ bool quda::gauge::match< short, short > ( )
inlineconstexpr

Definition at line 225 of file gauge_field_order.h.

◆ milcStaggeredPhase()

template<typename Float , typename I >
__device__ __host__ Float quda::gauge::milcStaggeredPhase ( int  dim,
const int  x[],
const I  R[] 
)
inline

Definition at line 1348 of file gauge_field_order.h.

◆ Ncolor()

__host__ constexpr __device__ int quda::gauge::Ncolor ( int  length)
constexpr

Return the number of colors of the accessor based on the length of the field.

Parameters
[in]lengthNumber of real numbers per link
Returns
Number of colors (=sqrt(length/2))

Definition at line 1827 of file gauge_field_order.h.

◆ operator*()

template<typename Float , typename storeFloat >
__device__ __host__ complex<Float> quda::gauge::operator* ( const Float &  a,
const fieldorder_wrapper< Float, storeFloat > &  b 
)
inline

Definition at line 344 of file gauge_field_order.h.

◆ operator+() [1/2]

template<typename Float , typename storeFloat >
__device__ __host__ complex<Float> quda::gauge::operator+ ( const complex< Float > &  a,
const fieldorder_wrapper< Float, storeFloat > &  b 
)
inline

Definition at line 357 of file gauge_field_order.h.

◆ operator+() [2/2]

template<typename Float , typename storeFloat >
__device__ __host__ complex<Float> quda::gauge::operator+ ( const fieldorder_wrapper< Float, storeFloat > &  a,
const complex< Float > &  b 
)
inline

Definition at line 351 of file gauge_field_order.h.

◆ static_phase()

template<QudaStaggeredPhase phase>
__host__ __device__ bool quda::gauge::static_phase ( )
inline

Definition at line 1832 of file gauge_field_order.h.

◆ timeBoundary()

template<QudaGhostExchange ghostExchange_, typename T , typename I >
__device__ __host__ T quda::gauge::timeBoundary ( int  idx,
const I  X[QUDA_MAX_DIM],
const int  R[QUDA_MAX_DIM],
tBoundary,
scale,
int  firstTimeSliceBound,
int  lastTimeSliceBound,
bool  isFirstTimeSlice,
bool  isLastTimeSlice,
QudaGhostExchange  ghostExchange = QUDA_GHOST_EXCHANGE_NO 
)
inline

timeBoundary Compute boundary condition correction

Template Parameters
ghostExhange_Optional template the ghostExchange type to avoid the run-time overhead
Parameters
idxextended field linear index
Xthe gauge field dimensions
Rthe radii dimenions of the extended region
tBoundarythe boundary condition
isFirstTimeSliceif we're on the first time slice of nodes
isLastTimeSlideif we're on the last time slice of nodes
ghostExchangeif the field is extended or not (determines indexing type)

Definition at line 1315 of file gauge_field_order.h.

Variable Documentation

◆ default_huge_alloc

constexpr bool quda::gauge::default_huge_alloc = true
constexpr

Definition at line 1830 of file gauge_field_order.h.