Skip to content

Class TempLat::SU2Field

template <typename T, size_t _NDim>

ClassList > TempLat > SU2Field

A class which implements a SU2 field (group). We choose a representation with 4 real numbers per lattice site, c0, c1, c2, c3. These are subject to the unitarity constraint c0^2 + c1^2 + c2^2 + c3^2 = 1, which can be enforced by the unitarize() method. A single link variable is then represented as U = c0 * I + i * (c1 * sigma1 + c2 * sigma2 + c3 * sigma3), where sigma1, sigma2, sigma3 are the Pauli matrices. More...

  • #include <su2field.h>

Public Types

Type Name
typedef SU2Getter Getter

Public Static Attributes

Type Name
constexpr size_t NDim = \_NDim
constexpr size_t SHIFTIND = 0
constexpr size_t numberToSkipAsTuple = 0
constexpr size_t size = 4

Public Functions

Type Name
SU2Field (Field< T, NDim > f0, Field< T, NDim > f1, Field< T, NDim > f2, Field< T, NDim > f3)
SU2Field (std::string name, device::memory::host_ptr< MemoryToolBox< NDim > > toolBox, LatticeParameters< T > pLatPar=LatticeParameters< T >())
const auto & SU2Get (Tag< N > t) const
device::Idx confirmGhostsUpToDate () const
void confirmSpace (const LayoutStruct< NDim > & newLayout, const SpaceStateType & spaceType) const
void doWeNeedGhosts () const
DEVICE_INLINE_FUNCTION auto eval (const IDX &... idx) const
auto getDx () const
auto getKIR () const
auto getToolBox () const
auto & operator() (Tag< M > t)
const auto & operator() (Tag< M > t) const
void operator= (R && r)
std::string toString () const
void unitarize ()
void updateGhosts ()

Protected Attributes

Type Name
device::array< Field< T, NDim >, 4 > fs
LayoutStruct< NDim > mLayout
const device::memory::host_string mName

Detailed Description

Unit test: ctest -R test-su2field

@vocab-summary A single \(SU(2)\) link \(U\_i\) for fixed \(i\), held as four reals \(c\_0\dots c\_3\) with \(U = c\_0\mathbb{1} + i\,c\_a\sigma\_a\) and \(\sum\_a c\_a^2 = 1\). unitarize() restores the constraint after accumulated rounding. @vocab-signature SU2Field<T, NDim> U("U", toolBox);

Public Types Documentation

typedef Getter

using TempLat::SU2Field< T, _NDim >::Getter =  SU2Getter;

Public Static Attributes Documentation

variable NDim

constexpr size_t TempLat::SU2Field< T, _NDim >::NDim;

variable SHIFTIND

constexpr size_t TempLat::SU2Field< T, _NDim >::SHIFTIND;

variable numberToSkipAsTuple

constexpr size_t TempLat::SU2Field< T, _NDim >::numberToSkipAsTuple;

variable size

constexpr size_t TempLat::SU2Field< T, _NDim >::size;

Public Functions Documentation

function SU2Field [1/2]

inline TempLat::SU2Field::SU2Field (
    Field < T, NDim > f0,
    Field < T, NDim > f1,
    Field < T, NDim > f2,
    Field < T, NDim > f3
) 

function SU2Field [2/2]

inline TempLat::SU2Field::SU2Field (
    std::string name,
    device::memory::host_ptr < MemoryToolBox < NDim > > toolBox,
    LatticeParameters < T > pLatPar=LatticeParameters < T >()
) 

function SU2Get

template<int N>
inline const auto & TempLat::SU2Field::SU2Get (
    Tag < N > t
) const

function confirmGhostsUpToDate

inline device::Idx TempLat::SU2Field::confirmGhostsUpToDate () const

function confirmSpace

inline void TempLat::SU2Field::confirmSpace (
    const LayoutStruct < NDim > & newLayout,
    const SpaceStateType & spaceType
) const

function doWeNeedGhosts

inline void TempLat::SU2Field::doWeNeedGhosts () const

function eval

template<typename... IDX>
inline DEVICE_INLINE_FUNCTION auto TempLat::SU2Field::eval (
    const IDX &... idx
) const

function getDx

inline auto TempLat::SU2Field::getDx () const

function getKIR

inline auto TempLat::SU2Field::getKIR () const

function getToolBox

inline auto TempLat::SU2Field::getToolBox () const

function operator()

template<int M>
inline auto & TempLat::SU2Field::operator() (
    Tag < M > t
) 

function operator()

template<int M>
inline const auto & TempLat::SU2Field::operator() (
    Tag < M > t
) const

function operator=

template<typename R>
inline void TempLat::SU2Field::operator= (
    R && r
) 

function toString

inline std::string TempLat::SU2Field::toString () const

function unitarize

inline void TempLat::SU2Field::unitarize () 

function updateGhosts

inline void TempLat::SU2Field::updateGhosts () 

Protected Attributes Documentation

variable fs

device::array<Field<T, NDim>, 4> TempLat::SU2Field< T, _NDim >::fs;

variable mLayout

LayoutStruct<NDim> TempLat::SU2Field< T, _NDim >::mLayout;

variable mName

const device::memory::host_string TempLat::SU2Field< T, _NDim >::mName;


The documentation for this class was generated from the following file cosmolatticeweb/tmp/code_source/templat/include/TempLat/lattice/algebra/su2algebra/su2field.h