Grid 0.7.0
A2Autils< FImpl > Class Template Reference

#include <A2Autils.h>

Public Types

typedef FImpl::ComplexField ComplexField
typedef FImpl::FermionField FermionField
typedef FImpl::PropagatorField PropagatorField
typedef FImpl::SiteSpinor vobj
typedef vobj::scalar_object sobj
typedef vobj::scalar_type scalar_type
typedef vobj::vector_type vector_type
typedef iSpinMatrix< vector_typeSpinMatrix_v
typedef iSpinMatrix< scalar_typeSpinMatrix_s
typedef iSinglet< vector_typeScalar_v
typedef iSinglet< scalar_typeScalar_s
typedef iSpinColourMatrix< vector_typeSpinColourMatrix_v

Static Public Member Functions

template<typename TensorType>
static void MesonField (TensorType &mat, const FermionField *lhs_wi, const FermionField *rhs_vj, std::vector< Gamma::Algebra > gammas, const std::vector< ComplexField > &mom, int orthogdim, double *t_kernel=nullptr, double *t_gsum=nullptr)
template<typename TensorType>
static void AslashField (TensorType &mat, const FermionField *lhs_wi, const FermionField *rhs_vj, const std::vector< ComplexField > &emB0, const std::vector< ComplexField > &emB1, int orthogdim, double *t_kernel=nullptr, double *t_gsum=nullptr)
template<typename TensorType>
static std::enable_if<(std::is_same< Eigen::Tensor< ComplexD, 3 >, TensorType >::value||std::is_same< Eigen::TensorMap< Eigen::Tensor< Complex, 3, Eigen::RowMajor > >, TensorType >::value), void >::type ContractWWVV (std::vector< PropagatorField > &WWVV, const TensorType &WW_sd, const FermionField *vs, const FermionField *vd)
template<typename TensorType>
static std::enable_if<!(std::is_same< Eigen::Tensor< ComplexD, 3 >, TensorType >::value||std::is_same< Eigen::TensorMap< Eigen::Tensor< Complex, 3, Eigen::RowMajor > >, TensorType >::value), void >::type ContractWWVV (std::vector< PropagatorField > &WWVV, const TensorType &WW_sd, const FermionField *vs, const FermionField *vd)
static void ContractFourQuarkColourDiagonal (const PropagatorField &WWVV0, const PropagatorField &WWVV1, const std::vector< Gamma > &gamma0, const std::vector< Gamma > &gamma1, ComplexField &O_trtr, ComplexField &O_fig8)
static void ContractFourQuarkColourMix (const PropagatorField &WWVV0, const PropagatorField &WWVV1, const std::vector< Gamma > &gamma0, const std::vector< Gamma > &gamma1, ComplexField &O_trtr, ComplexField &O_fig8)

Static Private Member Functions

static void OuterProductWWVV (PropagatorField &WWVV, const vobj &lhs, const vobj &rhs, const int Ns, const int ss)

Detailed Description

template<typename FImpl>
class A2Autils< FImpl >

Definition at line 38 of file A2Autils.h.

Member Typedef Documentation

◆ ComplexField

template<typename FImpl>
typedef FImpl::ComplexField A2Autils< FImpl >::ComplexField

Definition at line 41 of file A2Autils.h.

◆ FermionField

template<typename FImpl>
typedef FImpl::FermionField A2Autils< FImpl >::FermionField

Definition at line 42 of file A2Autils.h.

◆ PropagatorField

template<typename FImpl>
typedef FImpl::PropagatorField A2Autils< FImpl >::PropagatorField

Definition at line 43 of file A2Autils.h.

◆ vobj

template<typename FImpl>
typedef FImpl::SiteSpinor A2Autils< FImpl >::vobj

Definition at line 45 of file A2Autils.h.

◆ sobj

template<typename FImpl>
typedef vobj::scalar_object A2Autils< FImpl >::sobj

Definition at line 46 of file A2Autils.h.

◆ scalar_type

template<typename FImpl>
typedef vobj::scalar_type A2Autils< FImpl >::scalar_type

Definition at line 47 of file A2Autils.h.

◆ vector_type

template<typename FImpl>
typedef vobj::vector_type A2Autils< FImpl >::vector_type

Definition at line 48 of file A2Autils.h.

◆ SpinMatrix_v

template<typename FImpl>
typedef iSpinMatrix<vector_type> A2Autils< FImpl >::SpinMatrix_v

Definition at line 50 of file A2Autils.h.

◆ SpinMatrix_s

template<typename FImpl>
typedef iSpinMatrix<scalar_type> A2Autils< FImpl >::SpinMatrix_s

Definition at line 51 of file A2Autils.h.

◆ Scalar_v

template<typename FImpl>
typedef iSinglet<vector_type> A2Autils< FImpl >::Scalar_v

Definition at line 52 of file A2Autils.h.

◆ Scalar_s

template<typename FImpl>
typedef iSinglet<scalar_type> A2Autils< FImpl >::Scalar_s

Definition at line 53 of file A2Autils.h.

◆ SpinColourMatrix_v

template<typename FImpl>
typedef iSpinColourMatrix<vector_type> A2Autils< FImpl >::SpinColourMatrix_v

Definition at line 55 of file A2Autils.h.

Member Function Documentation

◆ MesonField()

template<class FImpl>
template<typename TensorType>
void A2Autils< FImpl >::MesonField ( TensorType & mat,
const FermionField * lhs_wi,
const FermionField * rhs_vj,
std::vector< Gamma::Algebra > gammas,
const std::vector< ComplexField > & mom,
int orthogdim,
double * t_kernel = nullptr,
double * t_gsum = nullptr )
static

◆ AslashField()

template<class FImpl>
template<typename TensorType>
void A2Autils< FImpl >::AslashField ( TensorType & mat,
const FermionField * lhs_wi,
const FermionField * rhs_vj,
const std::vector< ComplexField > & emB0,
const std::vector< ComplexField > & emB1,
int orthogdim,
double * t_kernel = nullptr,
double * t_gsum = nullptr )
static

◆ ContractWWVV() [1/2]

template<class FImpl>
template<typename TensorType>
std::enable_if<!(std::is_same< Eigen::Tensor< ComplexD, 3 >, TensorType >::value||std::is_same< Eigen::TensorMap< Eigen::Tensor< Complex, 3, Eigen::RowMajor > >, TensorType >::value), void >::type A2Autils< FImpl >::ContractWWVV ( std::vector< PropagatorField > & WWVV,
const TensorType & WW_sd,
const FermionField * vs,
const FermionField * vd )
static

Definition at line 835 of file A2Autils.h.

References ContractWWVV(), GridBase::Nsimd(), GridBase::oSites(), and thread_for.

Referenced by ContractWWVV().

◆ ContractWWVV() [2/2]

template<typename FImpl>
template<typename TensorType>
std::enable_if<!(std::is_same< Eigen::Tensor< ComplexD, 3 >, TensorType >::value||std::is_same< Eigen::TensorMap< Eigen::Tensor< Complex, 3, Eigen::RowMajor > >, TensorType >::value), void >::type A2Autils< FImpl >::ContractWWVV ( std::vector< PropagatorField > & WWVV,
const TensorType & WW_sd,
const FermionField * vs,
const FermionField * vd )
static

References Ns.

◆ ContractFourQuarkColourDiagonal()

template<class FImpl>
void A2Autils< FImpl >::ContractFourQuarkColourDiagonal ( const PropagatorField & WWVV0,
const PropagatorField & WWVV1,
const std::vector< Gamma > & gamma0,
const std::vector< Gamma > & gamma1,
ComplexField & O_trtr,
ComplexField & O_fig8 )
static

Definition at line 952 of file A2Autils.h.

References autoView, CpuRead, CpuWrite, GridBase::oSites(), and thread_for.

◆ ContractFourQuarkColourMix()

template<class FImpl>
void A2Autils< FImpl >::ContractFourQuarkColourMix ( const PropagatorField & WWVV0,
const PropagatorField & WWVV1,
const std::vector< Gamma > & gamma0,
const std::vector< Gamma > & gamma1,
ComplexField & O_trtr,
ComplexField & O_fig8 )
static

Definition at line 996 of file A2Autils.h.

References autoView, CpuRead, CpuWrite, GridBase::oSites(), and thread_for.

◆ OuterProductWWVV()

template<class FImpl>
void A2Autils< FImpl >::OuterProductWWVV ( PropagatorField & WWVV,
const vobj & lhs,
const vobj & rhs,
const int Ns,
const int ss )
inlinestaticprivate

Definition at line 930 of file A2Autils.h.

References autoView, CpuWrite, and Ns.


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