CHROMA
inv_rel_sumr.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Conjugate-Gradient algorithm for a generic Linear Operator
4  */
5 
6 #ifndef __inv_rel_sumr__
7 #define __inv_rel_sumr__
8 
9 #include "chromabase.h"
10 #include "linearop.h"
11 
12 namespace Chroma {
13 
14 // Solve a shifted unitary system
15 //
16 // A x = b
17 //
18 // Where X is of the form: A = zeta I + rho U
19 //
20 // rho > 0 and zeta are complex, and U is unitary
21 //
22 // We solve with the method described in:
23 //
24 // "A Fast Minimal Residual Algorithm for Shifted Unitary Matrices"
25 // by Carl F. Jagels, and Lothar Reichel
26 // Numerical Linear Algebra with Applications, Vol 1(6), 555-570(1994)
27 //
28 // This paper is referenced by and applied to the Overlap Dirac Operator
29 // by G. Arnold, N. Cundy, J. van den Eshof, A Frommer, S. Krieg, T. Lippert,
30 // K. Schaefer "Numerical Methods for the QCD Overlap Operator: II.
31 // Optimal Krylov Subspace Methods" -- hep-lat/0311025
32 // which is where the name SUMR was coined.
33 //
34 template<typename T>
35 void InvRelSUMR(const LinearOperator<T>& U,
36  const T& b,
37  T& x,
38  const Complex& zeta,
39  const Real& rho,
40  const Real& epsilon,
41  int MaxSUMR,
42  int& n_count);
43 
44 } // end namespace Chroma
45 
46 #endif
Primary include file for CHROMA library code.
Linear Operators.
int x
Definition: meslate.cc:34
int epsilon(int i, int j, int k)
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
int n_count
Definition: invbicg.cc:78
void InvRelSUMR(const LinearOperator< LatticeFermion > &U, const LatticeFermion &b, LatticeFermion &x, const Complex &zeta, const Real &rho, const Real &epsilon, int MaxSUMR, int &n_count)
Complex b
Definition: invbicg.cc:96
multi1d< LatticeColorMatrix > U
LatticeFermion T
Definition: t_clover.cc:11