QUDA  v1.1.0
A library for QCD on GPUs
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
quda::gauge::CPSOrder< Float, length > Struct Template Reference

#include <gauge_field_order.h>

+ Inheritance diagram for quda::gauge::CPSOrder< Float, length >:

Public Types

using Accessor = CPSOrder< Float, length >
 
using real = typename mapper< Float >::type
 
using complex = complex< real >
 
- Public Types inherited from quda::gauge::LegacyOrder< Float, length >
using Accessor = LegacyOrder< Float, length >
 
using real = typename mapper< Float >::type
 
using complex = complex< real >
 

Public Member Functions

 CPSOrder (const GaugeField &u, Float *gauge_=0, Float **ghost_=0)
 
 CPSOrder (const CPSOrder &order)
 
__device__ __host__ void load (complex v[9], int x, int dir, int parity, Float inphase=1.0) const
 
__device__ __host__ void save (const complex v[9], int x, int dir, int parity)
 
__device__ __host__ gauge_wrapper< real, Accessoroperator() (int dim, int x_cb, int parity)
 This accessor routine returns a gauge_wrapper to this object, allowing us to overload various operators for manipulating at the site level interms of matrix operations. More...
 
__device__ __host__ const gauge_wrapper< real, Accessoroperator() (int dim, int x_cb, int parity) const
 This accessor routine returns a const gauge_wrapper to this object, allowing us to overload various operators for manipulating at the site level interms of matrix operations. More...
 
size_t Bytes () const
 
- Public Member Functions inherited from quda::gauge::LegacyOrder< Float, length >
 LegacyOrder (const GaugeField &u, Float **ghost_)
 
 LegacyOrder (const LegacyOrder &order)
 
__device__ __host__ void loadGhost (complex v[length/2], int x, int dir, int parity, real phase=1.0) const
 
__device__ __host__ void saveGhost (const complex v[length/2], int x, int dir, int parity)
 
__device__ __host__ gauge_ghost_wrapper< real, AccessorGhost (int dim, int ghost_idx, int parity, real phase=1.0)
 This accessor routine returns a gauge_ghost_wrapper to this object, allowing us to overload various operators for manipulating at the site level interms of matrix operations. More...
 
__device__ __host__ const gauge_ghost_wrapper< real, AccessorGhost (int dim, int ghost_idx, int parity, real phase=1.0) const
 This accessor routine returns a const gauge_ghost_wrapper to this object, allowing us to overload various operators for manipulating at the site level interms of matrix operations. More...
 
__device__ __host__ void loadGhostEx (complex v[length/2], int x, int dummy, int dir, int dim, int g, int parity, const int R[]) const
 
__device__ __host__ void saveGhostEx (const complex v[length/2], int x, int dummy, int dir, int dim, int g, int parity, const int R[])
 

Public Attributes

Float * gauge
 
const int volumeCB
 
const real anisotropy
 
const real anisotropy_inv
 
const int geometry
 
- Public Attributes inherited from quda::gauge::LegacyOrder< Float, length >
Float * ghost [QUDA_MAX_DIM]
 
int faceVolumeCB [QUDA_MAX_DIM]
 
const int volumeCB
 
const int stride
 
const int geometry
 
const int hasPhase
 

Static Public Attributes

static constexpr int Nc = 3
 

Detailed Description

template<typename Float, int length>
struct quda::gauge::CPSOrder< Float, length >

struct to define CPS ordered gauge fields: [parity][dim][volumecb][col][row]

Definition at line 2664 of file gauge_field_order.h.

Member Typedef Documentation

◆ Accessor

template<typename Float , int length>
using quda::gauge::CPSOrder< Float, length >::Accessor = CPSOrder<Float, length>

Definition at line 2665 of file gauge_field_order.h.

◆ complex

template<typename Float , int length>
using quda::gauge::CPSOrder< Float, length >::complex = complex<real>

Definition at line 2667 of file gauge_field_order.h.

◆ real

template<typename Float , int length>
using quda::gauge::CPSOrder< Float, length >::real = typename mapper<Float>::type

Definition at line 2666 of file gauge_field_order.h.

Constructor & Destructor Documentation

◆ CPSOrder() [1/2]

template<typename Float , int length>
quda::gauge::CPSOrder< Float, length >::CPSOrder ( const GaugeField u,
Float *  gauge_ = 0,
Float **  ghost_ = 0 
)
inline

Definition at line 2674 of file gauge_field_order.h.

◆ CPSOrder() [2/2]

template<typename Float , int length>
quda::gauge::CPSOrder< Float, length >::CPSOrder ( const CPSOrder< Float, length > &  order)
inline

Definition at line 2684 of file gauge_field_order.h.

Member Function Documentation

◆ Bytes()

template<typename Float , int length>
size_t quda::gauge::CPSOrder< Float, length >::Bytes ( ) const
inline

Definition at line 2765 of file gauge_field_order.h.

◆ load()

template<typename Float , int length>
__device__ __host__ void quda::gauge::CPSOrder< Float, length >::load ( complex  v[9],
int  x,
int  dir,
int  parity,
Float  inphase = 1.0 
) const
inline

Definition at line 2696 of file gauge_field_order.h.

◆ operator()() [1/2]

template<typename Float , int length>
__device__ __host__ gauge_wrapper<real, Accessor> quda::gauge::CPSOrder< Float, length >::operator() ( int  dim,
int  x_cb,
int  parity 
)
inline

This accessor routine returns a gauge_wrapper to this object, allowing us to overload various operators for manipulating at the site level interms of matrix operations.

Parameters
[in]dirWhich dimension are we requesting
[in]x_cbCheckerboarded space-time index we are requesting
[in]parityParity we are requesting
Returns
Instance of a gauge_wrapper that curries in access to this field at the above coordinates.

Definition at line 2745 of file gauge_field_order.h.

◆ operator()() [2/2]

template<typename Float , int length>
__device__ __host__ const gauge_wrapper<real, Accessor> quda::gauge::CPSOrder< Float, length >::operator() ( int  dim,
int  x_cb,
int  parity 
) const
inline

This accessor routine returns a const gauge_wrapper to this object, allowing us to overload various operators for manipulating at the site level interms of matrix operations.

Parameters
[in]dirWhich dimension are we requesting
[in]x_cbCheckerboarded space-time index we are requesting
[in]parityParity we are requesting
Returns
Instance of a gauge_wrapper that curries in access to this field at the above coordinates.

Definition at line 2760 of file gauge_field_order.h.

◆ save()

template<typename Float , int length>
__device__ __host__ void quda::gauge::CPSOrder< Float, length >::save ( const complex  v[9],
int  x,
int  dir,
int  parity 
)
inline

Definition at line 2712 of file gauge_field_order.h.

Member Data Documentation

◆ anisotropy

template<typename Float , int length>
const real quda::gauge::CPSOrder< Float, length >::anisotropy

Definition at line 2670 of file gauge_field_order.h.

◆ anisotropy_inv

template<typename Float , int length>
const real quda::gauge::CPSOrder< Float, length >::anisotropy_inv

Definition at line 2671 of file gauge_field_order.h.

◆ gauge

template<typename Float , int length>
Float* quda::gauge::CPSOrder< Float, length >::gauge

Definition at line 2668 of file gauge_field_order.h.

◆ geometry

template<typename Float , int length>
const int quda::gauge::CPSOrder< Float, length >::geometry

Definition at line 2673 of file gauge_field_order.h.

◆ Nc

template<typename Float , int length>
constexpr int quda::gauge::CPSOrder< Float, length >::Nc = 3
staticconstexpr

Definition at line 2672 of file gauge_field_order.h.

◆ volumeCB

template<typename Float , int length>
const int quda::gauge::CPSOrder< Float, length >::volumeCB

Definition at line 2669 of file gauge_field_order.h.


The documentation for this struct was generated from the following file: