42 calling_function =
"compute_quark_propagator_s (fuzzed version)";
45 calling_function =
"compute_quark_propagator_s (non-fuzzed version)";
48 calling_function =
"compute_singlet_ps";
51 calling_function =
"unknown function";
56 str_source_type=
"LOCAL_SRC";
59 str_source_type=
"GAUGE_INVAR_LOCAL_SOURCE";
62 str_source_type=
"FUZZED_SRC";
65 str_source_type=
"NOISY_LOCAL_SOURCE";
68 str_source_type=
"LOAD_IN_SOURCE";
71 QDPIO::cerr <<
"Unknown type of source in" << str_source_type << std::endl;
76 do_gauge =
"gauge_shift=true";
78 do_gauge =
"gauge_shift=false";
82 do_sym =
"sym_shift=true";
84 do_sym =
"sym_shift=false";
94 "Source type not gauge invariant.\nProbably not what you want.";
100 "Symmetric shifts not implemented for non-gauge-invariant sources";
104 more_info =
"GAUGE_INVAR_LOCAL_SOURCE needs gauge shifting";
111 more_info =
"Somehow called no-fuzzing version with FUZZED_SRC";
116 QDPIO::cerr <<
"In "<< calling_function <<
" you used: "<< std::endl;
117 QDPIO::cerr <<
" "<< str_source_type<< std::endl;
118 QDPIO::cerr <<
" "<< do_gauge << std::endl;
119 QDPIO::cerr <<
" "<< do_sym << std::endl;
120 QDPIO::cerr << more_info << std::endl;
138 const multi1d<LatticeColorMatrix> &
u ,
139 multi1d<LatticeColorMatrix> & u_smr,
144 int src_ind,
int color_source){
146 LatticeStaggeredFermion q_source ;
147 LatticeStaggeredFermion q_source_fuzz ;
152 QDPIO::cout <<
"Inversion for Color = " << color_source << std::endl;
180 q_source_fuzz = q_source ;
197 q_source = q_source_fuzz ;
213 double time_in_sec = swatch.getTimeInSeconds();
219 push(xml_out,
"Qprop");
220 write(xml_out,
"Staggered_src_tag" , src_ind);
224 write(xml_out,
"time_in_sec",time_in_sec );
243 const multi1d<LatticeColorMatrix> &
u ,
244 multi1d<LatticeColorMatrix> & u_smr,
249 int src_ind,
int color_source,
250 LatticeStaggeredFermion & q_source_in ){
252 LatticeStaggeredFermion q_source ;
253 LatticeStaggeredFermion q_source_fuzz ;
258 QDPIO::cout <<
"Inversion for Color = " << color_source << std::endl;
286 q_source_fuzz = q_source ;
303 q_source = q_source_fuzz ;
310 q_source = q_source_in ;
314 q_source_in = q_source ;
330 double time_in_sec = swatch.getTimeInSeconds();
336 push(xml_out,
"Qprop");
337 write(xml_out,
"Staggered_src_tag" , src_ind);
341 write(xml_out,
"time_in_sec",time_in_sec );
356 const multi1d<LatticeColorMatrix> &
u ,
361 int src_ind,
int color_source,
int t_source){
363 LatticeStaggeredFermion q_source ;
364 LatticeStaggeredFermion q_source_fuzz ;
367 QDPIO::cout <<
"Inversion for Color = " << color_source << std::endl;
395 q_source_fuzz = q_source ;
408 QDPIO::cerr <<
"Conflicting source and shift types in " <<
409 "util_compute_quark_prop_s.cc" <<std::endl;
410 QDPIO::cerr <<
"double-check your source --- no fuzz-smearing here"
428 double time_in_sec = swatch.getTimeInSeconds();
434 push(xml_out,
"Qprop");
435 write(xml_out,
"Staggered_src_tag" , src_ind);
439 write(xml_out,
"time_in_sec",time_in_sec );
453 const multi1d<LatticeColorMatrix> &
u ,
458 int src_ind,
int color_source,
int t_source,
459 LatticeStaggeredFermion & q_source_in ){
461 LatticeStaggeredFermion q_source ;
462 LatticeStaggeredFermion q_source_fuzz ;
465 QDPIO::cout <<
"Inversion for Color = " << color_source << std::endl;
493 q_source_fuzz = q_source ;
505 q_source = q_source_in ;
509 QDPIO::cerr <<
"Conflicting source and shift types in " <<
510 "util_compute_quark_prop_s.cc" <<std::endl;
511 QDPIO::cerr <<
"double-check your source --- no fuzz-smearing here"
513 QDPIO::cout <<
"DEBUG type_of_src = " << type_of_src << std::endl;
521 q_source_in = q_source ;
536 double time_in_sec = swatch.getTimeInSeconds();
542 push(xml_out,
"Qprop");
543 write(xml_out,
"Staggered_src_tag" , src_ind);
547 write(xml_out,
"time_in_sec",time_in_sec );
566 LatticeStaggeredFermion & psi2,
570 const multi1d<LatticeColorMatrix> &
u ,
574 Real
RsdCG, Real Mass1, Real Mass2,
576 int src_ind,
int color_source,
int t_source,
577 LatticeStaggeredFermion & q_source_in){
579 LatticeStaggeredFermion q_source ;
580 LatticeStaggeredFermion q_source_fuzz ;
584 QDPIO::cout <<
"Inversion for Color = " << color_source << std::endl;
598 src_tag =
"LOCAL_SRC" ;
612 q_source_fuzz = q_source ;
617 src_tag =
"GAUGE_INVAR_LOCAL_SOURCE" ;
622 src_tag =
"NOISY_LOCAL_SOURCE" ;
625 q_source = q_source_in ;
629 src_tag =
"SOURCE_ERROR" ;
630 QDPIO::cerr <<
"Conflicting source and shift types in " <<
631 "util_compute_quark_prop_s.cc" <<std::endl;
632 QDPIO::cerr <<
"double-check your source --- no fuzz-smearing here"
634 QDPIO::cout <<
"DEBUG type_of_src = " << type_of_src << std::endl;
643 q_source_in = q_source ;
659 double time_in_sec = swatch.getTimeInSeconds();
662 ncg_had += res2.n_count;
666 push(xml_out,
"inversions");
667 push(xml_out,
"Qprop1");
668 write(xml_out,
"Staggered_src_tag" , src_tag);
669 write(xml_out,
"Mass" , Mass1);
674 push(xml_out,
"Qprop2");
675 write(xml_out,
"Staggered_src_tag" , src_tag);
676 write(xml_out,
"Mass" , Mass2);
677 write(xml_out,
"Final_RsdCG", res2.resid);
678 write(xml_out,
"n_count", res2.n_count);
681 write(xml_out,
"time_in_sec",time_in_sec );
698 LatticeStaggeredFermion & psi2,
702 const multi1d<LatticeColorMatrix> &
u ,
706 Real
RsdCG, Real Mass1, Real Mass2,
708 int src_ind,
int color_source,
int t_source){
710 LatticeStaggeredFermion q_source ;
711 LatticeStaggeredFermion q_source_fuzz ;
715 QDPIO::cout <<
"Inversion for Color = " << color_source << std::endl;
729 src_tag =
"LOCAL_SRC" ;
743 q_source_fuzz = q_source ;
748 src_tag =
"GAUGE_INVAR_LOCAL_SOURCE" ;
753 src_tag =
"NOISY_LOCAL_SOURCE" ;
756 src_tag =
"SOURCE_ERROR" ;
757 QDPIO::cerr <<
"Conflicting source and shift types in " <<
758 "util_compute_quark_prop_s.cc" <<std::endl;
759 QDPIO::cerr <<
"double-check your source --- no fuzz-smearing here"
779 double time_in_sec = swatch.getTimeInSeconds();
782 ncg_had += res2.n_count;
786 push(xml_out,
"inversions");
787 push(xml_out,
"Qprop1");
788 write(xml_out,
"Staggered_src_tag" , src_tag);
789 write(xml_out,
"Mass" , Mass1);
794 push(xml_out,
"Qprop2");
795 write(xml_out,
"Staggered_src_tag" , src_tag);
796 write(xml_out,
"Mass" , Mass2);
797 write(xml_out,
"Final_RsdCG", res2.resid);
798 write(xml_out,
"n_count", res2.n_count);
801 write(xml_out,
"time_in_sec",time_in_sec );
Class for counted reference semantics.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void fuzz_smear(const multi1d< LatticeColorMatrix > &ufuzz, const T &psi, T &psifuzz, int length, int j_decay)
apply a fuzz_smear operator to a lattice field
void gaussian_color_src_on_slice(LatticeStaggeredFermion &a, int color_index, int slice, int mu)
Diluted Gauusian-source.
void srcfil(LatticeFermion &a, const multi1d< int > &coord, int color_index, int spin_index)
Fill a specific color and spin index with 1.0.
Class for counted reference semantics.
Asqtad Staggered-Dirac operator.
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > const multi1d< Real > enum InvType invType const multi1d< Real > & RsdCG
int check_qprop_source_compatability(stag_src_type type_of_src, bool gauge_shift, bool sym_shift, func_flag_type fflag)
static multi1d< LatticeColorMatrix > u
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > const multi1d< Real > & Mass
push(xml_out,"Condensates")
LatticeStaggeredPropagator shiftDeltaPropCov(multi1d< int > &delta, const LatticeStaggeredPropagator &src, multi1d< LatticeColorMatrix > u, bool sym_flag)
void PropIndexTodelta(int src_index, multi1d< int > &delta)
int compute_quark_propagator_s(LatticeStaggeredFermion &psi, stag_src_type type_of_src, bool gauge_shift, bool sym_shift, int fuzz_width, const multi1d< LatticeColorMatrix > &u, multi1d< LatticeColorMatrix > &u_smr, Handle< SystemSolver< LatticeStaggeredFermion > > &qprop, XMLWriter &xml_out, Real RsdCG, Real Mass, int j_decay, int src_ind, int color_source)
Point source construction.
Holds return info from SystemSolver call.
Compute staggered quark propagator.
@ GAUGE_INVAR_LOCAL_SOURCE