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
Public Static Attributes Documentation
variable NDim
variable SHIFTIND
variable numberToSkipAsTuple
variable 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
function confirmGhostsUpToDate
function confirmSpace
inline void TempLat::SU2Field::confirmSpace (
const LayoutStruct < NDim > & newLayout,
const SpaceStateType & spaceType
) const
function doWeNeedGhosts
function eval
template<typename... IDX>
inline DEVICE_INLINE_FUNCTION auto TempLat::SU2Field::eval (
const IDX &... idx
) const
function getDx
function getKIR
function getToolBox
function operator()
function operator()
function operator=
function toString
function unitarize
function updateGhosts
Protected Attributes Documentation
variable fs
variable mLayout
variable mName
The documentation for this class was generated from the following file cosmolatticeweb/tmp/code_source/templat/include/TempLat/lattice/algebra/su2algebra/su2field.h