61 const multi1d<Real>& coeffs_)
72 if (
fbc.operator->() == 0)
74 QDPIO::cerr <<
"PABWilsonDslashArray: error: fbc is null" << std::endl;
79 multi1d<LatticeColorMatrix>
u =
state->getLinks();
82 for(
int mu=0;
mu <
u.size(); ++
mu)
93 QDP::Allocator::theQDPAllocator::Instance().allocate(
95 QDP::Allocator::FAST);
97 catch( std::bad_alloc ) {
101 if( got_fast ==
false ) {
104 QDP::Allocator::theQDPAllocator::Instance().allocate(
108 catch( std::bad_alloc ) {
109 QDPIO::cerr <<
"Could not allocate packed gauge in lwldslash_array_pab_w.cc line 67" << std::endl << std::flush;
122 int volume=Layout::sitesOnNode();
123 for(
int ix=0; ix < volume; ix++) {
124 for(
int mu=0;
mu < 4;
mu++) {
134 const multi1d<int>& lsize= Layout::subgridLattSize();
135 const multi1d<int>& machsize = Layout::logicalSize();
138 for(
int i = 0;
i <
Nd;
i++) {
139 wil.local_latt[
i] = lsize[
i];
141 if( machsize[
i] == 1 ) {
142 wil.local_comm[
i] = 1;
146 wil.local_comm[
i] = 0;
150 #ifdef CHROMA_USE_SLOPPY_BAGEL_DSLASH
152 wil.SloppyPrecision =
true;
157 #ifdef CHROMA_WFM_NO_END
166 #ifndef CHROMA_WFM_NO_END
177 #ifndef CHROMA_WFM_NO_END
192 QDP::Allocator::theQDPAllocator::Instance().free(
packed_gauge);
210 const multi1d<LatticeFermion>&
psi,
217 multi1d<Float*> chis(
N5);
218 multi1d<Float*> psis(
N5);
219 multi1d<int> cbs(
N5);
221 for(
int i=0;
i <
N5;
i++) {
Primary include file for CHROMA library code.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
const FermBC< T, P, Q > & getFermBC() const
Return the fermion BC object for this linear operator.
PrimitiveSU3Matrix * packed_gauge
~PABWilsonDslashArray()
Destroy / deal with refcounting.
void create(Handle< FermState< T, P, Q > > state, int N5_)
Creation routine.
Handle< FermBC< T, P, Q > > fbc
PABWilsonDslashArray()
Empty constructor. Must use create later.
void apply(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, int cb) const
General Wilson-Dirac dslash.
Wilson Dslash linear operator over arrays.
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.