10 multi1d<int> boundary;
11 multi1d<int> rng_seed;
35 XMLReader
reader(filename);
69 push(writer,
"params");
70 push(writer,
"lattice");
92 push(writer,
"zolotarev");
103 int main(
int argc,
char **argv)
115 QDPIO::cerr <<
"Caught exception " <<
s << std::endl;
121 Layout::setLattSize(
params.nrow);
126 push(xml_out,
"ritzTest");
131 multi1d<LatticeColorMatrix>
u(
Nd);
132 XMLReader gauge_file_xml, gauge_xml;
136 MesPlq(xml_out,
"Observables",
u);
149 XMLBufferWriter my_writer;
158 Real(
params.approx_max)));
163 xml_out << my_writer;
171 multi1d<Real> check_norm(
params.n_eig);
176 bool ProjApsiP =
true;
180 Real delta_cycle = Real(1);
181 Real gamma_factor = Real(1);
184 XMLBufferWriter eig_spec_xml;
187 for(
int n=0;
n <
N5;
n++) {
194 int n_jacob_count = 0;
215 xml_out << eig_spec_xml;
216 write(xml_out,
"lambda", lambda);
220 multi1d<LatticeFermion> Me(
N5);
221 multi1d<LatticeFermion> lambda_e(
N5);
223 for(
int n =0;
n <
N5;
n++) {
224 lambda_e[
n] = lambda[
i]*
psi[
i][
n];
228 for(
int n=0;
n <
N5;
n++) {
232 check_norm[
i] = norm2(
r_norm[0]);
233 for(
int n=1;
n <
N5;
n++) {
237 check_norm[
i] = sqrt(check_norm[
i]);
239 write(xml_out,
"check_norm", check_norm);
242 check_norm[
i] /= fabs(lambda[
i]);
244 write(xml_out,
"check_norm_rel", check_norm);
251 multi1d<bool> valid_eig(
params.n_eig);
256 params.rsd_a,
params.rsd_zero, valid_eig, n_valid, n_jacob);
260 push(xml_out,
"eigFix");
261 write(xml_out,
"lambda", lambda);
262 write(xml_out,
"n_valid", n_valid);
263 write(xml_out,
"valid_eig", valid_eig);
265 multi1d<LatticeFermion> Me(
N5);
268 bool zeroP = toBool( fabs(lambda[
i]) <
params.rsd_zero );
270 check_norm[
i] = norm2(Me[0]);
271 for(
int n=1;
n <
N5;
n++) {
272 check_norm[
i] += norm2(Me[
n]);
274 check_norm[
i] = sqrt(check_norm[
i]);
277 multi1d<LatticeFermion> lambda_e(
N5);
280 for(
int n=0;
n <
N5;
n++) {
281 lambda_e[
n] = lambda[
i]*
psi[
i][
n];
285 check_norm[
i] = norm2(
r_norm[0]);
286 for(
int n=1;
n <
N5;
n++) {
290 check_norm[
i] = sqrt(check_norm[
i]);
293 QDPIO::cout <<
"check_norm["<<
i+1<<
"] = " << check_norm[
i] << std::endl;
295 write(xml_out,
"check_norm", check_norm);
298 check_norm[
i] /= fabs(lambda[
i]);
299 QDPIO::cout <<
"check_norm_rel["<<
i+1 <<
"] = " << check_norm[
i] << std::endl;
301 write(xml_out,
"check_norm_rel", check_norm);
308 write(xml_out,
"szinLamda", lambda);
Primary include file for CHROMA in application codes.
Class for counted reference semantics.
Concrete class for all gauge actions with simple boundary conditions.
5D continued fraction overlap action (Borici,Wenger, Edwards)
OverlapConnectState * createState(const multi1d< LatticeColorMatrix > &u, XMLReader &state_info_xml, const std::string &state_info_path) const
Create OverlapConnectState from XML.
UnprecLinearOperatorArray< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const
Produce a linear operator for this action.
int size(void) const
5D size
Unpreconditioned Wilson fermion action.
virtual DiffLinearOperatorArray< T, P, Q > * lMdagM(Handle< FermState< T, P, Q > > state) const
Produce a linear operator M^dag.M for this action.
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 gaugeStartup(XMLReader &gauge_file_xml, XMLReader &gauge_xml, multi1d< LatticeColorMatrix > &u, Cfg_t &cfg)
Initialize the gauge fields.
Handle< FermBC< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > reader(XMLReader &xml_in, const std::string &path)
Helper function for the FermionAction readers.
Asqtad Staggered-Dirac operator.
void fixMMev2Mev(const LinearOperator< LatticeFermion > &M, multi1d< Real > &lambda, multi1d< LatticeFermion > &ev_psi, const int n_eig, const Real &Rsd_r, const Real &Rsd_a, const Real &zero_cutoff, multi1d< bool > &valid_eig, int &n_valid, int &n_jacob)
void EigSpecRitzKS(const LinearOperator< LatticeFermion > &M, multi1d< Real > &lambda_H, multi1d< LatticeFermion > &psi, int n_eig, int n_dummy, int n_renorm, int n_min, int n_max, int n_max_KS, const Real &gamma_factor, int MaxCG, const Real &Rsd_r, const Real &Rsd_a, const Real &zero_cutoff, const bool ProjApsiP, int &n_cg_tot, int &n_KS, int &n_jacob_tot, XMLWriter &xml_out)
static multi1d< LatticeColorMatrix > u
push(xml_out,"Condensates")
void initialize(int *argc, char ***argv)
Chroma initialisation routine.
void finalize(void)
Chroma finalization routine.
std::string getXMLInputFileName()
Get input file name.
void MesPlq(const multi1d< LatticeColorMatrixF3 > &u, multi2d< Double > &plane_plaq, Double &link)
XMLFileWriter & getXMLOutputInstance()
Get xml output instance.
multi1d< LatticeFermion > s(Ncb)
Gauge configuration structure.
Parameters for running program.
void readParams(const std::string &filename, Param_t ¶ms)
int main(int argc, char **argv)
void dumpParams(XMLWriter &writer, Param_t ¶ms)