13 namespace PABDslashEnv {
35 const multi1d<Real>& coeffs_)
62 const multi1d<Real>& coeffs_)
73 if (
fbc.operator->() == 0)
75 QDPIO::cerr <<
"PABWilsonDslash: error: fbc is null" << std::endl;
80 multi1d<LatticeColorMatrix>
u =
state->getLinks();
83 for(
int mu=0;
mu <
u.size(); ++
mu)
94 QDP::Allocator::theQDPAllocator::Instance().allocate(
96 QDP::Allocator::FAST);
98 catch(std::bad_alloc ) {
102 if( got_fast ==
false ) {
105 QDP::Allocator::theQDPAllocator::Instance().allocate(
109 catch(std::bad_alloc ) {
110 QDPIO::cerr <<
"Unable to allocate memory for packed array in lwldslash_w_pab.cc line 65" << std::endl << std::flush;
116 int volume=Layout::sitesOnNode();
117 for(
int ix=0; ix < volume; ix++) {
118 for(
int mu=0;
mu < 4;
mu++) {
128 const multi1d<int>& lsize= Layout::subgridLattSize();
129 const multi1d<int>& machsize = Layout::logicalSize();
132 for(
int i = 0;
i <
Nd;
i++) {
133 wil.local_latt[
i] = lsize[
i];
135 if( machsize[
i] == 1 ) {
136 wil.local_comm[
i] = 1;
140 wil.local_comm[
i] = 0;
144 #ifdef CHROMA_USE_SLOPPY_BAGEL_DSLASH
146 wil.SloppyPrecision =
true;
151 #ifdef CHROMA_WFM_NO_END
158 #ifndef CHROMA_WFM_NO_END
170 #ifndef CHROMA_WFM_NO_END
183 QDP::Allocator::theQDPAllocator::Instance().free(
packed_gauge);
Primary include file for CHROMA library code.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
~PABWilsonDslash()
No real need for cleanup here.
PABWilsonDslash()
Empty constructor. Must use create later.
void create(Handle< FermState< T, P, Q > > state)
Creation routine.
PrimitiveSU3Matrix * packed_gauge
Handle< FermBC< T, P, Q > > fbc
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
void apply(LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, int cb) const
Apply Wilson-Dirac dslash.
Wilson Dslash linear operator.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
void transpose(multi2d< LatticeColorVector > &dist_rep, const multi2d< LatticeColorVector > &prop_rep)
Take transpose of a matrix in (explicit) spin space.
multi1d< LatticeFermion > chi(Ncb)
PColorMatrix< RComplex< REAL >, Nc > PrimitiveSU3Matrix
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
multi1d< Real > makeFermCoeffs(const AnisoParam_t &aniso)
Make fermion coefficients.
FloatingPoint< float > Float
Parameters for anisotropy.