12 QDP::StandardOutputStream&
operator<<(QDP::StandardOutputStream&
s,
const multi1d<int>&
d)
17 for(
int i=1;
i <
d.size(); ++
i)
26 const LatticePropagator&
F,
27 QDPFileWriter& qio_file,
28 int& GBB_NLinkPatterns,
29 const multi1d< int > & LinkDirs)
35 for(
int i = 0;
i < Ns * Ns;
i ++ )
37 XMLBufferWriter record_xml;
38 push(record_xml,
"Vertex");
40 QDPIO::cout << __func__ <<
": LinkDirs = " << LinkDirs
41 <<
" gamma = " <<
i << std::endl;
43 write(record_xml,
"linkDirs", LinkDirs);
44 write(record_xml,
"gamma",
i);
56 LatticePropagator
tmp = B * Gamma(
i) *
F;
69 QDPIO::cout << __func__ <<
": total time = " << TotalTime.getTimeInSeconds() <<
" seconds" << std::endl;
79 const LatticePropagator&
F,
80 const multi1d< LatticeColorMatrix > &
U,
81 multi1d< int >& LinkDirs,
84 const int PreviousDir,
86 QDPFileWriter& qio_file,
87 int& GBB_NLinkPatterns)
93 const int NLinks = LinkDirs.size();
95 if( NLinks == MaxNLinks )
100 LatticePropagator F_mu;
101 multi1d< int > NextLinkDirs( NLinks + 1 );
103 for(
int Link = 0; Link < NLinks; Link ++)
105 NextLinkDirs[ Link ] = LinkDirs[ Link ];
112 if( ( PreviousDir != -1 ) || ( PreviousMu !=
mu ) )
114 bool DoThisPattern =
true;
115 bool DoFurtherPatterns =
true;
117 NextLinkDirs[ NLinks ] =
mu;
119 LinkPattern( DoThisPattern, DoFurtherPatterns, NextLinkDirs );
121 if( DoFurtherPatterns ==
true )
127 if( DoThisPattern ==
true )
129 BkwdFrwd(B, F_mu, qio_file, GBB_NLinkPatterns, NextLinkDirs);
132 if( DoFurtherPatterns ==
true )
136 NextLinkDirs, MaxNLinks, LinkPattern, 1,
mu,
137 qio_file, GBB_NLinkPatterns);
146 if( ( PreviousDir != 1 ) || ( PreviousMu !=
mu ) )
148 bool DoThisPattern =
true;
149 bool DoFurtherPatterns =
true;
151 NextLinkDirs[ NLinks ] =
mu +
Nd;
153 LinkPattern( DoThisPattern, DoFurtherPatterns, NextLinkDirs );
155 if( DoFurtherPatterns ==
true )
161 if( DoThisPattern ==
true )
163 BkwdFrwd(B, F_mu, qio_file, GBB_NLinkPatterns, NextLinkDirs);
166 if( DoFurtherPatterns ==
true )
170 NextLinkDirs, MaxNLinks, LinkPattern, -1,
mu,
171 qio_file, GBB_NLinkPatterns);
177 QDPIO::cout << __func__ <<
": total time = " << Timer.getTimeInSeconds() <<
" seconds" << std::endl;
185 const multi1d< LatticeColorMatrix > &
U,
186 const unsigned short int MaxNLinks,
188 QDPFileWriter& qio_file)
196 int GBB_NLinkPatterns;
209 QDPIO::cout << __func__ <<
": start BkwdFrwd" << std::endl;
211 const int NLinks = 0;
212 multi1d< int > LinkDirs( 0 );
214 LatticePropagator B = Gamma(15)*adj(
F)*Gamma(15);
215 BkwdFrwd(B,
F, qio_file, GBB_NLinkPatterns, LinkDirs);
219 QDPIO::cout << __func__ <<
": total time for 0 links (single BkwdFrwdTr call) = "
220 << Timer.getTimeInSeconds()
221 <<
" seconds" << std::endl;
226 QDPIO::cout << __func__ <<
": start AddLinks" << std::endl;
229 LinkDirs, MaxNLinks, LinkPattern, 0, -1,
230 qio_file, GBB_NLinkPatterns);
233 QDPIO::cout << __func__ <<
": total time for remaining links (outermost AddLinks call) = "
234 << Timer.getTimeInSeconds()
235 <<
" seconds" << std::endl;
238 QDPIO::cout << __func__ <<
": total time = "
239 << TotalTime.getTimeInSeconds()
240 <<
" seconds" << std::endl;
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void(* BBLinkPattern)(bool &DoThisPattern, bool &DoFurtherPatterns, multi1d< unsigned short int > &LinkPattern)
Used to Set Requested Link Patterns.
void NprVertex(const LatticePropagator &F, const multi1d< LatticeColorMatrix > &U, const unsigned short int MaxNLinks, const BBLinkPattern LinkPattern, QDPFileWriter &qio_file)
NPR vertices.
std::map< std::string, SinkPropContainer_t > prop
Asqtad Staggered-Dirac operator.
QDP::StandardOutputStream & operator<<(QDP::StandardOutputStream &s, const multi1d< int > &d)
push(xml_out,"Condensates")
void AddLinks(const multi1d< LatticePropagator > &B, const LatticePropagator &F, const multi1d< LatticeColorMatrix > &U, const multi1d< int > &GammaInsertions, const SftMom &Phases, const SftMom &PhasesCanonical, multi1d< unsigned short int > &LinkDirs, const unsigned short int MaxNLinks, BBLinkPattern LinkPattern, const short int PreviousDir, const short int PreviousMu, multi2d< BinaryFileWriter > &BinaryWriters, multi1d< int > &GBB_NLinkPatterns, multi2d< int > &GBB_NMomPerms, const signed short int T1, const signed short int T2, const signed short int Tsrc, const signed short int Tsnk, const bool TimeReverse, const bool ShiftFlag)
void BkwdFrwd(const LatticePropagator &B, const LatticePropagator &F, QDPFileWriter &qio_file, int &GBB_NLinkPatterns, const multi1d< int > &LinkDirs)
multi1d< LatticeFermion > s(Ncb)
FloatingPoint< double > Double
Fourier transform phase factor support.
multi1d< LatticeColorMatrix > U
static INTERNAL_PRECISION F