41 XMLReader top(xml,path);
47 QDPIO::cerr <<
"Caught Exception : " << e << std::endl;
51 QDPIO::cerr <<
"Component color >= Nc. color = " << comp.
color << std::endl;
55 if( comp.
spin < 0 || comp.
spin >= Ns ) {
56 QDPIO::cerr <<
"Component spin >= Ns. spin = " << comp.
spin << std::endl;
76 XMLReader inputtop(xml, path);
87 XMLReader inputtop(xml, path);
96 read(inputtop,
"Cfg", input.
cfg);
105 QDPIO::cerr <<
"Error reading data: " << e << std::endl;
114 int main(
int argc,
char **argv)
128 read(xml_in,
"/multiPropagatorComp", input);
131 Layout::setLattSize(input.
param.nrow);
134 QDPIO::cout <<
"multiPropagatorComp" << std::endl;
137 multi1d<LatticeColorMatrix>
u(
Nd);
138 XMLReader gauge_file_xml, gauge_xml;
144 LatticePropagator quark_prop_source;
145 XMLReader source_file_xml, source_record_xml;
149 source_record_xml, quark_prop_source,
154 bool make_sourceP =
false;;
155 bool seqsourceP =
false;
158 QDPIO::cout <<
"Attempt to read source" << std::endl;
160 source_record_xml, quark_prop_source,
162 QDPIO::cout <<
"Forward propagator successfully read" << std::endl;
168 if (source_record_xml.count(
"/MakeSource") != 0)
172 read(source_record_xml,
"/MakeSource/PropSource", source_header);
175 else if (source_record_xml.count(
"/SequentialSource") != 0)
179 read(source_record_xml,
"/SequentialSource/SeqSource", seqsource_header);
187 QDPIO::cerr <<
"Error extracting source_header: " << e << std::endl;
195 QDPIO::cerr <<
"Sequential propagator not supportd under multi-mass " << std::endl;
196 QDPIO::cerr <<
"since source is not mass independent " << std::endl;
204 push(xml_out,
"collectPropcomp");
209 write(xml_out,
"Input", xml_in);
212 write(xml_out,
"Config_info", gauge_xml);
215 write(xml_out,
"Source_file_info", source_file_xml);
216 write(xml_out,
"Source_record_info", source_record_xml);
218 push(xml_out,
"Output_version");
219 write(xml_out,
"out_version", 1);
229 MesPlq(xml_out,
"Observables",
u);
238 multi1d<Double> source_corr = sumMulti(localNorm2(quark_prop_source),
241 push(xml_out,
"Source_correlator");
242 write(xml_out,
"source_corr", source_corr);
256 LatticePropagator quark_prop;
259 XMLReader record_xml;
261 for(
int m =0;
m < num_mass;
m++) {
262 for(
int spin=0; spin < Ns; spin++) {
263 for(
int color=0; color < Nc; color++) {
264 std::ostringstream filename ;
266 <<
"_c" << color <<
"_"
267 << std::setw(3) << std::setfill(
'0') <<
m;
269 QDPIO::cout <<
"Attempting to read " << filename.str() << std::endl;
273 filename.str(), QDPIO_SERIAL);
281 multi1d<Double> prop_corr = sumMulti(localNorm2(quark_prop),
284 push(xml_out,
"Prop_correlator");
285 write(xml_out,
"Number",
m);
287 write(xml_out,
"prop_corr", prop_corr);
293 XMLBufferWriter file_xml;
294 push(file_xml,
"propagator");
296 write(file_xml,
"id",
id);
301 XMLBufferWriter record_xml;
302 push(record_xml,
"Propagator");
312 write(record_xml,
"ForwardProp", out_param);
313 XMLReader xml_tmp(source_record_xml,
"/MakeSource");
314 record_xml << xml_tmp;
317 std::ostringstream outfile;
318 outfile << input.
prop.
prop_file <<
"_" << std::setw(3) << std::setfill(
'0') <<
m;
320 QDPIO::cout <<
"Attempting to write " << outfile.str() << std::endl;
Primary include file for CHROMA in application codes.
Fourier transform phase factor support.
const Set & getSet() const
The set to be used in sumMulti.
int main(int argc, char **argv)
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.
void unitarityCheck(const multi1d< LatticeColorMatrixF3 > &u)
Check the unitarity of color matrix in SU(N)
void gaugeStartup(XMLReader &gauge_file_xml, XMLReader &gauge_xml, multi1d< LatticeColorMatrix > &u, Cfg_t &cfg)
Initialize the gauge fields.
void proginfo(XMLWriter &xml)
Print out basic information about this program.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
push(xml_out,"Condensates")
void initialize(int *argc, char ***argv)
Chroma initialisation routine.
void finalize(void)
Chroma finalization routine.
void readQprop(XMLReader &file_xml, XMLReader &record_xml, LatticePropagator &quark_prop, const std::string &file, QDP_serialparallel_t serpar)
Read a Chroma propagator.
void writeQprop(XMLBufferWriter &file_xml, XMLBufferWriter &record_xml, const LatticePropagator &quark_prop, const std::string &file, QDP_volfmt_t volfmt, QDP_serialparallel_t serpar)
Write a Chroma propagator.
std::string getXMLInputFileName()
Get input file name.
void MesPlq(const multi1d< LatticeColorMatrixF3 > &u, multi2d< Double > &plane_plaq, Double &link)
void readFermion(XMLReader &file_xml, XMLReader &record_xml, LatticeFermion &fermion, const std::string &file, QDP_serialparallel_t serpar)
XMLFileWriter & getXMLOutputInstance()
Get xml output instance.
Gauge configuration structure.
Multi-propagator parameters.
multi1d< Real > MultiMasses
Propagator source construction parameters.
Sequential source parameters.