49 void time_evolve(LatticeFermion & Gplus,
const LatticeFermion & Gnow,
int t ) ;
52 const LatticeFermion & Gsource,
53 const multi1d<LatticeColorMatrix>&
u,
86 multi1d<int> boundary;
109 XMLReader inputtop(xml, path);
120 XMLReader inputtop(xml, path);
134 QDPIO::cerr <<
"Error reading data: " << e << std::endl;
145 XMLReader paramtop(inputtop,
"param");
157 QDPIO::cerr <<
"Input parameter version " << input.
io_version.
version <<
" unsupported." << std::endl;
163 QDPIO::cerr <<
"Error reading data: " << e << std::endl;
171 XMLReader paramtop(inputtop,
"param");
175 read(paramtop,
"FermTypeP", ferm_type_str);
176 if (ferm_type_str ==
"WILSON") {
186 QDPIO::cout <<
" PROPAGATOR: Propagator for NRQCD" << std::endl;
199 read(paramtop,
"cfg_type", cfg_type_str);
200 if (cfg_type_str ==
"NERSC") {
203 else if (cfg_type_str ==
"HOT") {
205 }
else if (cfg_type_str ==
"COLD") {
215 read(paramtop,
"prop_type", prop_type_str);
216 if (prop_type_str ==
"SZIN") {
236 QDPIO::cerr <<
"Error reading data: " << e << std::endl;
249 QDPIO::cerr <<
"Error reading data: " << e << std::endl;
261 int main(
int argc,
char **argv)
274 read(xml_in,
"/propagator", input);
281 multi1d<LatticeColorMatrix>
u(
Nd);
285 QDPIO::cout <<
"Calculation for SU(" << Nc <<
")" << std::endl;
294 for(
int j = 0;
j <
Nd;
j++) {
297 QDPIO::cout <<
"COLD unit configuration created" << std::endl;
301 for(
int dir = 0 ; dir <
Nd ; ++dir)
306 QDPIO::cout <<
"Hot/Random configuration created" << std::endl;
317 push(xml_out,
"propagator");
320 write(xml_out,
"Input", xml_in);
323 write(xml_out,
"Config_info", gauge_xml);
328 push(xml_out,
"Output_version");
329 write(xml_out,
"out_version", 1);
336 MesPlq(xml_out,
"Observables",
u);
344 bool do_gauge_transform ;
345 do_gauge_transform = false ;
349 if( do_gauge_transform )
352 multi1d<LatticeColorMatrix> u_trans(
Nd);
355 LatticeColorMatrix v ;
360 for(
int dir = 0 ; dir <
Nd ; ++dir)
362 u_trans[dir] = v*
u[dir]*adj(shift(v,
FORWARD,dir)) ;
363 u[dir] = u_trans[dir] ;
366 QDPIO::cout <<
"Random gauge transform done" << std::endl;
393 LatticePropagator quark_propagator;
394 XMLBufferWriter xml_buf;
398 LatticeFermion q_source,
psi;
402 QDPIO::cout <<
"Source time slice = " <<
t_source << std::endl;
404 for(
int color_source = 0; color_source < Nc; ++color_source)
405 for(
int spin_source = 0 ; spin_source < Ns ; ++spin_source)
407 QDPIO::cout <<
"Inversion for Color = " << color_source << std::endl;
408 QDPIO::cout <<
"Inversion for Spin = " << spin_source << std::endl;
414 srcfil(q_source,
coord, color_source, spin_source);
423 const int n_nrqcd = 3 ;
433 FermToProp(
psi, quark_propagator, color_source, spin_source);
446 mesons(quark_propagator,quark_propagator,
448 "Point_Point_NRQCD_Mesons") ;
485 const LatticeFermion & Gnow,
486 const multi1d<LatticeColorMatrix>&
u,
494 Subset this_time = timeslice[
t+1] ;
496 LatticeFermion
tmp = shift(adj(
u[tdir])*Gnow,
BACKWARD, tdir);
497 Gplus[this_time] =
tmp ;
517 const LatticeFermion & Gin,
518 const multi1d<LatticeColorMatrix>&
u,
528 Subset this_time = timeslice[
t] ;
530 LatticeFermion Gout_all ;
532 Gout_all = Gin /
Mass ;
536 for(
int dir = 0 ; dir < 3 ; ++dir)
553 Gout[this_time] = Gout_all ;
571 const LatticeFermion & Gsource,
572 const multi1d<LatticeColorMatrix>&
u,
577 LatticeFermion Gold ;
578 LatticeFermion G_tmp ;
582 for(
int t = 0 ;
t < nt ; ++
t)
585 for(
int i = 0 ;
i <
n ; ++
i)
Primary include file for CHROMA in application codes.
Class for counted reference semantics.
Fourier transform phase factor support.
Concrete class for all gauge actions with simple boundary conditions.
Function object used for constructing the time-slice set.
int operator()(const multi1d< int > &coordinate) const
Unpreconditioned Wilson fermion action.
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 mesons(const LatticePropagator &quark_prop_1, const LatticePropagator &quark_prop_2, const SftMom &phases, int t0, XMLWriter &xml, const std::string &xml_group)
Meson 2-pt functions.
LatticePropagator displacement(const multi1d< LatticeColorMatrix > &u, const LatticePropagator &chi, int length, int dir)
Apply a displacement operator to a lattice field.
void srcfil(LatticeFermion &a, const multi1d< int > &coord, int color_index, int spin_index)
Fill a specific color and spin index with 1.0.
std::map< std::string, SinkPropContainer_t > prop
multi1d< LatticeColorMatrix > G
Asqtad Staggered-Dirac operator.
QDP_error_exit("too many BiCG iterations", n_count, rsd_sq, cp, c, re_rvr, im_rvr, re_a, im_a, re_b, im_b)
static multi1d< LatticeColorMatrix > u
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > const multi1d< Real > & Mass
push(xml_out,"Condensates")
void initialize(int *argc, char ***argv)
Chroma initialisation routine.
void finalize(void)
Chroma finalization routine.
void reunit(LatticeColorMatrixF3 &xa)
void MesPlq(const multi1d< LatticeColorMatrixF3 > &u, multi2d< Double > &plane_plaq, Double &link)
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
XMLFileWriter & getXMLOutputInstance()
Get xml output instance.
const WilsonTypeFermAct< multi1d< LatticeFermion > > & S_f
Gauge configuration structure.
Hold group xml and type id.
Parameters for running program.
SysSolverCGParams invParam
int main(int argc, char **argv)
void compute_nrqcd_prop(LatticeFermion &G, const LatticeFermion &Gsource, const multi1d< LatticeColorMatrix > &u, const Real Mass, int n, int nt)
void apply_lowest_ke(LatticeFermion &Gout, const LatticeFermion &Gin, const multi1d< LatticeColorMatrix > &u, const Real Mass, int t)
void time_evolve(LatticeFermion &Gplus, const LatticeFermion &Gnow, int t)