CHROMA
eig_spec_array.h
Go to the documentation of this file.
1 /* ! $Id: eig_spec_array.h,v 3.0 2006-04-03 04:58:57 edwards Exp $ */
2 
3 #ifndef __eig_spec_bj_array_w_h__
4 #define __eig_spec_bj_array_w_h__
5 
6 #include "chromabase.h"
7 #include "linearop.h"
8 
9 namespace Chroma {
10 
11 void EigSpecRitzCG(const LinearOperatorArray<LatticeFermion>& H, // Herm pos def operator
12  multi1d<Real>& lambda_H, // E-values
13  multi2d<LatticeFermion>& psi, // E-vectors
14  int n_eig, // no of eig wanted
15  int n_renorm, // renorm frequency
16  int n_min, // minimum iters / e_value
17  int MaxCG, // Max no of CG iters
18  const Real& Rsd_r, // relative residuum of each
19  // e-value
20  const Real& Rsd_a, // absolute target residuum
21  // (for small ev-s)
22  const Real& zero_cutoff, // if evalue slips below this
23  // we consider it as zero
24  const bool ProjApsiP, // Project in Ritz?
25 
26  int& n_cg_tot, // Total no of CG iters
27  XMLWriter& xml_out // Diagnostics
28  );
29 
30 void EigSpecRitzKS(const LinearOperatorArray<LatticeFermion>& H, // Herm pos def operator
31  multi1d<Real>& lambda_H, // E-values
32  multi2d<LatticeFermion>& psi, // E-vectors
33  int n_eig, // no of eig wanted
34  int n_dummy, // No of Dummy e-vals to use
35 
36  int n_renorm, // renorm frequency
37  int n_min, // minimum iters / e_value
38  int n_max, // max iters / e_value
39  int n_max_KS, // max KS cycles
40  const Real& gamma_factor, // the KS gamma factor
41 
42  int MaxCG, // Max no of CG iters
43  const Real& Rsd_r, // relative residuum of each
44  // e-value
45  const Real& Rsd_a, // absolute residuum (for small ev's)
46  const Real& zero_cutoff, // if an ev slips below this
47  // we consider it zero
48  const bool ProjApsiP, // Project in Ritz?
49 
50  int& n_cg_tot, // Total no of CG iters
51  int& n_KS, // No of KS cycles
52  int& n_jacob_tot, // No of Jacobi Diag
53  XMLWriter& xml_out // Diagnostics
54  );
55 
56 
57 void fixMMev2Mev(const LinearOperatorArray<LatticeFermion>& M, // The Op to fix to
58  multi1d<Real>& lambda, // The Evals of M^{dag}M on input
59  // The Evals of M on output
60  multi2d<LatticeFermion>& ev_psi, // The Evecs corresponding to lambda
61  const int n_eig, // The no of evals/evecs to deal with
62  const Real& Rsd_r, // Relative error
63  const Real& Rsd_a, // Absolute error
64  const Real& zero_cutoff, // if EV slips below this we consider
65  // it to be zero
66  multi1d<bool>& valid_eig, // Validity mask (Write)
67  int& n_valid, // No of valids (Write)
68  int& n_jacob // How many Jacobis were done
69  );
70 
71 } // end namespace Chroma
72 
73 #endif
Primary include file for CHROMA library code.
void EigSpecRitzCG(const LinearOperator< LatticeFermion > &M, multi1d< Real > &lambda_H, multi1d< LatticeFermion > &psi, int n_eig, int n_renorm, int n_min, int MaxCG, const Real &Rsd_r, const Real &Rsd_a, const Real &zero_cutoff, const bool ProjApsiP, int &n_cg_tot, XMLWriter &xml_out)
Compute low lying eigenvalues of the hermitian H.
Definition: eig_spec.cc:41
Linear Operators.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
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)
Definition: eig_spec.cc:321
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)
Definition: eig_spec.cc:124
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > const multi1d< Real > enum InvType invType const multi1d< Real > int MaxCG
Definition: pbg5p_w.cc:32
LatticeFermion psi
Definition: mespbg5p_w.cc:35