47 multi1d<LatticeColorMatrix> > >
state,
49 bool ZVfactP,
bool ZAfactP,
56 QDPIO::cout << __func__ <<
": entering" << std::endl;
60 QDPIO::cerr << __func__ <<
": only supports 4 spin components" << std::endl;
68 push(xml_out, xml_group);
78 multi1d<Real> pseudo_prop_f(length);
79 multi1d<Real> axial_prop_f(length);
80 multi1d<Real> pseudo_prop_b(length);
81 multi1d<Real> axial_prop_b(length);
84 Real
norm = 1.0 / Real(QDP::Layout::vol());
88 SpinMatrix g_one = 1.0;
89 SpinMatrix P_plus = 0.5*(g_one + (Gamma(jd) * g_one));
90 SpinMatrix P_minus = 0.5*(g_one - (Gamma(jd) * g_one));
97 const multi1d<LatticeColorMatrix>&
u =
state->getLinks();
102 LatticePropagator quark_prop_f =
zero;
103 LatticePropagator quark_prop_b =
zero;
106 multi1d<Real> pseudo_prop_tmp;
107 multi1d<Real> axial_prop_tmp;
109 push(xml_out,
"PCAC_measurements");
110 for(
int direction = -1; direction <= 1; direction+=2)
112 int t0 = (direction == -1) ? tmax : tmin;
114 for(
int color_source = 0; color_source < Nc; ++color_source)
116 for(
int spin_source = 0; spin_source < Ns; ++spin_source)
158 SFcorr(pseudo_prop_b, axial_prop_b, quark_prop_b, phases);
161 pseudo_prop_b *=
norm;
162 axial_prop_b *=
norm;
164 pseudo_prop_tmp.resize(length);
165 axial_prop_tmp.resize(length);
168 for(
int t = 0;
t < (length-1)/2 + 1; ++
t)
170 int t_eff = length -
t - 1;
172 pseudo_prop_tmp[
t] = pseudo_prop_b[t_eff];
173 pseudo_prop_tmp[t_eff] = pseudo_prop_b[
t];
175 axial_prop_tmp[
t] = -axial_prop_b[t_eff];
176 axial_prop_tmp[t_eff] = -axial_prop_b[
t];
183 SFcorr(pseudo_prop_f, axial_prop_f, quark_prop_f, phases);
186 pseudo_prop_f *=
norm;
187 axial_prop_f *=
norm;
189 pseudo_prop_tmp = pseudo_prop_f;
190 axial_prop_tmp = axial_prop_f;
194 push(xml_out,
"elem");
195 write(xml_out,
"direction", direction);
196 write(xml_out,
"pseudo_prop", pseudo_prop_tmp);
197 write(xml_out,
"axial_prop", axial_prop_tmp);
205 multi1d<Double> prop_corr = sumMulti(localNorm2(quark_prop_f),
208 push(xml_out,
"Forward_prop_test");
209 write(xml_out,
"quark_prop_f", prop_corr);
210 write(xml_out,
"pseudo_prop_f", pseudo_prop_f);
221 quark_prop_f, quark_prop_b, qprop,
state, phases);
226 pseudo_prop_f, axial_prop_f, pseudo_prop_b, axial_prop_b,
227 quark_prop_f, quark_prop_b, qprop,
state, phases, x0, y0);
229 QDPIO::cout << __func__ <<
": print iterations" << std::endl;
231 push(xml_out,
"Relaxation_Iterations");
232 write(xml_out,
"ncg_had", ncg_had);
237 QDPIO::cout << __func__ <<
": exiting" << std::endl;
Support class for fermion actions and linear operators.
Class for counted reference semantics.
Abstract class for all gauge action boundary conditions with Schroedinger BC.
virtual int getDecayMin() const =0
Starting slice in decay direction.
virtual int getDecayMax() const =0
Ending slice in decay direction.
Fourier transform phase factor support.
int numSubsets() const
Number of subsets - length in decay direction.
int getDir() const
Decay direction.
const Set & getSet() const
The set to be used in sumMulti.
void FermToProp(const LatticeFermionF &a, LatticePropagatorF &b, int color_index, int spin_index)
Insert a LatticeFermion into a LatticePropagator.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void SFCurrentZV(XMLWriter &xml_out, const std::string &xml_group, const LatticePropagator &quark_prop_f, const LatticePropagator &quark_prop_b, Handle< SystemSolver< LatticeFermion > > qprop, Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const SftMom &phases)
Compute Z_V.
void SFcorr(multi1d< Real > &pseudo_prop, multi1d< Real > &axial_prop, const LatticePropagator &quark_propagator, const SftMom &phases)
Schroedinger functional correlation functions.
void SFpcac(Handle< SystemSolver< LatticeFermion > > qprop, Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const SftMom &phases, bool ZVfactP, bool ZAfactP, int x0, int y0, XMLWriter &xml_out, const std::string &xml_group)
Schroedinger functional stuff.
int SFCurrentZA(XMLWriter &xml_out, const std::string &xml_group, const multi1d< Real > &pseudo_prop_f, const multi1d< Real > &axial_prop_f, const multi1d< Real > &pseudo_prop_b, const multi1d< Real > &axial_prop_b, const LatticePropagator &quark_prop_f, const LatticePropagator &quark_prop_b, Handle< SystemSolver< LatticeFermion > > qprop, Handle< FermState< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > state, const SftMom &phases, int x0, int y0)
Compute Z_V.
void walfil(LatticeStaggeredFermion &a, int slice, int mu, int color_index, int src_index)
Fill a specific color and spin index with 1.0 on a wall.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
push(xml_out,"Condensates")
multi1d< LatticeFermion > chi(Ncb)
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
Fermion action boundary conditions.
Schroedinger functional correlation functions.
Current renormalizations within Schroedinger functional.
Schroedinger functional application of PCAC.
Holds return info from SystemSolver call.
Wall source construction.