23 namespace InlineQpropMatMulEnv
57 XMLReader inputtop(xml, path);
86 XMLReader paramtop(xml_in, path);
88 if (paramtop.count(
"Frequency") == 1)
99 if (paramtop.count(
"xml_file") != 0)
106 QDPIO::cerr << __func__ <<
": Caught Exception reading XML: " << e << std::endl;
117 push(xml_out,
"FermionAction");
132 func(update_no, xml_out);
150 XMLBufferWriter gauge_xml;
156 catch( std::bad_cast )
168 const multi1d<LatticeColorMatrix>&
u =
171 push(xml_out,
"QpropMatMul");
172 write(xml_out,
"update_no", update_no);
177 XMLReader source_file_xml, source_record_xml;
180 QDPIO::cout <<
"Snarf the source from a named buffer" << std::endl;
185 LatticePropagator& source_tmp =
194 write(xml_out,
"Source_file_info", source_file_xml);
195 write(xml_out,
"Source_record_info", source_record_xml);
197 catch (std::bad_cast)
210 const LatticePropagator& quark_prop_source =
213 QDPIO::cout <<
"Source successfully read and parsed" << std::endl;
226 catch (std::bad_cast)
239 LatticePropagator& quark_propagator =
246 XMLReader fermacttop(xml_s);
254 typedef LatticeFermion
T;
255 typedef multi1d<LatticeColorMatrix>
P;
256 typedef multi1d<LatticeColorMatrix>
Q;
268 QDPIO::cout <<
"Cast to 4D fermact failed" << std::endl;
271 QDPIO::cout <<
"Creating Ferm State" << std::endl;
274 QDPIO::cout <<
"Creating Linear Operator" <<std::endl;
279 for(
int spin=0; spin < Ns; ++spin ) {
280 for(
int color=0; color < Nc; ++color ) {
281 QDPIO::cout <<
"color= " <<color <<
" spin="<<spin<<
"... ";
282 LatticeFermion src, res;
283 QDPIO::cout <<
" extracting component...";
284 PropToFerm(quark_prop_source, src, color, spin);
285 QDPIO::cout <<
" applying linop ... ";
287 QDPIO::cout <<
" storing";
289 QDPIO::cout << std::endl;
299 QDPIO::cout <<
"QpropMatMul successfully updated" << std::endl;
301 catch (std::bad_cast)
317 << snoop.getTimeInSeconds()
318 <<
" secs" << std::endl;
Inline measurement factory.
Base class for quadratic matter actions (e.g., fermions)
Class for counted reference semantics.
Inline QpropMatMul calculation.
void func(const unsigned long update_no, XMLWriter &xml_out)
Do the measurement.
void operator()(const unsigned long update_no, XMLWriter &xml_out)
Do the measurement.
InlineQpropMatMulParams params
Class structure for fermion actions.
Fermion action factories.
All Wilson-type fermion actions.
void PropToFerm(const LatticePropagatorF &b, LatticeFermionF &a, int color_index, int spin_index)
Extract a LatticeFermion from a LatticePropagator.
void FermToProp(const LatticeFermionF &a, LatticePropagatorF &b, int color_index, int spin_index)
Insert a LatticeFermion into a LatticePropagator.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams ¶m)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
GroupXML_t readXMLGroup(XMLReader &xml_in, const std::string &path, const std::string &type_name)
Read group and return as a std::string.
Inline construction of QpropMatMul.
Named object function std::map.
static bool registered
Local registration flag.
multi1d< LatticeColorMatrix > P
bool registerAll()
Register all the factories.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
LinOpSysSolverMGProtoClover::Q Q
push(xml_out,"Condensates")
LinOpSysSolverMGProtoClover::T T
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
Print out basic info about this program.
Fourier transform phase factor support.
InlineQpropMatMulParams()
struct Chroma::InlineQpropMatMulParams::NamedObject_t named_obj
void writeXML(XMLWriter &xml_out, const std::string &path)