23 namespace InlineHeavyLightContEnv
57 XMLReader paramtop(xml, path);
60 read(paramtop,
"version", version);
68 QDPIO::cerr <<
"Input parameter version " << version <<
" unsupported." << std::endl;
84 write(xml,
"version", version);
88 write(xml,
"nrow", Layout::lattSize());
97 XMLReader inputtop(xml, path);
101 if (inputtop.count(
"third_id") == 1)
106 if (inputtop.count(
"heavy_id1") == 1)
110 if (inputtop.count(
"heavy_id2") == 1)
134 XMLReader inputtop(xml, path);
162 XMLReader paramtop(xml_in, path);
164 if (paramtop.count(
"Frequency") == 1)
176 if (paramtop.count(
"xml_file") != 0)
183 QDPIO::cerr << __func__ <<
": Caught Exception reading XML: " << e << std::endl;
205 struct SinkPropContainer_t
221 struct AllSinkProps_t
233 void readSinkProp(SinkPropContainer_t&
s,
const std::string&
id)
238 const LatticePropagator& foo =
242 s.quark_propagator_id = id;
245 XMLReader prop_file_xml, prop_record_xml;
253 read(prop_record_xml,
"/SinkSmear",
s.prop_header);
255 read(prop_record_xml,
"/SinkSmear/PropSource/Source/SourceType",
s.source_type);
256 xpath =
"/SinkSmear/PropSource/Source/Displacement/DisplacementType";
257 if (prop_record_xml.count(xpath) != 0)
258 read(prop_record_xml, xpath,
s.source_disp_type);
262 read(prop_record_xml,
"/SinkSmear/PropSink/Sink/SinkType",
s.sink_type);
263 xpath =
"/SinkSmear/PropSink/Sink/Displacement/DisplacementType";
264 if (prop_record_xml.count(xpath) != 0)
265 read(prop_record_xml, xpath,
s.sink_disp_type);
270 catch( std::bad_cast )
287 QDPIO::cout <<
"Try action and mass" << std::endl;
288 s.Mass =
getMass(
s.prop_header.prop_header.fermact);
291 QDPIO::cout <<
"FermAct = " <<
s.prop_header.prop_header.fermact.id << std::endl;
292 QDPIO::cout <<
"Mass = " <<
s.Mass << std::endl;
297 void readAllSinks(AllSinkProps_t&
s,
298 InlineHeavyLightContParams::NamedObject_t::Props_t sink_pair,
299 InlineHeavyLightContParams::Param_t
params)
301 QDPIO::cout <<
"Attempt to parse forward propagator = " << sink_pair.first_id << std::endl;
302 readSinkProp(
s.sink_prop_1, sink_pair.first_id);
303 QDPIO::cout <<
"Forward propagator successfully parsed" << std::endl;
305 QDPIO::cout <<
"Attempt to parse forward propagator = " << sink_pair.second_id << std::endl;
306 readSinkProp(
s.sink_prop_2, sink_pair.second_id);
307 QDPIO::cout <<
"Forward propagator successfully parsed" << std::endl;
309 if (sink_pair.third_id !=
"None"){
310 QDPIO::cout <<
"Attempt to parse forward propagator = " << sink_pair.third_id << std::endl;
311 readSinkProp(
s.sink_prop_3, sink_pair.third_id);
312 QDPIO::cout <<
"Forward propagator successfully parsed" << std::endl;
315 QDPIO::cout <<
"Using "<<sink_pair.second_id <<
" as dummy spectator." << std::endl;
316 readSinkProp(
s.sink_prop_3, sink_pair.second_id);
317 QDPIO::cout <<
"Forward propagator successfully parsed" << std::endl;
319 if (sink_pair.heavy_id1 !=
"Static"){
320 QDPIO::cout <<
"Attempt to parse forward propagator = " << sink_pair.heavy_id1 << std::endl;
321 readSinkProp(
s.heavy_prop_1, sink_pair.heavy_id1);
322 QDPIO::cout <<
"Forward propagator successfully parsed" << std::endl;
324 if (sink_pair.heavy_id2 !=
"Static"){
325 QDPIO::cout <<
"Attempt to parse forward propagator = " << sink_pair.heavy_id2 << std::endl;
326 readSinkProp(
s.heavy_prop_2, sink_pair.heavy_id2);
327 QDPIO::cout <<
"Forward propagator successfully parsed" << std::endl;
344 push(xml_out,
"HeavyLightCont");
345 write(xml_out,
"update_no", update_no);
346 write(xml_out,
"xml_file", xml_file);
349 XMLFileWriter xml(xml_file);
350 func(update_no, xml);
354 func(update_no, xml_out);
370 XMLBufferWriter gauge_xml;
376 catch( std::bad_cast )
388 const multi1d<LatticeColorMatrix>&
u =
391 push(xml_out,
"HeavyLightCont");
392 write(xml_out,
"update_no", update_no);
394 QDPIO::cout <<
" HeavyLightCont: Contractions for Wilson-like fermions" ;
395 QDPIO::cout << std::endl;
396 QDPIO::cout << std::endl <<
" Gauge group: SU(" << Nc <<
")" << std::endl;
397 QDPIO::cout <<
" volume: " << Layout::lattSize()[0];
398 for (
int i=1;
i<
Nd; ++
i) {
399 QDPIO::cout <<
" x " << Layout::lattSize()[
i];
401 QDPIO::cout << std::endl;
409 write(xml_out,
"Config_info", gauge_xml);
411 push(xml_out,
"Output_version");
412 write(xml_out,
"out_version", 14);
416 MesPlq(xml_out,
"Observables",
u);
419 push(xml_out,
"Wilson_hadron_measurements");
431 push(xml_out,
"elem");
433 AllSinkProps_t all_sinks;
434 readAllSinks(all_sinks, named_obj, param);
438 = all_sinks.sink_prop_1.prop_header.source_header.getTSrce();
440 = all_sinks.sink_prop_2.prop_header.source_header.getTSrce();
443 = all_sinks.sink_prop_3.prop_header.source_header.getTSrce();
445 int j_decay = all_sinks.sink_prop_1.prop_header.source_header.j_decay;
446 int t01 = all_sinks.sink_prop_1.prop_header.source_header.t_source;
447 int t02 = all_sinks.sink_prop_2.prop_header.source_header.t_source;
452 if (all_sinks.sink_prop_2.prop_header.source_header.j_decay !=
j_decay)
454 QDPIO::cerr <<
"Error!! j_decay must be the same for all propagators " << std::endl;
515 write(xml_out,
"Mass_1", all_sinks.sink_prop_1.Mass);
516 write(xml_out,
"Mass_2", all_sinks.sink_prop_2.Mass);
518 write(xml_out,
"Mass_3", all_sinks.sink_prop_3.Mass);
519 write(xml_out,
"t01", t01);
520 write(xml_out,
"t02", t02);
526 push(xml_out,
"Forward_prop_headers");
527 write(xml_out,
"First_forward_prop", all_sinks.sink_prop_1.prop_header);
528 write(xml_out,
"Second_forward_prop", all_sinks.sink_prop_2.prop_header);
530 write(xml_out,
"Third_forward_prop", all_sinks.sink_prop_3.prop_header);
535 push(xml_out,
"Forward_prop_correlator");
552 push(xml_out,
"SourceSinkType");
554 QDPIO::cout <<
"Source_type_1 = " << all_sinks.sink_prop_1.source_type << std::endl;
555 QDPIO::cout <<
"Sink_type_1 = " << all_sinks.sink_prop_1.sink_type << std::endl;
556 QDPIO::cout <<
"Source_type_2 = " << all_sinks.sink_prop_2.source_type << std::endl;
557 QDPIO::cout <<
"Sink_type_2 = " << all_sinks.sink_prop_2.sink_type << std::endl;
559 QDPIO::cout <<
"Source_type_3 = " << all_sinks.sink_prop_3.source_type << std::endl;
560 QDPIO::cout <<
"Sink_type_3 = " << all_sinks.sink_prop_3.sink_type << std::endl;
562 write(xml_out,
"source_type_1", all_sinks.sink_prop_1.source_type);
563 write(xml_out,
"source_disp_type_1", all_sinks.sink_prop_1.source_disp_type);
564 write(xml_out,
"sink_type_1", all_sinks.sink_prop_1.sink_type);
565 write(xml_out,
"sink_disp_type_1", all_sinks.sink_prop_1.sink_disp_type);
567 write(xml_out,
"source_type_2", all_sinks.sink_prop_2.source_type);
568 write(xml_out,
"source_disp_type_2", all_sinks.sink_prop_2.source_disp_type);
569 write(xml_out,
"sink_type_2", all_sinks.sink_prop_2.sink_type);
570 write(xml_out,
"sink_disp_type_2", all_sinks.sink_prop_2.sink_disp_type);
572 write(xml_out,
"source_type_3", all_sinks.sink_prop_3.source_type);
573 write(xml_out,
"source_disp_type_3", all_sinks.sink_prop_3.source_disp_type);
574 write(xml_out,
"sink_type_3", all_sinks.sink_prop_3.sink_type);
575 write(xml_out,
"sink_disp_type_3", all_sinks.sink_prop_3.sink_disp_type);
591 if (all_sinks.sink_prop_1.source_type ==
"POINT_SOURCE")
593 else if (all_sinks.sink_prop_1.source_type ==
"SHELL_SOURCE")
595 else if (all_sinks.sink_prop_1.source_type ==
"WALL_SOURCE")
599 QDPIO::cerr <<
"Unsupported source type = " << all_sinks.sink_prop_1.source_type << std::endl;
604 if (all_sinks.sink_prop_1.sink_type ==
"POINT_SINK")
606 else if (all_sinks.sink_prop_1.sink_type ==
"SHELL_SINK")
608 else if (all_sinks.sink_prop_1.sink_type ==
"WALL_SINK")
612 QDPIO::cerr <<
"Unsupported sink type = " << all_sinks.sink_prop_1.sink_type << std::endl;
616 std::string source_sink_type = src_type +
"_" + snk_type;
617 QDPIO::cout <<
"Source type = " << src_type << std::endl;
618 QDPIO::cout <<
"Sink type = " << snk_type << std::endl;
622 Qlbar(
u,
sink_prop_1, t_src1, phases, xml_out, source_sink_type+
"_Wilson_Qlmeson1",HQBC);
623 if(all_sinks.sink_prop_1.quark_propagator_id!=all_sinks.sink_prop_2.quark_propagator_id)
624 Qlbar(
u,
sink_prop_2, t_src2, phases, xml_out, source_sink_type+
"_Wilson_Qlmeson2",HQBC);
625 if (
params.
param.
FourPt && all_sinks.sink_prop_3.quark_propagator_id!=all_sinks.sink_prop_2.quark_propagator_id && all_sinks.sink_prop_1.quark_propagator_id!=all_sinks.sink_prop_3.quark_propagator_id)
626 Qlbar(
u,
sink_prop_3, t_src3, phases, xml_out, source_sink_type +
"_Wilson_Qlmeson3",HQBC);
630 if(all_sinks.sink_prop_1.quark_propagator_id!=all_sinks.sink_prop_2.quark_propagator_id)
632 if (
params.
param.
FourPt && all_sinks.sink_prop_3.quark_propagator_id!=all_sinks.sink_prop_2.quark_propagator_id && all_sinks.sink_prop_1.quark_propagator_id!=all_sinks.sink_prop_3.quark_propagator_id)
633 QlbarBACK(
u,
sink_prop_3, t_src3, phases, xml_out, source_sink_type +
"_Wilson_Ql_back_meson3",HQBC);
647 write(xml_out,
"Mass_1", all_sinks.sink_prop_1.Mass);
648 write(xml_out,
"Mass_2", all_sinks.sink_prop_2.Mass);
650 write(xml_out,
"Mass_3", all_sinks.sink_prop_3.Mass);
651 write(xml_out,
"t01", t01);
652 write(xml_out,
"t02", t02);
658 push(xml_out,
"Forward_prop_headers");
659 write(xml_out,
"First_forward_prop", all_sinks.sink_prop_1.prop_header);
660 write(xml_out,
"Second_forward_prop", all_sinks.sink_prop_2.prop_header);
662 write(xml_out,
"Third_forward_prop", all_sinks.sink_prop_3.prop_header);
667 push(xml_out,
"Forward_prop_correlator");
688 push(xml_out,
"SourceSinkType");
690 QDPIO::cout <<
"Source_type_1 = " << all_sinks.sink_prop_1.source_type << std::endl;
691 QDPIO::cout <<
"Sink_type_1 = " << all_sinks.sink_prop_1.sink_type << std::endl;
692 QDPIO::cout <<
"Source_type_2 = " << all_sinks.sink_prop_2.source_type << std::endl;
693 QDPIO::cout <<
"Sink_type_2 = " << all_sinks.sink_prop_2.sink_type << std::endl;
695 QDPIO::cout <<
"Source_type_3 = " << all_sinks.sink_prop_3.source_type << std::endl;
696 QDPIO::cout <<
"Sink_type_3 = " << all_sinks.sink_prop_3.sink_type << std::endl;
698 write(xml_out,
"source_type_1", all_sinks.sink_prop_1.source_type);
699 write(xml_out,
"source_disp_type_1", all_sinks.sink_prop_1.source_disp_type);
700 write(xml_out,
"sink_type_1", all_sinks.sink_prop_1.sink_type);
701 write(xml_out,
"sink_disp_type_1", all_sinks.sink_prop_1.sink_disp_type);
703 write(xml_out,
"source_type_2", all_sinks.sink_prop_2.source_type);
704 write(xml_out,
"source_disp_type_2", all_sinks.sink_prop_2.source_disp_type);
705 write(xml_out,
"sink_type_2", all_sinks.sink_prop_2.sink_type);
706 write(xml_out,
"sink_disp_type_2", all_sinks.sink_prop_2.sink_disp_type);
708 write(xml_out,
"source_type_3", all_sinks.sink_prop_3.source_type);
709 write(xml_out,
"source_disp_type_3", all_sinks.sink_prop_3.source_disp_type);
710 write(xml_out,
"sink_type_3", all_sinks.sink_prop_3.sink_type);
711 write(xml_out,
"sink_disp_type_3", all_sinks.sink_prop_3.sink_disp_type);
713 write(xml_out,
"source_type_h2", all_sinks.heavy_prop_2.source_type);
714 write(xml_out,
"source_disp_type_h2", all_sinks.heavy_prop_2.source_disp_type);
715 write(xml_out,
"sink_type_h2", all_sinks.heavy_prop_2.sink_type);
716 write(xml_out,
"sink_disp_type_h2", all_sinks.heavy_prop_2.sink_disp_type);
733 if (all_sinks.sink_prop_1.source_type ==
"POINT_SOURCE")
735 else if (all_sinks.sink_prop_1.source_type ==
"SHELL_SOURCE")
737 else if (all_sinks.sink_prop_1.source_type ==
"WALL_SOURCE")
741 QDPIO::cerr <<
"Unsupported source type = " << all_sinks.sink_prop_1.source_type << std::endl;
746 if (all_sinks.sink_prop_1.sink_type ==
"POINT_SINK")
748 else if (all_sinks.sink_prop_1.sink_type ==
"SHELL_SINK")
750 else if (all_sinks.sink_prop_1.sink_type ==
"WALL_SINK")
754 QDPIO::cerr <<
"Unsupported sink type = " << all_sinks.sink_prop_1.sink_type << std::endl;
758 std::string source_sink_type = src_type +
"_" + snk_type;
759 QDPIO::cout <<
"Source type = " << src_type << std::endl;
760 QDPIO::cout <<
"Sink type = " << snk_type << std::endl;
764 Qlbar(
u,
sink_prop_1, t_src1, phases, xml_out, source_sink_type +
"_Wilson_Qlmeson1");
765 if(all_sinks.sink_prop_1.quark_propagator_id!=all_sinks.sink_prop_2.quark_propagator_id)
766 Qlbar(
u,
sink_prop_2, t_src2, phases, xml_out, source_sink_type +
"_Wilson_Qlmeson2");
767 if (
params.
param.
FourPt && all_sinks.sink_prop_3.quark_propagator_id!=all_sinks.sink_prop_2.quark_propagator_id && all_sinks.sink_prop_1.quark_propagator_id!=all_sinks.sink_prop_3.quark_propagator_id)
768 Qlbar(
u,
sink_prop_3, t_src3, phases, xml_out, source_sink_type +
"_Wilson_Qlmeson3");
773 QlQl(
u,
sink_prop_1,
sink_prop_2,
heavy_prop_2, t_src1, t_src2, t_src2, HQBC, phases, xml_out, source_sink_type +
"Wilson_Ql_Ql_3pt");
780 write(xml_out,
"Mass_1", all_sinks.sink_prop_1.Mass);
781 write(xml_out,
"Mass_2", all_sinks.sink_prop_2.Mass);
783 write(xml_out,
"Mass_3", all_sinks.sink_prop_3.Mass);
784 write(xml_out,
"t01", t01);
785 write(xml_out,
"t02", t02);
791 push(xml_out,
"Forward_prop_headers");
792 write(xml_out,
"First_forward_prop", all_sinks.sink_prop_1.prop_header);
793 write(xml_out,
"Second_forward_prop", all_sinks.sink_prop_2.prop_header);
795 write(xml_out,
"Third_forward_prop", all_sinks.sink_prop_3.prop_header);
800 push(xml_out,
"Forward_prop_correlator");
820 push(xml_out,
"SourceSinkType");
822 QDPIO::cout <<
"Source_type_1 = " << all_sinks.sink_prop_1.source_type << std::endl;
823 QDPIO::cout <<
"Sink_type_1 = " << all_sinks.sink_prop_1.sink_type << std::endl;
824 QDPIO::cout <<
"Source_type_2 = " << all_sinks.sink_prop_2.source_type << std::endl;
825 QDPIO::cout <<
"Sink_type_2 = " << all_sinks.sink_prop_2.sink_type << std::endl;
827 QDPIO::cout <<
"Source_type_3 = " << all_sinks.sink_prop_3.source_type << std::endl;
828 QDPIO::cout <<
"Sink_type_3 = " << all_sinks.sink_prop_3.sink_type << std::endl;
830 write(xml_out,
"source_type_1", all_sinks.sink_prop_1.source_type);
831 write(xml_out,
"source_disp_type_1", all_sinks.sink_prop_1.source_disp_type);
832 write(xml_out,
"sink_type_1", all_sinks.sink_prop_1.sink_type);
833 write(xml_out,
"sink_disp_type_1", all_sinks.sink_prop_1.sink_disp_type);
835 write(xml_out,
"source_type_2", all_sinks.sink_prop_2.source_type);
836 write(xml_out,
"source_disp_type_2", all_sinks.sink_prop_2.source_disp_type);
837 write(xml_out,
"sink_type_2", all_sinks.sink_prop_2.sink_type);
838 write(xml_out,
"sink_disp_type_2", all_sinks.sink_prop_2.sink_disp_type);
840 write(xml_out,
"source_type_3", all_sinks.sink_prop_3.source_type);
841 write(xml_out,
"source_disp_type_3", all_sinks.sink_prop_3.source_disp_type);
842 write(xml_out,
"sink_type_3", all_sinks.sink_prop_3.sink_type);
843 write(xml_out,
"sink_disp_type_3", all_sinks.sink_prop_3.sink_disp_type);
845 write(xml_out,
"source_type_h1", all_sinks.heavy_prop_1.source_type);
846 write(xml_out,
"source_disp_type_h1", all_sinks.heavy_prop_1.source_disp_type);
847 write(xml_out,
"sink_type_h1", all_sinks.heavy_prop_1.sink_type);
848 write(xml_out,
"sink_disp_type_h1", all_sinks.heavy_prop_1.sink_disp_type);
865 if (all_sinks.sink_prop_1.source_type ==
"POINT_SOURCE")
867 else if (all_sinks.sink_prop_1.source_type ==
"SHELL_SOURCE")
869 else if (all_sinks.sink_prop_1.source_type ==
"WALL_SOURCE")
873 QDPIO::cerr <<
"Unsupported source type = " << all_sinks.sink_prop_1.source_type << std::endl;
878 if (all_sinks.sink_prop_1.sink_type ==
"POINT_SINK")
880 else if (all_sinks.sink_prop_1.sink_type ==
"SHELL_SINK")
882 else if (all_sinks.sink_prop_1.sink_type ==
"WALL_SINK")
886 QDPIO::cerr <<
"Unsupported sink type = " << all_sinks.sink_prop_1.sink_type << std::endl;
890 std::string source_sink_type = src_type +
"_" + snk_type;
891 QDPIO::cout <<
"Source type = " << src_type << std::endl;
892 QDPIO::cout <<
"Sink type = " << snk_type << std::endl;
896 Qlbar(
u,
sink_prop_1, t_src1, phases, xml_out, source_sink_type +
"_Wilson_Qlmeson1");
897 if(all_sinks.sink_prop_1.quark_propagator_id!=all_sinks.sink_prop_2.quark_propagator_id)
898 Qlbar(
u,
sink_prop_2, t_src2, phases, xml_out, source_sink_type +
"_Wilson_Qlmeson2");
899 if (
params.
param.
FourPt && all_sinks.sink_prop_3.quark_propagator_id!=all_sinks.sink_prop_2.quark_propagator_id && all_sinks.sink_prop_1.quark_propagator_id!=all_sinks.sink_prop_3.quark_propagator_id)
900 Qlbar(
u,
sink_prop_3, t_src3, phases, xml_out, source_sink_type +
"_Wilson_Qlmeson3");
905 QlQl(
u,
sink_prop_1,
sink_prop_2,
heavy_prop_1, t_src1, t_src2, t_src1, HQBC, phases, xml_out, source_sink_type +
"Wilson_Ql_Ql_3pt");
912 write(xml_out,
"Mass_1", all_sinks.sink_prop_1.Mass);
913 write(xml_out,
"Mass_2", all_sinks.sink_prop_2.Mass);
915 write(xml_out,
"Mass_3", all_sinks.sink_prop_3.Mass);
916 write(xml_out,
"t01", t01);
917 write(xml_out,
"t02", t02);
923 push(xml_out,
"Forward_prop_headers");
924 write(xml_out,
"First_forward_prop", all_sinks.sink_prop_1.prop_header);
925 write(xml_out,
"Second_forward_prop", all_sinks.sink_prop_2.prop_header);
927 write(xml_out,
"Third_forward_prop", all_sinks.sink_prop_3.prop_header);
932 push(xml_out,
"Forward_prop_correlator");
957 push(xml_out,
"SourceSinkType");
959 QDPIO::cout <<
"Source_type_1 = " << all_sinks.sink_prop_1.source_type << std::endl;
960 QDPIO::cout <<
"Sink_type_1 = " << all_sinks.sink_prop_1.sink_type << std::endl;
961 QDPIO::cout <<
"Source_type_2 = " << all_sinks.sink_prop_2.source_type << std::endl;
962 QDPIO::cout <<
"Sink_type_2 = " << all_sinks.sink_prop_2.sink_type << std::endl;
964 QDPIO::cout <<
"Source_type_3 = " << all_sinks.sink_prop_3.source_type << std::endl;
965 QDPIO::cout <<
"Sink_type_3 = " << all_sinks.sink_prop_3.sink_type << std::endl;
967 write(xml_out,
"source_type_1", all_sinks.sink_prop_1.source_type);
968 write(xml_out,
"source_disp_type_1", all_sinks.sink_prop_1.source_disp_type);
969 write(xml_out,
"sink_type_1", all_sinks.sink_prop_1.sink_type);
970 write(xml_out,
"sink_disp_type_1", all_sinks.sink_prop_1.sink_disp_type);
972 write(xml_out,
"source_type_2", all_sinks.sink_prop_2.source_type);
973 write(xml_out,
"source_disp_type_2", all_sinks.sink_prop_2.source_disp_type);
974 write(xml_out,
"sink_type_2", all_sinks.sink_prop_2.sink_type);
975 write(xml_out,
"sink_disp_type_2", all_sinks.sink_prop_2.sink_disp_type);
977 write(xml_out,
"source_type_3", all_sinks.sink_prop_3.source_type);
978 write(xml_out,
"source_disp_type_3", all_sinks.sink_prop_3.source_disp_type);
979 write(xml_out,
"sink_type_3", all_sinks.sink_prop_3.sink_type);
980 write(xml_out,
"sink_disp_type_3", all_sinks.sink_prop_3.sink_disp_type);
982 write(xml_out,
"source_type_h1", all_sinks.heavy_prop_1.source_type);
983 write(xml_out,
"source_disp_type_h1", all_sinks.heavy_prop_1.source_disp_type);
984 write(xml_out,
"sink_type_h1", all_sinks.heavy_prop_1.sink_type);
985 write(xml_out,
"sink_disp_type_h1", all_sinks.heavy_prop_1.sink_disp_type);
987 write(xml_out,
"source_type_h2", all_sinks.heavy_prop_2.source_type);
988 write(xml_out,
"source_disp_type_h2", all_sinks.heavy_prop_2.source_disp_type);
989 write(xml_out,
"sink_type_h2", all_sinks.heavy_prop_2.sink_type);
990 write(xml_out,
"sink_disp_type_h2", all_sinks.heavy_prop_2.sink_disp_type);
1010 if (all_sinks.sink_prop_1.source_type ==
"POINT_SOURCE")
1012 else if (all_sinks.sink_prop_1.source_type ==
"SHELL_SOURCE")
1014 else if (all_sinks.sink_prop_1.source_type ==
"WALL_SOURCE")
1018 QDPIO::cerr <<
"Unsupported source type = " << all_sinks.sink_prop_1.source_type << std::endl;
1023 if (all_sinks.sink_prop_1.sink_type ==
"POINT_SINK")
1025 else if (all_sinks.sink_prop_1.sink_type ==
"SHELL_SINK")
1027 else if (all_sinks.sink_prop_1.sink_type ==
"WALL_SINK")
1031 QDPIO::cerr <<
"Unsupported sink type = " << all_sinks.sink_prop_1.sink_type << std::endl;
1035 std::string source_sink_type = src_type +
"_" + snk_type;
1036 QDPIO::cout <<
"Source type = " << src_type << std::endl;
1037 QDPIO::cout <<
"Sink type = " << snk_type << std::endl;
1039 QDPIO::cout <<
"Note that we are not calculating Heavy-Light Spectrum,"<<std::endl;
1040 QDPIO::cout <<
"because both heavy quarks are not static."<<std::endl;
1055 << snoop.getTimeInSeconds()
1056 <<
" secs" << std::endl;
Static-Light 3pt function.
Inline measurement factory.
Inline measurement of heavy-light quark spectroscopy.
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.
InlineHeavyLightContParams params
Fourier transform phase factor support.
const Set & getSet() const
The set to be used in sumMulti.
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 QlQl(const multi1d< LatticeColorMatrix > &u, const LatticePropagator &quark_propagator1, const LatticePropagator &quark_propagator2, const multi1d< int > &src_coord, const multi1d< int > &snk_coord, const int &bc, const SftMom &phases, XMLWriter &xml, const std::string &xml_group)
Heavy-light meson 2-pt function.
void QlbarBACK(const multi1d< LatticeColorMatrix > &u, const LatticePropagator &quark_propagator, const multi1d< int > &src_coord, const SftMom &phases, XMLWriter &xml, const std::string &xml_group, const int bc)
Heavy-light meson 2-pt function with backwards moving static quark.
void Qlbar(const multi1d< LatticeColorMatrix > &u, const LatticePropagator &quark_propagator, const multi1d< int > &src_coord, const SftMom &phases, XMLWriter &xml, const std::string &xml_group, const int bc)
Heavy-light meson 2-pt function.
void proginfo(XMLWriter &xml)
Print out basic information about this program.
std::string makeXMLFileName(std::string xml_file, unsigned long update_no)
Return a xml file name for inline measurements.
std::string source_disp_type
SinkPropContainer_t heavy_prop_2
SinkPropContainer_t sink_prop_3
std::string quark_propagator_id
SinkPropContainer_t sink_prop_2
SinkPropContainer_t sink_prop_1
ForwardProp_t prop_header
std::string sink_disp_type
SinkPropContainer_t heavy_prop_1
Inline heavy light contractions for weak three and four point functions.
Heavy light meson (Qlbar) 2-pt function : Orginos and Savage.
Named object function std::map.
static bool registered
Local registration flag.
bool registerAll()
Register all the factories.
std::string getName()
Return the name.
Asqtad Staggered-Dirac operator.
Real getMass(const GroupXML_t &fermact)
Given a fermion action in std::string form, return the Mass.
static multi1d< LatticeColorMatrix > u
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > const multi1d< Real > & Mass
void write(XMLWriter &xml, const std::string &path, const InlineHeavyLightContParams::NamedObject_t &input)
Propagator output.
push(xml_out,"Condensates")
multi1d< int > getFermActBoundary(const GroupXML_t &fermact)
Given a fermion action in std::string form, return the boundary.
void MesPlq(const multi1d< LatticeColorMatrixF3 > &u, multi2d< Double > &plane_plaq, Double &link)
multi1d< LatticeFermion > s(Ncb)
Various parameter structs and reader/writers.
Print out basic info about this program.
Routines associated with Chroma propagator IO.
Fourier transform phase factor support.
multi1d< Props_t > sink_pairs
InlineHeavyLightContParams()
struct Chroma::InlineHeavyLightContParams::NamedObject_t named_obj
struct Chroma::InlineHeavyLightContParams::Param_t param
void write(XMLWriter &xml_out, const std::string &path)