Inverters
[Fermion action support]


Namespaces

namespace  Chroma::InvEigCG2Env
 Conjugate-Gradient (CGNE) with eigenvector acceleration.
namespace  Chroma::InvEigCG2ArrayEnv
 Conjugate-Gradient (CGNE) with eigenvector acceleration.
namespace  Chroma::LinOpMultiSysSolverEnv
 Registration aggregator.
namespace  Chroma::LinOpMultiSysSolverArrayEnv
 Registration aggregator.
namespace  Chroma::MdagMMultiSysSolverAccumulateEnv
 Registration aggregator.
namespace  Chroma::MdagMMultiSysSolverAccumulateArrayEnv
 Registration aggregator.
namespace  Chroma::MdagMMultiSysSolverEnv
 Registration aggregator.
namespace  Chroma::MdagMMultiSysSolverArrayEnv
 Registration aggregator.
namespace  Chroma::LinOpSysSolverEnv
 Registration aggregator.
namespace  Chroma::LinOpSysSolverArrayEnv
 Registration aggregator.
namespace  Chroma::MdagMSysSolverEnv
 Registration aggregator.
namespace  Chroma::MdagMSysSolverArrayEnv
 Registration aggregator.
namespace  Chroma::PolyPrecSysSolverEnv
 Registration aggregator.

Classes

class  Chroma::LinAlg::Vectors< T >
 Hold vectors. More...
class  Chroma::LinAlg::RitzPairs< T >
 Holds eigenvalues and eigenvectors. More...
class  Chroma::LinAlg::Matrix< T >
 This is a square matrix. More...
class  Chroma::LinAlg::VectorArrays< T >
 Hold vectors. More...
class  Chroma::LinAlg::RitzPairsArray< T >
 Holds eigenvalues and arrays of eigenvectors for use in 5D work. More...
struct  Chroma::MultiSysSolverCGParams
 Params for CG inverter. More...
class  Chroma::LinOpMultiSysSolverMR< T >
 Solve a MR system. Here, the operator is NOT assumed to be hermitian. More...
class  Chroma::MdagMMultiSysSolverCG< T >
 Solve a CG2 system. Here, the operator is NOT assumed to be hermitian. More...
class  Chroma::MdagMMultiSysSolverCGAccumulate< T >
 Solve a CG2 system. Here, the operator is NOT assumed to be hermitian. More...
class  Chroma::MdagMMultiSysSolverCGAccumulateArray< T >
 Solve a CG system. Here, the operator is NOT assumed to be hermitian. More...
class  Chroma::MdagMMultiSysSolverCGArray< T >
 Solve a CG system. Here, the operator is NOT assumed to be hermitian. More...
struct  Chroma::MultiSysSolverMRParams
 Params for MR inverter. More...
struct  Chroma::SysSolverBiCGStabParams
 Params for BiCGStab inverter. More...
struct  Chroma::SysSolverCGParams
 Params for CG inverter. More...
struct  Chroma::SysSolverEigCGParams
 Params for EigCG inverter. More...
class  Chroma::LinOpSysSolverBiCGStab< T >
 Solve a M*psi=chi linear system by BICGSTAB. More...
class  Chroma::LinOpSysSolverBiCRStab< T >
 Solve a M*psi=chi linear system by BICGSTAB. More...
class  Chroma::LinOpSysSolverCG< T >
 Solve a M*psi=chi linear system by CG2. More...
class  Chroma::LinOpSysSolverCGArray< T >
 Solve a M*psi=chi linear system by CG2. More...
class  Chroma::LinOpSysSolverCGTiming< T >
 Solve a M*psi=chi linear system by CG2. More...
class  Chroma::LinOpSysSolverEigCG< T >
 Solve a M*psi=chi linear system by EigCG with eigenvectors. More...
class  Chroma::LinOpSysSolverEigCGArray< T >
 Solve a M*psi=chi linear system by CG2 with eigenvectors. More...
class  Chroma::LinOpSysSolverIBiCGStab< T >
 Solve a M*psi=chi linear system by IBICGSTAB. More...
class  Chroma::LinOpSysSolverMR< T >
 Solve a M*psi=chi linear system by MR. More...
class  Chroma::LinOpSysSolverOptEigBiCG< T >
 Solve a M*psi=chi linear system by biCG with eigenvectors. More...
class  Chroma::LinOpSysSolverReliableBiCGStabClover
 Solve a system using Richardson iteration. More...
class  Chroma::LinOpSysSolverReliableCGClover
 Solve a system using Richardson iteration. More...
class  Chroma::LinOpSysSolverReliableIBiCGStabClover
 Solve a system using Richardson iteration. More...
class  Chroma::LinOpSysSolverRichardsonClover
 Solve a system using Richardson iteration. More...
class  Chroma::MdagMSysSolverBiCGStab< T >
 Solve a BiCGStab system. Here, the operator is NOT assumed to be hermitian. More...
class  Chroma::MdagMSysSolverCG< T >
 Solve a CG2 system. Here, the operator is NOT assumed to be hermitian. More...
class  Chroma::MdagMSysSolverCGArray< T >
 Solve a CG2 system. Here, the operator is NOT assumed to be hermitian. More...
class  Chroma::MdagMSysSolverCGLFClover
 Solve a system using CG iteration. More...
class  Chroma::MdagMSysSolverCGTimings< T >
 Solve a CG2 system. Here, the operator is NOT assumed to be hermitian. More...
class  Chroma::MdagMSysSolverQDPEigCG< T >
 Solve a M*psi=chi linear system by CG2 with eigenvectors. More...
class  Chroma::MdagMSysSolverIBiCGStab< T >
 Solve a IBiCGStab system. Here, the operator is NOT assumed to be hermitian. More...
class  Chroma::MdagMSysSolverMR< T >
 Solve a MR system. Here, the operator is NOT assumed to be hermitian. More...
class  Chroma::MdagMSysSolverOptEigCG< T >
 Solve a M*psi=chi linear system by CG2 with eigenvectors. More...
class  Chroma::MdagMSysSolverReliableBiCGStabClover
 Solve a system using Richardson iteration. More...
class  Chroma::MdagMSysSolverReliableCGClover
 Solve a system using Richardson iteration. More...
class  Chroma::MdagMSysSolverReliableIBiCGStabClover
 Solve a system using Richardson iteration. More...
class  Chroma::MdagMSysSolverRichardsonClover
 Solve a system using Richardson iteration. More...
struct  Chroma::SysSolverMRParams
 Params for MR inverter. More...
struct  Chroma::SysSolverOptEigBiCGParams
 Params for EigBiCG inverter. More...
struct  Chroma::SysSolverOptEigCGParams
 Params for EigCG inverter. More...
class  Chroma::PolyPrecSysSolverCG< T >
 Solve a PolyPrec*psi=chi linear system by CG1. More...
template<typename T>
SystemSolverResults_t Chroma::InvBiCGStab (const LinearOperator< T > &A, const T &chi, T &psi, const Real &RsdBiCGStab, int MaxBiCGStab, enum PlusMinus isign)
 Bi-CG stabilized.
template<typename T>
SystemSolverResults_t Chroma::InvBiCRStab (const LinearOperator< T > &A, const T &chi, T &psi, const Real &RsdBiCGStab, int MaxBiCGStab, enum PlusMinus isign)
 Bi-CG stabilized.
SystemSolverResults_t Chroma::InvCG2 (const LinearOperator< LatticeFermionF > &M, const LatticeFermionF &chi, LatticeFermionF &psi, const Real &RsdCG, int MaxCG)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
SystemSolverResults_t Chroma::InvCG2 (const LinearOperator< LatticeFermionD > &M, const LatticeFermionD &chi, LatticeFermionD &psi, const Real &RsdCG, int MaxCG)
SystemSolverResults_t Chroma::InvCG2 (const LinearOperator< LatticeStaggeredFermionF > &M, const LatticeStaggeredFermionF &chi, LatticeStaggeredFermionF &psi, const Real &RsdCG, int MaxCG)
SystemSolverResults_t Chroma::InvCG2 (const LinearOperator< LatticeStaggeredFermionD > &M, const LatticeStaggeredFermionD &chi, LatticeStaggeredFermionD &psi, const Real &RsdCG, int MaxCG)
SystemSolverResults_t Chroma::InvCG2 (const LinearOperatorArray< LatticeFermionF > &M, const multi1d< LatticeFermionF > &chi, multi1d< LatticeFermionF > &psi, const Real &RsdCG, int MaxCG)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
SystemSolverResults_t Chroma::InvCG2 (const LinearOperatorArray< LatticeFermionD > &M, const multi1d< LatticeFermionD > &chi, multi1d< LatticeFermionD > &psi, const Real &RsdCG, int MaxCG)
template<typename T>
SystemSolverResults_t Chroma::InvIBiCGStab (const LinearOperator< T > &A, const T &chi, T &psi, const Real &RsdBiCGStab, int MaxBiCGStab, enum PlusMinus isign)
 Bi-CG stabilized.
template<typename T, typename C>
SystemSolverResults_t Chroma::InvMR_a (const C &M, const T &chi, T &psi, const Real &MRovpar, const Real &RsdMR, int MaxMR, enum PlusMinus isign)
 Minimal-residual (MR) algorithm for a generic Linear Operator.
template<>
SystemSolverResults_t Chroma::InvMR (const LinearOperator< LatticeFermion > &M, const LatticeFermion &chi, LatticeFermion &psi, const Real &MRovpar, const Real &RsdMR, int MaxMR, enum PlusMinus isign)
template<>
SystemSolverResults_t Chroma::InvMR (const LinearOperator< LatticeStaggeredFermion > &M, const LatticeStaggeredFermion &chi, LatticeStaggeredFermion &psi, const Real &MRovpar, const Real &RsdMR, int MaxMR, enum PlusMinus isign)
template<typename T>
SystemSolverResults_t Chroma::InvMR (const LinearOperator< T > &M, const T &chi, T &psi, const Real &MRovpar, const Real &RsdMR, int MaxMR, enum PlusMinus isign)
 Minimal-residual (MR) algorithm for a generic Linear Operator.
template<typename T>
void Chroma::MInvMR_a (const LinearOperator< T > &A, const T &chi, multi1d< T > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdMR, int MaxMR, int &n_count)
 Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.
template<>
void Chroma::MInvMR (const LinearOperator< LatticeFermion > &M, const LatticeFermion &chi, multi1d< LatticeFermion > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdMR, int MaxMR, int &n_count)
template<>
void Chroma::MInvMR (const DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &M, const LatticeFermion &chi, multi1d< LatticeFermion > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdMR, int MaxMR, int &n_count)
template<typename T>
void Chroma::MInvMR (const LinearOperator< T > &A, const T &chi, multi1d< T > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
 Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.
template<typename T, typename P, typename Q>
void Chroma::MInvMR (const DiffLinearOperator< T, P, Q > &A, const T &chi, multi1d< T > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
void Chroma::normGramSchmidt (multi1d< LatticeFermionF > &vec, int f, int t, const Subset &sub)
 Gram-Schmidt with normalization.
void Chroma::normGramSchmidt (multi1d< LatticeFermionD > &vec, int f, int t, const Subset &sub)
void Chroma::normGramSchmidt (multi1d< LatticeStaggeredFermionF > &vec, int f, int t, const Subset &sub)
void Chroma::normGramSchmidt (multi1d< LatticeStaggeredFermionD > &vec, int f, int t, const Subset &sub)
void Chroma::normGramSchmidt (multi2d< LatticeFermionF > &vec, int f, int t, const Subset &sub)
void Chroma::normGramSchmidt (multi2d< LatticeFermionD > &vec, int f, int t, const Subset &sub)
SystemSolverResults_t Chroma::InvBiCGStabReliable (const LinearOperator< LatticeFermionF > &A, const LatticeFermionF &chi, LatticeFermionF &psi, const Real &RsdBiCGStab, const Real &Delta, int MaxBiCGStab, enum PlusMinus isign)
 Bi-CG stabilized.
SystemSolverResults_t Chroma::InvBiCGStabReliable (const LinearOperator< LatticeFermionD > &A, const LatticeFermionD &chi, LatticeFermionD &psi, const Real &RsdBiCGStab, const Real &Delta, int MaxBiCGStab, enum PlusMinus isign)
SystemSolverResults_t Chroma::InvBiCGStabReliable (const LinearOperator< LatticeFermionD > &A, const LinearOperator< LatticeFermionF > &AF, const LatticeFermionD &chi, LatticeFermionD &psi, const Real &RsdBiCGStab, const Real &Delta, int MaxBiCGStab, enum PlusMinus isign)
SystemSolverResults_t Chroma::InvCGReliable (const LinearOperator< LatticeFermionF > &A, const LatticeFermionF &chi, LatticeFermionF &psi, const Real &RsdCG, const Real &Delta, int MaxCG)
 Bi-CG stabilized.
SystemSolverResults_t Chroma::InvCGReliable (const LinearOperator< LatticeFermionD > &A, const LatticeFermionD &chi, LatticeFermionD &psi, const Real &RsdCG, const Real &Delta, int MaxCG)
SystemSolverResults_t Chroma::InvCGReliable (const LinearOperator< LatticeFermionD > &A, const LinearOperator< LatticeFermionF > &AF, const LatticeFermionD &chi, LatticeFermionD &psi, const Real &RsdCG, const Real &Delta, int MaxCG)
SystemSolverResults_t Chroma::InvIBiCGStabReliable (const LinearOperator< LatticeFermionF > &A, const LatticeFermionF &chi, LatticeFermionF &psi, const Real &RsdBiCGStab, const Real &Delta, int MaxBiCGStab, enum PlusMinus isign)
 Bi-CG stabilized.
SystemSolverResults_t Chroma::InvIBiCGStabReliable (const LinearOperator< LatticeFermionD > &A, const LatticeFermionD &chi, LatticeFermionD &psi, const Real &RsdBiCGStab, const Real &Delta, int MaxBiCGStab, enum PlusMinus isign)
SystemSolverResults_t Chroma::InvIBiCGStabReliable (const LinearOperator< LatticeFermionD > &A, const LinearOperator< LatticeFermionF > &AF, const LatticeFermionD &chi, LatticeFermionD &psi, const Real &RsdBiCGStab, const Real &Delta, int MaxBiCGStab, enum PlusMinus isign)

Typedefs

typedef SingletonHolder< ObjectFactory<
LinOpMultiSystemSolver< LatticeFermion >,
std::string, TYPELIST_3(XMLReader &,
const std::string &, Handle<
LinearOperator< LatticeFermion > >),
LinOpMultiSystemSolver< LatticeFermion
> *(*)(XMLReader &, const
std::string &, Handle< LinearOperator<
LatticeFermion > >), StringFactoryError > > 
Chroma::TheLinOpFermMultiSystemSolverFactory
 LinOp system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
LinOpMultiSystemSolver< LatticeStaggeredFermion >,
std::string, TYPELIST_3(XMLReader &,
const std::string &, Handle<
LinearOperator< LatticeStaggeredFermion > >),
LinOpMultiSystemSolver< LatticeStaggeredFermion
> *(*)(XMLReader &, const
std::string &, Handle< LinearOperator<
LatticeStaggeredFermion > >),
StringFactoryError > > 
Chroma::TheLinOpStagFermMultiSystemSolverFactory
 LinOp system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
MdagMMultiSystemSolverAccumulate<
LatticeFermion >, std::string,
TYPELIST_3(XMLReader &, const
std::string &, Handle< LinearOperator<
LatticeFermion > >), MdagMMultiSystemSolverAccumulate<
LatticeFermion > *(*)(XMLReader &,
const std::string &, Handle<
LinearOperator< LatticeFermion > >),
StringFactoryError > > 
Chroma::TheMdagMFermMultiSystemSolverAccumulateFactory
 MdagM system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
MdagMMultiSystemSolverAccumulateArray<
LatticeFermion >, std::string,
TYPELIST_3(XMLReader &, const
std::string &, Handle< LinearOperatorArray<
LatticeFermion > >), MdagMMultiSystemSolverAccumulateArray<
LatticeFermion > *(*)(XMLReader &,
const std::string &, Handle<
LinearOperatorArray< LatticeFermion > >),
StringFactoryError > > 
Chroma::TheMdagMFermMultiSystemSolverAccumulateArrayFactory
 MdagM system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
MdagMMultiSystemSolverAccumulate<
LatticeStaggeredFermion >,
std::string, TYPELIST_3(XMLReader &,
const std::string &, Handle<
LinearOperator< LatticeStaggeredFermion > >),
MdagMMultiSystemSolverAccumulate<
LatticeStaggeredFermion
> *(*)(XMLReader &, const
std::string &, Handle< LinearOperator<
LatticeStaggeredFermion > >),
StringFactoryError > > 
Chroma::TheMdagMStagFermMultiSystemSolverAccumulateFactory
 MdagM system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
MdagMMultiSystemSolver< LatticeFermion >,
std::string, TYPELIST_3(XMLReader &,
const std::string &, Handle<
LinearOperator< LatticeFermion > >),
MdagMMultiSystemSolver< LatticeFermion
> *(*)(XMLReader &, const
std::string &, Handle< LinearOperator<
LatticeFermion > >), StringFactoryError > > 
Chroma::TheMdagMFermMultiSystemSolverFactory
 MdagM system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
MdagMMultiSystemSolverArray<
LatticeFermion >, std::string,
TYPELIST_3(XMLReader &, const
std::string &, Handle< LinearOperatorArray<
LatticeFermion > >), MdagMMultiSystemSolverArray<
LatticeFermion > *(*)(XMLReader &,
const std::string &, Handle<
LinearOperatorArray< LatticeFermion > >),
StringFactoryError > > 
Chroma::TheMdagMFermMultiSystemSolverArrayFactory
 MdagM system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
MdagMMultiSystemSolver< LatticeStaggeredFermion >,
std::string, TYPELIST_3(XMLReader &,
const std::string &, Handle<
LinearOperator< LatticeStaggeredFermion > >),
MdagMMultiSystemSolver< LatticeStaggeredFermion
> *(*)(XMLReader &, const
std::string &, Handle< LinearOperator<
LatticeStaggeredFermion > >),
StringFactoryError > > 
Chroma::TheMdagMStagFermMultiSystemSolverFactory
 MdagM system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
LinOpSystemSolver< LatticeFermion >,
std::string, TYPELIST_4(XMLReader &,
const std::string &, FSHandle,
Handle< LinearOperator< LatticeFermion > >),
LinOpSystemSolver< LatticeFermion
> *(*)(XMLReader &, const
std::string &, FSHandle, Handle<
LinearOperator< LatticeFermion > >),
StringFactoryError > > 
Chroma::TheLinOpFermSystemSolverFactory
 LinOp system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
LinOpSystemSolverArray< LatticeFermion >,
std::string, TYPELIST_3(XMLReader &,
const std::string &, Handle<
LinearOperatorArray< LatticeFermion > >),
LinOpSystemSolverArray< LatticeFermion
> *(*)(XMLReader &, const
std::string &, Handle< LinearOperatorArray<
LatticeFermion > >), StringFactoryError > > 
Chroma::TheLinOpFermSystemSolverArrayFactory
 LinOp system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
LinOpSystemSolver< LatticeStaggeredFermion >,
std::string, TYPELIST_3(XMLReader &,
const std::string &, Handle<
LinearOperator< LatticeStaggeredFermion > >),
LinOpSystemSolver< LatticeStaggeredFermion
> *(*)(XMLReader &, const
std::string &, Handle< LinearOperator<
LatticeStaggeredFermion > >),
StringFactoryError > > 
Chroma::TheLinOpStagFermSystemSolverFactory
 LinOp system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
MdagMSystemSolver< LatticeFermion >,
std::string, TYPELIST_4(XMLReader &,
const std::string &, FactoryEnv::FSHandle,
Handle< LinearOperator< LatticeFermion > >),
MdagMSystemSolver< LatticeFermion
> *(*)(XMLReader &, const
std::string &, FactoryEnv::FSHandle,
Handle< LinearOperator< LatticeFermion > >),
StringFactoryError > > 
Chroma::TheMdagMFermSystemSolverFactory
 MdagM system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
MdagMSystemSolverArray< LatticeFermion >,
std::string, TYPELIST_3(XMLReader &,
const std::string &, Handle<
LinearOperatorArray< LatticeFermion > >),
MdagMSystemSolverArray< LatticeFermion
> *(*)(XMLReader &, const
std::string &, Handle< LinearOperatorArray<
LatticeFermion > >), StringFactoryError > > 
Chroma::TheMdagMFermSystemSolverArrayFactory
 MdagM system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
MdagMSystemSolver< LatticeStaggeredFermion >,
std::string, TYPELIST_3(XMLReader &,
const std::string &, Handle<
LinearOperator< LatticeStaggeredFermion > >),
MdagMSystemSolver< LatticeStaggeredFermion
> *(*)(XMLReader &, const
std::string &, Handle< LinearOperator<
LatticeStaggeredFermion > >),
StringFactoryError > > 
Chroma::TheMdagMStagFermSystemSolverFactory
 MdagM system solver factory (foundry).
typedef SingletonHolder< ObjectFactory<
PolyPrecSystemSolver< LatticeFermion >,
std::string, TYPELIST_3(XMLReader &,
const std::string &, Handle<
LinearOperator< LatticeFermion > >),
PolyPrecSystemSolver< LatticeFermion
> *(*)(XMLReader &, const
std::string &, Handle< LinearOperator<
LatticeFermion > >), StringFactoryError > > 
Chroma::ThePolyPrecFermSystemSolverFactory
 PolyPrec system solver factory (foundry).

Functions

template<typename T>
void Chroma::InvRelCG1_a (const LinearOperator< T > &A, const T &chi, T &psi, const Real &RsdCG, int MaxCG, int &n_count)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
template<typename T>
void Chroma::InvRelCG1 (const LinearOperator< T > &A, const T &chi, T &psi, const Real &RsdCG, int MaxCG, int &n_count)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
template<typename T>
void Chroma::InvRelCG2_a (const LinearOperator< T > &M, const T &chi, T &psi, const Real &RsdCG, int MaxCG, int &n_count)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
template<typename T>
void Chroma::InvRelCG2 (const LinearOperator< T > &M, const T &chi, T &psi, const Real &RsdCG, int MaxCG, int &n_count)
 Relaxed Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
template<typename T>
SystemSolverResults_t Chroma::InvCG1_a (const LinearOperator< T > &A, const T &chi, T &psi, const Real &RsdCG, int MaxCG, int MinCG=0)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
template<typename T>
SystemSolverResults_t Chroma::InvCG1 (const LinearOperator< T > &A, const T &chi, T &psi, const Real &RsdCG, int MaxCG, int MinCG=0)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
template<typename T>
void Chroma::InvCG1_a (const LinearOperatorArray< T > &A, const multi1d< T > &chi, multi1d< T > &psi, const Real &RsdCG, int MaxCG, int &n_count)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
template<typename T>
void Chroma::InvCG1 (const LinearOperatorArray< T > &A, const multi1d< T > &chi, multi1d< T > &psi, const Real &RsdCG, int MaxCG, int &n_count)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
template<typename T, typename RT>
SystemSolverResults_t Chroma::InvCG2_a (const LinearOperator< T > &M, const T &chi, T &psi, const RT &RsdCG, int MaxCG)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
template<typename T, typename C>
SystemSolverResults_t Chroma::InvCG2_a (const C &M, const multi1d< T > &chi, multi1d< T > &psi, const Real &RsdCG, int MaxCG)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
template<typename T>
SystemSolverResults_t Chroma::InvCG2_timings_a (const LinearOperator< T > &M, const T &chi, T &psi, int MaxCG)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
template<typename T>
SystemSolverResults_t Chroma::InvCG2_timings (const LinearOperator< T > &M, const T &chi, T &psi, int MaxCG)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
template<typename T>
void Chroma::MInvRelCG_a (const LinearOperator< T > &A, const T &chi, multi1d< T > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
 Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.
template<typename T>
void Chroma::MInvCG_a (const LinearOperator< T > &A, const T &chi, multi1d< T > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
 Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.
template<>
void Chroma::MInvCG (const LinearOperator< LatticeFermion > &M, const LatticeFermion &chi, multi1d< LatticeFermion > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
template<>
void Chroma::MInvCG (const DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &M, const LatticeFermion &chi, multi1d< LatticeFermion > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
template<typename T>
void Chroma::MInvCG (const LinearOperator< T > &A, const T &chi, multi1d< T > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
template<typename T, typename P, typename Q>
void Chroma::MInvCG (const DiffLinearOperator< T, P, Q > &A, const T &chi, multi1d< T > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
template<typename T>
void Chroma::MInvCG2_a (const LinearOperator< T > &M, const T &chi, multi1d< T > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
 Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.
template<>
void Chroma::MInvCG2 (const LinearOperator< LatticeFermion > &M, const LatticeFermion &chi, multi1d< LatticeFermion > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
template<>
void Chroma::MInvCG2 (const DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &M, const LatticeFermion &chi, multi1d< LatticeFermion > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
template<typename T>
void Chroma::MInvCG2 (const LinearOperator< T > &M, const T &chi, multi1d< T > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
template<typename T, typename P, typename Q>
void Chroma::MInvCG2 (const DiffLinearOperator< T, P, Q > &M, const T &chi, multi1d< T > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
template<typename T>
void Chroma::MInvCG2Accum_a (const LinearOperator< T > &M, const T &chi, T &psi, const Real &norm, const multi1d< Real > &residues, const multi1d< Real > &poles, const Real &RsdCG, int MaxCG, int &n_count)
 Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.
template<>
void Chroma::MInvCG2Accum (const LinearOperator< LatticeFermion > &M, const LatticeFermion &chi, LatticeFermion &psi, const Real &norm, const multi1d< Real > &residues, const multi1d< Real > &poles, const Real &RsdCG, int MaxCG, int &n_count)
template<>
void Chroma::MInvCG2Accum (const DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &M, const LatticeFermion &chi, LatticeFermion &psi, const Real &norm, const multi1d< Real > &residues, const multi1d< Real > &poles, const Real &RsdCG, int MaxCG, int &n_count)
template<typename T>
void Chroma::MInvCG2Accum (const LinearOperator< T > &M, const T &chi, T &psi, const Real &norm, const multi1d< Real > &residues, const multi1d< Real > &poles, const Real &RsdCG, int MaxCG, int &n_count)
template<typename T, typename P, typename Q>
void Chroma::MInvCG2Accum (const DiffLinearOperator< T, P, Q > &M, const T &chi, T &psi, const Real &norm, const multi1d< Real > &residues, const multi1d< Real > &poles, const Real &RsdCG, int MaxCG, int &n_count)
template<typename T, typename C>
void Chroma::MInvCGAccum_a (const C &A, const multi1d< T > &chi, multi1d< T > &psi, const Real &norm, const multi1d< Real > &residues, const multi1d< Real > &poles, const Real &RsdCG, const int MaxCG, int &n_count)
 Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.
template<>
void Chroma::MInvCGAccum (const LinearOperatorArray< LatticeFermion > &M, const multi1d< LatticeFermion > &chi, multi1d< LatticeFermion > &psi, const Real &norm, const multi1d< Real > &residues, const multi1d< Real > &poles, const Real &RsdCG, const int MaxCG, int &n_count)
template<>
void Chroma::MInvCGAccum (const DiffLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &M, const multi1d< LatticeFermion > &chi, multi1d< LatticeFermion > &psi, const Real &norm, const multi1d< Real > &residues, const multi1d< Real > &poles, const Real &RsdCG, const int MaxCG, int &n_count)
template<typename T>
void Chroma::MInvCGAccum (const LinearOperatorArray< T > &A, const multi1d< T > &chi, multi1d< T > &psi, const Real &norm, const multi1d< Real > &residues, const multi1d< Real > &poles, const Real &RsdCG, const int MaxCG, int &n_count)
template<typename T, typename P, typename Q>
void Chroma::MInvCGAccum (const DiffLinearOperatorArray< T, P, Q > &A, const multi1d< T > &chi, multi1d< T > &psi, const Real &norm, const multi1d< Real > &residues, const multi1d< Real > &poles, const Real &RsdCG, const int MaxCG, int &n_template)
template<typename T, typename C>
void Chroma::MInvCG_a (const C &A, const multi1d< T > &chi, multi1d< multi1d< T > > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
 Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.
template<>
void Chroma::MInvCG (const LinearOperatorArray< LatticeFermion > &M, const multi1d< LatticeFermion > &chi, multi1d< multi1d< LatticeFermion > > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
template<>
void Chroma::MInvCG (const DiffLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &M, const multi1d< LatticeFermion > &chi, multi1d< multi1d< LatticeFermion > > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
template<typename T>
void Chroma::MInvCG (const LinearOperatorArray< T > &A, const multi1d< T > &chi, multi1d< multi1d< T > > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
template<typename T, typename P, typename Q>
void Chroma::MInvCG (const DiffLinearOperatorArray< T, P, Q > &A, const multi1d< T > &chi, multi1d< multi1d< T > > &psi, const multi1d< Real > &shifts, const multi1d< Real > &RsdCG, int MaxCG, int &n_count)
void Chroma::read (XMLReader &xml, const string &path, MultiSysSolverCGParams &param)
void Chroma::write (XMLWriter &xml, const string &path, const MultiSysSolverCGParams &param)
void Chroma::read (XMLReader &xml, const string &path, MultiSysSolverMRParams &param)
void Chroma::write (XMLWriter &xml, const string &path, const MultiSysSolverMRParams &param)
template<typename T>
void Chroma::normGramSchmidt_T (multi1d< T > &vec, int f, int t, const Subset &sub)
 Gram-Schmidt with normalization.
template<typename T>
void Chroma::normGramSchmidtArray_T (multi2d< T > &vec, int f, int t, const Subset &sub)
 Gram-Schmidt with normalization.
void Chroma::read (XMLReader &xml, const string &path, SysSolverBiCGStabParams &param)
void Chroma::write (XMLWriter &xml, const string &path, const SysSolverBiCGStabParams &param)
void Chroma::read (XMLReader &xml, const string &path, SysSolverCGParams &param)
void Chroma::write (XMLWriter &xml, const string &path, const SysSolverCGParams &param)
void Chroma::read (XMLReader &xml, const string &path, SysSolverEigCGParams &param)
void Chroma::write (XMLWriter &xml, const string &path, const SysSolverEigCGParams &param)
void Chroma::read (XMLReader &xml, const string &path, SysSolverMRParams &param)
void Chroma::write (XMLWriter &xml, const string &path, const SysSolverMRParams &param)
void Chroma::read (XMLReader &xml, const string &path, SysSolverOptEigBiCGParams &param)
void Chroma::write (XMLWriter &xml, const string &path, const SysSolverOptEigBiCGParams &param)
void Chroma::read (XMLReader &xml, const string &path, SysSolverOptEigCGParams &param)
void Chroma::write (XMLWriter &xml, const string &path, const SysSolverOptEigCGParams &param)
void InvCG2EvenOddPrecWilsLinOp (const WilsonDslash &D, const LFerm &chi, LFerm &psi, const LScal &mass, const LScal &RsdCG, int MaxCG, int &n_count)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
void InvCG2EvenOddPrecWilsLinOpTHack (const WilsonDslash &D, const LFerm &chi, LFerm &psi, const LScal &mass, const LScal &RsdCG, int MaxCG, int &n_count)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.
void WlInvCG2 (const LinearOperator &M, const LatticeFermion &chi, LatticeFermion &psi, const Real &RsdCG, int MaxCG, int &n_count)
 Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

Detailed Description

Various inverters for fermion linear operators

Typedef Documentation

typedef SingletonHolder< ObjectFactory<LinOpMultiSystemSolver<LatticeFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperator<LatticeFermion> >), LinOpMultiSystemSolver<LatticeFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperator<LatticeFermion> >), StringFactoryError> > Chroma::TheLinOpFermMultiSystemSolverFactory

LinOp system solver factory (foundry).

Definition at line 28 of file multi_syssolver_linop_factory.h.

typedef SingletonHolder< ObjectFactory<LinOpSystemSolverArray<LatticeFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperatorArray<LatticeFermion> >), LinOpSystemSolverArray<LatticeFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperatorArray<LatticeFermion> >), StringFactoryError> > Chroma::TheLinOpFermSystemSolverArrayFactory

LinOp system solver factory (foundry).

Definition at line 77 of file syssolver_linop_factory.h.

typedef SingletonHolder< ObjectFactory<LinOpSystemSolver<LatticeFermion>, std::string, TYPELIST_4(XMLReader&, const std::string&, FSHandle, Handle< LinearOperator<LatticeFermion> >), LinOpSystemSolver<LatticeFermion>* (*)(XMLReader&, const std::string&, FSHandle, Handle< LinearOperator<LatticeFermion> >), StringFactoryError> > Chroma::TheLinOpFermSystemSolverFactory

LinOp system solver factory (foundry).

Definition at line 40 of file syssolver_linop_factory.h.

typedef SingletonHolder< ObjectFactory<LinOpMultiSystemSolver<LatticeStaggeredFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperator<LatticeStaggeredFermion> >), LinOpMultiSystemSolver<LatticeStaggeredFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperator<LatticeStaggeredFermion> >), StringFactoryError> > Chroma::TheLinOpStagFermMultiSystemSolverFactory

LinOp system solver factory (foundry).

Definition at line 56 of file multi_syssolver_linop_factory.h.

typedef SingletonHolder< ObjectFactory<LinOpSystemSolver<LatticeStaggeredFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperator<LatticeStaggeredFermion> >), LinOpSystemSolver<LatticeStaggeredFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperator<LatticeStaggeredFermion> >), StringFactoryError> > Chroma::TheLinOpStagFermSystemSolverFactory

LinOp system solver factory (foundry).

Definition at line 91 of file syssolver_linop_factory.h.

typedef SingletonHolder< ObjectFactory<MdagMMultiSystemSolverAccumulateArray<LatticeFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperatorArray<LatticeFermion> >), MdagMMultiSystemSolverAccumulateArray<LatticeFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperatorArray<LatticeFermion> >), StringFactoryError> > Chroma::TheMdagMFermMultiSystemSolverAccumulateArrayFactory

MdagM system solver factory (foundry).

Definition at line 41 of file multi_syssolver_mdagm_accumulate_factory.h.

typedef SingletonHolder< ObjectFactory<MdagMMultiSystemSolverAccumulate<LatticeFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperator<LatticeFermion> >), MdagMMultiSystemSolverAccumulate<LatticeFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperator<LatticeFermion> >), StringFactoryError> > Chroma::TheMdagMFermMultiSystemSolverAccumulateFactory

MdagM system solver factory (foundry).

Definition at line 28 of file multi_syssolver_mdagm_accumulate_factory.h.

typedef SingletonHolder< ObjectFactory<MdagMMultiSystemSolverArray<LatticeFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperatorArray<LatticeFermion> >), MdagMMultiSystemSolverArray<LatticeFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperatorArray<LatticeFermion> >), StringFactoryError> > Chroma::TheMdagMFermMultiSystemSolverArrayFactory

MdagM system solver factory (foundry).

Definition at line 41 of file multi_syssolver_mdagm_factory.h.

typedef SingletonHolder< ObjectFactory<MdagMMultiSystemSolver<LatticeFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperator<LatticeFermion> >), MdagMMultiSystemSolver<LatticeFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperator<LatticeFermion> >), StringFactoryError> > Chroma::TheMdagMFermMultiSystemSolverFactory

MdagM system solver factory (foundry).

Definition at line 28 of file multi_syssolver_mdagm_factory.h.

typedef SingletonHolder< ObjectFactory<MdagMSystemSolverArray<LatticeFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperatorArray<LatticeFermion> >), MdagMSystemSolverArray<LatticeFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperatorArray<LatticeFermion> >), StringFactoryError> > Chroma::TheMdagMFermSystemSolverArrayFactory

MdagM system solver factory (foundry).

Definition at line 75 of file syssolver_mdagm_factory.h.

typedef SingletonHolder< ObjectFactory<MdagMSystemSolver<LatticeFermion>, std::string, TYPELIST_4(XMLReader&, const std::string&, FactoryEnv::FSHandle, Handle< LinearOperator<LatticeFermion> >), MdagMSystemSolver<LatticeFermion>* (*)(XMLReader&, const std::string&, FactoryEnv::FSHandle, Handle< LinearOperator<LatticeFermion> >), StringFactoryError> > Chroma::TheMdagMFermSystemSolverFactory

MdagM system solver factory (foundry).

Definition at line 40 of file syssolver_mdagm_factory.h.

typedef SingletonHolder< ObjectFactory<MdagMMultiSystemSolverAccumulate<LatticeStaggeredFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperator<LatticeStaggeredFermion> >), MdagMMultiSystemSolverAccumulate<LatticeStaggeredFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperator<LatticeStaggeredFermion> >), StringFactoryError> > Chroma::TheMdagMStagFermMultiSystemSolverAccumulateFactory

MdagM system solver factory (foundry).

Definition at line 54 of file multi_syssolver_mdagm_accumulate_factory.h.

typedef SingletonHolder< ObjectFactory<MdagMMultiSystemSolver<LatticeStaggeredFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperator<LatticeStaggeredFermion> >), MdagMMultiSystemSolver<LatticeStaggeredFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperator<LatticeStaggeredFermion> >), StringFactoryError> > Chroma::TheMdagMStagFermMultiSystemSolverFactory

MdagM system solver factory (foundry).

Definition at line 54 of file multi_syssolver_mdagm_factory.h.

typedef SingletonHolder< ObjectFactory<MdagMSystemSolver<LatticeStaggeredFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperator<LatticeStaggeredFermion> >), MdagMSystemSolver<LatticeStaggeredFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperator<LatticeStaggeredFermion> >), StringFactoryError> > Chroma::TheMdagMStagFermSystemSolverFactory

MdagM system solver factory (foundry).

Definition at line 88 of file syssolver_mdagm_factory.h.

typedef SingletonHolder< ObjectFactory<PolyPrecSystemSolver<LatticeFermion>, std::string, TYPELIST_3(XMLReader&, const std::string&, Handle< LinearOperator<LatticeFermion> >), PolyPrecSystemSolver<LatticeFermion>* (*)(XMLReader&, const std::string&, Handle< LinearOperator<LatticeFermion> >), StringFactoryError> > Chroma::ThePolyPrecFermSystemSolverFactory

PolyPrec system solver factory (foundry).

Definition at line 27 of file syssolver_polyprec_factory.h.


Function Documentation

template<typename T>
SystemSolverResults_t Chroma::InvBiCGStab ( const LinearOperator< T > &  A,
const T chi,
T psi,
const Real &  RsdBiCGStab,
int  MaxBiCGStab,
enum PlusMinus  isign 
)

Bi-CG stabilized.

SystemSolverResults_t Chroma::InvBiCGStabReliable ( const LinearOperator< LatticeFermionD > &  A,
const LinearOperator< LatticeFermionF > &  AF,
const LatticeFermionD &  chi,
LatticeFermionD &  psi,
const Real &  RsdBiCGStab,
const Real &  Delta,
int  MaxBiCGStab,
enum PlusMinus  isign 
)

Definition at line 324 of file reliable_bicgstab.cc.

SystemSolverResults_t Chroma::InvBiCGStabReliable ( const LinearOperator< LatticeFermionD > &  A,
const LatticeFermionD &  chi,
LatticeFermionD &  psi,
const Real &  RsdBiCGStab,
const Real &  Delta,
int  MaxBiCGStab,
enum PlusMinus  isign 
)

Definition at line 310 of file reliable_bicgstab.cc.

SystemSolverResults_t Chroma::InvBiCGStabReliable ( const LinearOperator< LatticeFermionF > &  A,
const LatticeFermionF &  chi,
LatticeFermionF &  psi,
const Real &  RsdBiCGStab,
const Real &  Delta,
int  MaxBiCGStab,
enum PlusMinus  isign 
)

Bi-CG stabilized.

Definition at line 296 of file reliable_bicgstab.cc.

Referenced by Chroma::MdagMSysSolverReliableBiCGStabClover::operator()(), and Chroma::LinOpSysSolverReliableBiCGStabClover::operator()().

template<typename T>
SystemSolverResults_t Chroma::InvBiCRStab ( const LinearOperator< T > &  A,
const T chi,
T psi,
const Real &  RsdBiCGStab,
int  MaxBiCGStab,
enum PlusMinus  isign 
)

Bi-CG stabilized.

template<typename T>
void Chroma::InvCG1 ( const LinearOperatorArray< T > &  A,
const multi1d< T > &  chi,
multi1d< T > &  psi,
const Real &  RsdCG,
int  MaxCG,
int &  n_count 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A is hermitian

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - A . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <A p[k],p[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] A. p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
n_count Number of CG iteration (Write)
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: +

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

template<typename T>
SystemSolverResults_t Chroma::InvCG1 ( const LinearOperator< T > &  A,
const T chi,
T psi,
const Real &  RsdCG,
int  MaxCG,
int  MinCG = 0 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A is hermitian

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - A. Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <p[k],A p[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] A p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
A Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
Returns:
res System solver results
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > ap Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

template<typename T>
void Chroma::InvCG1_a ( const LinearOperatorArray< T > &  A,
const multi1d< T > &  chi,
multi1d< T > &  psi,
const Real &  RsdCG,
int  MaxCG,
int &  n_count 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A is hermitian

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - M^dag . M . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <Mp[k],Mp[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] M^dag . M . p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
n_count Number of CG iteration (Write)
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

Definition at line 68 of file invcg1_array.cc.

References END_CODE, Chroma::PLUS, START_CODE, and Chroma::LinearOperatorArray< T >::subset().

template<typename T>
SystemSolverResults_t Chroma::InvCG1_a ( const LinearOperator< T > &  A,
const T chi,
T psi,
const Real &  RsdCG,
int  MaxCG,
int  MinCG = 0 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A is Hermitian Positive Definite

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - A. Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <p[k],Ap[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] A. p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Rea/Write)
MaxCG Maximum CG iterations (Read)
Returns:
res System solver results
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > ap Temporary for A.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

Definition at line 70 of file invcg1.cc.

References END_CODE, Chroma::SystemSolverResults_t::n_count, Chroma::PLUS, Chroma::SystemSolverResults_t::resid, START_CODE, Chroma::LinearOperator< T >::subset(), and T.

Referenced by Chroma::InvCG1().

SystemSolverResults_t Chroma::InvCG2 ( const LinearOperatorArray< LatticeFermionD > &  M,
const multi1d< LatticeFermionD > &  chi,
multi1d< LatticeFermionD > &  psi,
const Real &  RsdCG,
int  MaxCG 
)

Definition at line 293 of file invcg2_array.cc.

References Chroma::InvCG2_a().

SystemSolverResults_t Chroma::InvCG2 ( const LinearOperator< LatticeStaggeredFermionD > &  M,
const LatticeStaggeredFermionD &  chi,
LatticeStaggeredFermionD &  psi,
const Real &  RsdCG,
int  MaxCG 
)

Definition at line 287 of file invcg2.cc.

SystemSolverResults_t Chroma::InvCG2 ( const LinearOperator< LatticeStaggeredFermionF > &  M,
const LatticeStaggeredFermionF &  chi,
LatticeStaggeredFermionF &  psi,
const Real &  RsdCG,
int  MaxCG 
)

Definition at line 276 of file invcg2.cc.

SystemSolverResults_t Chroma::InvCG2 ( const LinearOperator< LatticeFermionD > &  M,
const LatticeFermionD &  chi,
LatticeFermionD &  psi,
const Real &  RsdCG,
int  MaxCG 
)

Definition at line 259 of file invcg2.cc.

SystemSolverResults_t Chroma::InvCG2 ( const LinearOperatorArray< LatticeFermionF > &  M,
const multi1d< LatticeFermionF > &  chi,
multi1d< LatticeFermionF > &  psi,
const Real &  RsdCG,
int  MaxCG 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A = M^dag . M

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - M^dag . M . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <Mp[k],Mp[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] M^dag . M . p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
n_count Number of CG iteration (Write)
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

Definition at line 282 of file invcg2_array.cc.

References Chroma::InvCG2_a().

SystemSolverResults_t Chroma::InvCG2 ( const LinearOperator< LatticeFermionF > &  M,
const LatticeFermionF &  chi,
LatticeFermionF &  psi,
const Real &  RsdCG,
int  MaxCG 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A = M^dag . M

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - M^dag . M . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <Mp[k],Mp[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] M^dag . M . p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
n_count Number of CG iteration (Write)
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

Definition at line 241 of file invcg2.cc.

Referenced by main(), Chroma::UnprecPPDWF4DLinOp< T, P, Q >::operator()(), Chroma::UnprecPDWF4DLinOp< T, P, Q >::operator()(), Chroma::OvUnprecCF5DQprop< T >::operator()(), Chroma::OvExt5DQprop< T >::operator()(), Chroma::OvHTCFZ5DQprop< T >::operator()(), Chroma::UnprecDWFTransfMdagMLinOp::operator()(), Chroma::UnprecDWFTransfLinOp::operator()(), Chroma::UnprecDWF4DLinOp< T >::operator()(), Chroma::MdagMSysSolverIBiCGStab< T >::operator()(), Chroma::MdagMSysSolverCGLFClover::operator()(), Chroma::MdagMSysSolverCGArray< T >::operator()(), Chroma::MdagMSysSolverCG< T >::operator()(), Chroma::MdagMSysSolverBiCGStab< T >::operator()(), Chroma::LinOpSysSolverCGArray< T >::operator()(), Chroma::LinOpSysSolverCG< T >::operator()(), Chroma::Ovlap4DQprop::operator()(), Chroma::ContFrac5DQprop< T, P, Q >::operator()(), Chroma::PrecOvExt5DQprop< T, P, Q >::operator()(), Chroma::HtContFrac5DQprop< T, P, Q >::operator()(), and Chroma::sysSolver().

template<typename T, typename C>
SystemSolverResults_t Chroma::InvCG2_a ( const C &  M,
const multi1d< T > &  chi,
multi1d< T > &  psi,
const Real &  RsdCG,
int  MaxCG 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A = M^dag . M

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - M^dag . M . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <Mp[k],Mp[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] M^dag . M . p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
Returns:
res System solver results
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

Definition at line 69 of file invcg2_array.cc.

References END_CODE, Chroma::MINUS, Chroma::SystemSolverResults_t::n_count, Chroma::PLUS, Chroma::SystemSolverResults_t::resid, and START_CODE.

template<typename T, typename RT>
SystemSolverResults_t Chroma::InvCG2_a ( const LinearOperator< T > &  M,
const T chi,
T psi,
const RT &  RsdCG,
int  MaxCG 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A = M^dag . M

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - M^dag . M . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <Mp[k],Mp[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] M^dag . M . p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
Returns:
res System solver results
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

Definition at line 73 of file invcg2.cc.

References END_CODE, Chroma::MINUS, Chroma::SystemSolverResults_t::n_count, Chroma::LinearOperator< T >::nFlops(), Chroma::PLUS, Chroma::SystemSolverResults_t::resid, START_CODE, Chroma::LinearOperator< T >::subset(), and T.

Referenced by Chroma::InvCG2().

template<typename T>
SystemSolverResults_t Chroma::InvCG2_timings ( const LinearOperator< T > &  M,
const T chi,
T psi,
int  MaxCG 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A = M^dag . M

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - M^dag . M . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <Mp[k],Mp[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] M^dag . M . p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
n_count Number of CG iteration (Write)
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

template<typename T>
SystemSolverResults_t Chroma::InvCG2_timings_a ( const LinearOperator< T > &  M,
const T chi,
T psi,
int  MaxCG 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A = M^dag . M

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - M^dag . M . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <Mp[k],Mp[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] M^dag . M . p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
n_count Number of CG iteration (Write)
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

Definition at line 71 of file invcg2_timing_hacks.cc.

References END_CODE, Chroma::MINUS, Chroma::SystemSolverResults_t::n_count, Chroma::LinearOperator< T >::nFlops(), Chroma::PLUS, Chroma::SystemSolverResults_t::resid, START_CODE, Chroma::LinearOperator< T >::subset(), and T.

Referenced by Chroma::InvCG2_timings().

void InvCG2EvenOddPrecWilsLinOp ( const WilsonDslash D,
const LFerm chi,
LFerm psi,
const LScal mass,
const LScal RsdCG,
int  MaxCG,
int &  n_count 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A = M^dag . M

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - M^dag . M . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <Mp[k],Mp[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] M^dag . M . p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
n_count Number of CG iteration (Write)
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

Definition at line 67 of file invcg2_prec_wilson.cc.

References AT_REAL, Chroma::DOUBLE, FIRST_ELEM, Chroma::MINUS, Chroma::PLUS, and vaxpy3_norm().

void InvCG2EvenOddPrecWilsLinOpTHack ( const WilsonDslash D,
const LFerm chi,
LFerm psi,
const LScal mass,
const LScal RsdCG,
int  MaxCG,
int &  n_count 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A = M^dag . M

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - M^dag . M . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <Mp[k],Mp[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] M^dag . M . p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
n_count Number of CG iteration (Write)
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

Definition at line 67 of file invcg2_timing_hacks_2.cc.

References AT_REAL, Chroma::DOUBLE, FIRST_ELEM, Chroma::MINUS, Chroma::PLUS, and vaxpy3_norm().

SystemSolverResults_t Chroma::InvCGReliable ( const LinearOperator< LatticeFermionD > &  A,
const LinearOperator< LatticeFermionF > &  AF,
const LatticeFermionD &  chi,
LatticeFermionD &  psi,
const Real &  RsdCG,
const Real &  Delta,
int  MaxCG 
)

Definition at line 219 of file reliable_cg.cc.

SystemSolverResults_t Chroma::InvCGReliable ( const LinearOperator< LatticeFermionD > &  A,
const LatticeFermionD &  chi,
LatticeFermionD &  psi,
const Real &  RsdCG,
const Real &  Delta,
int  MaxCG 
)

Definition at line 207 of file reliable_cg.cc.

SystemSolverResults_t Chroma::InvCGReliable ( const LinearOperator< LatticeFermionF > &  A,
const LatticeFermionF &  chi,
LatticeFermionF &  psi,
const Real &  RsdCG,
const Real &  Delta,
int  MaxCG 
)

Bi-CG stabilized.

Definition at line 194 of file reliable_cg.cc.

Referenced by Chroma::MdagMSysSolverReliableCGClover::operator()(), and Chroma::LinOpSysSolverReliableCGClover::operator()().

template<typename T>
SystemSolverResults_t Chroma::InvIBiCGStab ( const LinearOperator< T > &  A,
const T chi,
T psi,
const Real &  RsdBiCGStab,
int  MaxBiCGStab,
enum PlusMinus  isign 
)

Bi-CG stabilized.

SystemSolverResults_t Chroma::InvIBiCGStabReliable ( const LinearOperator< LatticeFermionD > &  A,
const LinearOperator< LatticeFermionF > &  AF,
const LatticeFermionD &  chi,
LatticeFermionD &  psi,
const Real &  RsdBiCGStab,
const Real &  Delta,
int  MaxBiCGStab,
enum PlusMinus  isign 
)

Definition at line 467 of file reliable_ibicgstab.cc.

SystemSolverResults_t Chroma::InvIBiCGStabReliable ( const LinearOperator< LatticeFermionD > &  A,
const LatticeFermionD &  chi,
LatticeFermionD &  psi,
const Real &  RsdBiCGStab,
const Real &  Delta,
int  MaxBiCGStab,
enum PlusMinus  isign 
)

Definition at line 453 of file reliable_ibicgstab.cc.

SystemSolverResults_t Chroma::InvIBiCGStabReliable ( const LinearOperator< LatticeFermionF > &  A,
const LatticeFermionF &  chi,
LatticeFermionF &  psi,
const Real &  RsdBiCGStab,
const Real &  Delta,
int  MaxBiCGStab,
enum PlusMinus  isign 
)

Bi-CG stabilized.

Definition at line 439 of file reliable_ibicgstab.cc.

Referenced by Chroma::MdagMSysSolverReliableIBiCGStabClover::operator()(), and Chroma::LinOpSysSolverReliableIBiCGStabClover::operator()().

template<>
SystemSolverResults_t Chroma::InvMR ( const LinearOperator< LatticeStaggeredFermion > &  M,
const LatticeStaggeredFermion &  chi,
LatticeStaggeredFermion &  psi,
const Real &  MRovpar,
const Real &  RsdMR,
int  MaxMR,
enum PlusMinus  isign 
)

Definition at line 201 of file invmr.cc.

References Chroma::InvMR_a().

template<>
SystemSolverResults_t Chroma::InvMR ( const LinearOperator< LatticeFermion > &  M,
const LatticeFermion &  chi,
LatticeFermion &  psi,
const Real &  MRovpar,
const Real &  RsdMR,
int  MaxMR,
enum PlusMinus  isign 
)

Definition at line 186 of file invmr.cc.

References Chroma::InvMR_a().

Referenced by Chroma::MdagMSysSolverMR< T >::operator()(), Chroma::LinOpSysSolverMR< T >::operator()(), and Chroma::Ovlap4DQprop::operator()().

template<typename T>
SystemSolverResults_t Chroma::InvMR ( const LinearOperator< T > &  M,
const T chi,
T psi,
const Real &  MRovpar,
const Real &  RsdMR,
int  MaxMR,
enum PlusMinus  isign 
)

Minimal-residual (MR) algorithm for a generic Linear Operator.

This subroutine uses the Minimal Residual (MR) algorithm to determine the solution of the set of linear equations. Here we allow M to be nonhermitian.

Chi = M . Psi

Algorithm:

Psi[0] Argument r[0] := Chi - M . Psi[0] ; Initial residual IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO MR iterations a[k-1] := <M.r[k-1],r[k-1]> / <M.r[k-1],M.r[k-1]> ; ap[k-1] := MRovpar * a[k] ; Overrelaxtion step Psi[k] += ap[k-1] r[k-1] ; New solution vector r[k] -= ap[k-1] A . r[k-1] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged?

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG MR residual accuracy (Read)
MRovpar Overrelaxation parameter (Read)
MaxCG Maximum MR iterations (Read)
Local Variables:

r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k MR iteration counter a a[k] d < M.r[k], M.r[k] > R_Aux Temporary for M.Psi Mr Temporary for M.r

Global Variables:

MaxCG Maximum number of MR iterations allowed RsdCG Maximum acceptable MR residual (relative to source)

Subroutines:

M Apply matrix to vector

template<typename T, typename C>
SystemSolverResults_t Chroma::InvMR_a ( const C &  M,
const T chi,
T psi,
const Real &  MRovpar,
const Real &  RsdMR,
int  MaxMR,
enum PlusMinus  isign 
)

Minimal-residual (MR) algorithm for a generic Linear Operator.

This subroutine uses the Minimal Residual (MR) algorithm to determine the solution of the set of linear equations. Here we allow M to be nonhermitian.

Chi = M . Psi

Algorithm:

Psi[0] Argument r[0] := Chi - M . Psi[0] ; Initial residual IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO MR iterations a[k-1] := <M.r[k-1],r[k-1]> / <M.r[k-1],M.r[k-1]> ; ap[k-1] := MRovpar * a[k] ; Overrelaxtion step Psi[k] += ap[k-1] r[k-1] ; New solution vector r[k] -= ap[k-1] A . r[k-1] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged?

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG MR residual accuracy (Read)
MRovpar Overrelaxation parameter (Read)
MaxMR Maximum MR iterations (Read)
Local Variables:

r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k MR iteration counter a a[k] d < M.r[k], M.r[k] > R_Aux Temporary for M.Psi Mr Temporary for M.r

Global Variables:

MaxMR Maximum number of MR iterations allowed RsdCG Maximum acceptable MR residual (relative to source)

Subroutines:

M Apply matrix to vector

Definition at line 67 of file invmr.cc.

References END_CODE, Chroma::SystemSolverResults_t::n_count, Chroma::SystemSolverResults_t::resid, START_CODE, and T.

Referenced by Chroma::InvMR().

template<typename T>
void Chroma::InvRelCG1 ( const LinearOperator< T > &  A,
const T chi,
T psi,
const Real &  RsdCG,
int  MaxCG,
int &  n_count 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A is hermitian

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - A. Psi[0] ; Initial residual p[1] := r[0] ; Initial direction c := cp := || r[0] ||^2 zeta := 1/c;

IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations inner_tol := RsdCG*||chi||*||p||*sqrt(zeta)

q := A(inner_tol) p

a[k] := |r[k-1]|**2 / <q,p[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] q ; New residual c := <r , r> zeta := zeta + 1/c

b[k+1] := |r[k]|**2 / |r[k-1]|**2 = c/cp; p[k+1] := r[k] + b[k+1] p[k]; New direction

cp := c IF ( c < RsdCG^2 || chi || ) RETURN

Arguments:

Parameters:
A Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
n_count Number of CG iteration (Write)
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > ap Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

template<typename T>
void Chroma::InvRelCG1_a ( const LinearOperator< T > &  A,
const T chi,
T psi,
const Real &  RsdCG,
int  MaxCG,
int &  n_count 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

Definition at line 21 of file inv_rel_cg1.cc.

References END_CODE, Chroma::PLUS, q, START_CODE, Chroma::LinearOperator< T >::subset(), and T.

Referenced by Chroma::InvRelCG1().

template<typename T>
void Chroma::InvRelCG2 ( const LinearOperator< T > &  M,
const T chi,
T psi,
const Real &  RsdCG,
int  MaxCG,
int &  n_count 
)

Relaxed Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = M^{dag}M . Psi

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - M^dag . M . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction c = cp := || r[0] ||^2 zeta := 1/c;

IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged?

FOR k FROM 1 TO MaxCG DO CG iterations

inner_tol := RsdCG*||chi||*||p||*sqrt(zeta)/2; q := M^{dag}(tol) M(tol) p; a[k] := c / <q , p> Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] q; New residual c := || r[k]^2 || zeta = zeta + 1/c; b[k+1] := |r[k]|**2 / |r[k-1]|**2 = c/cp; p[k+1] := r[k] + b[k+1] p[k]; New direction cp := c; IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged?

Arguments:

Parameters:
M ApproxLinear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
n_count Number of CG iteration (Write)
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

template<typename T>
void Chroma::InvRelCG2_a ( const LinearOperator< T > &  M,
const T chi,
T psi,
const Real &  RsdCG,
int  MaxCG,
int &  n_count 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A = M^dag . M

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - M^dag . M . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <Mp[k],Mp[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] M^dag . M . p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
n_count Number of CG iteration (Write)
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

Definition at line 65 of file inv_rel_cg2.cc.

References Chroma::MINUS, Chroma::PLUS, Chroma::LinearOperator< T >::subset(), and T.

Referenced by Chroma::InvRelCG2().

template<typename T, typename P, typename Q>
void Chroma::MInvCG ( const DiffLinearOperatorArray< T, P, Q > &  A,
const multi1d< T > &  chi,
multi1d< multi1d< T > > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

template<typename T>
void Chroma::MInvCG ( const LinearOperatorArray< T > &  A,
const multi1d< T > &  chi,
multi1d< multi1d< T > > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

template<>
void Chroma::MInvCG ( const DiffLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &  M,
const multi1d< LatticeFermion > &  chi,
multi1d< multi1d< LatticeFermion > > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

Definition at line 454 of file minvcg_array.cc.

References Chroma::MInvCG_a(), and Chroma::psi().

template<>
void Chroma::MInvCG ( const LinearOperatorArray< LatticeFermion > &  M,
const multi1d< LatticeFermion > &  chi,
multi1d< multi1d< LatticeFermion > > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

Definition at line 440 of file minvcg_array.cc.

References Chroma::MInvCG_a(), and Chroma::psi().

template<typename T, typename P, typename Q>
void Chroma::MInvCG ( const DiffLinearOperator< T, P, Q > &  A,
const T chi,
multi1d< T > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

template<typename T>
void Chroma::MInvCG ( const LinearOperator< T > &  A,
const T chi,
multi1d< T > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

template<>
void Chroma::MInvCG ( const DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &  M,
const LatticeFermion &  chi,
multi1d< LatticeFermion > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

Definition at line 422 of file minvcg.cc.

References Chroma::MInvCG_a().

template<>
void Chroma::MInvCG ( const LinearOperator< LatticeFermion > &  M,
const LatticeFermion &  chi,
multi1d< LatticeFermion > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

Definition at line 408 of file minvcg.cc.

References Chroma::MInvCG_a().

Referenced by Chroma::OverlapFermActBase::multiQprop(), and Chroma::MdagMMultiSysSolverCGArray< T >::operator()().

template<typename T, typename P, typename Q>
void Chroma::MInvCG2 ( const DiffLinearOperator< T, P, Q > &  M,
const T chi,
multi1d< T > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

template<typename T>
void Chroma::MInvCG2 ( const LinearOperator< T > &  M,
const T chi,
multi1d< T > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

template<>
void Chroma::MInvCG2 ( const DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &  M,
const LatticeFermion &  chi,
multi1d< LatticeFermion > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

Definition at line 388 of file minvcg2.cc.

References Chroma::MInvCG2_a().

template<>
void Chroma::MInvCG2 ( const LinearOperator< LatticeFermion > &  M,
const LatticeFermion &  chi,
multi1d< LatticeFermion > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

Definition at line 368 of file minvcg2.cc.

References Chroma::MInvCG2_a().

Referenced by Chroma::MdagMMultiSysSolverCG< T >::operator()().

template<typename T>
void Chroma::MInvCG2_a ( const LinearOperator< T > &  M,
const T chi,
multi1d< T > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations Method used is described in Jegerlehner, hep-lat/9708029

We are searching in a subspace orthogonal to the eigenvectors EigVec of A. The source chi is assumed to already be orthogonal!

Chi = M^ M . Psi

Algorithm:

Psi[0] := 0; Zeroed r[0] := Chi; Initial residual p[1] := Chi ; Initial direction b[0] := |r[0]|**2 / <M p[0], M p[0]> ; z[0] := 1 / (1 - (shift - shift(0))*b) bs[0] := b[0] * z[0] r[1] += b[k] M^ M . p[0] ; New residual Psi[1] = - b[k] p[k] ; Starting solution vector IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k]|**2 / |r[k-1]|**2 ; p[k] := r[k] + a[k] p[k-1]; New direction b[k+1] := |r[k]|**2 / <M p[k], Mp[k]> ; r[k+1] += b[k+1] M^ M . p[k] ; New residual Psi[k+1] -= b[k+1] p[k] ; New solution vector IF |[k+1]| <= RsdCG |Chi| THEN RETURN; Converged?

Arguments:

A Hermitian linear operator (Read) Chi Source (Read) Psi array of solutions (Write) shifts shifts of form A + mass (Read) RsdCG residual accuracy (Read/Write) n_count Number of CG iteration (Write)

Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Ap Temporary for M.p

MaxCG Maximum number of CG iterations allowed

Subroutines: A Apply matrix hermitian A to vector

Definition at line 76 of file minvcg2.cc.

References Chroma::chi_norm, END_CODE, Chroma::MINUS, Chroma::LinearOperator< T >::nFlops(), Chroma::PLUS, START_CODE, Chroma::LinearOperator< T >::subset(), and T.

Referenced by Chroma::MInvCG2().

template<typename T, typename P, typename Q>
void Chroma::MInvCG2Accum ( const DiffLinearOperator< T, P, Q > &  M,
const T chi,
T psi,
const Real &  norm,
const multi1d< Real > &  residues,
const multi1d< Real > &  poles,
const Real &  RsdCG,
int  MaxCG,
int &  n_count 
)

template<typename T>
void Chroma::MInvCG2Accum ( const LinearOperator< T > &  M,
const T chi,
T psi,
const Real &  norm,
const multi1d< Real > &  residues,
const multi1d< Real > &  poles,
const Real &  RsdCG,
int  MaxCG,
int &  n_count 
)

template<>
void Chroma::MInvCG2Accum ( const DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &  M,
const LatticeFermion &  chi,
LatticeFermion &  psi,
const Real &  norm,
const multi1d< Real > &  residues,
const multi1d< Real > &  poles,
const Real &  RsdCG,
int  MaxCG,
int &  n_count 
)

Definition at line 389 of file minvcg2_accum.cc.

References Chroma::MInvCG2Accum_a().

template<>
void Chroma::MInvCG2Accum ( const LinearOperator< LatticeFermion > &  M,
const LatticeFermion &  chi,
LatticeFermion &  psi,
const Real &  norm,
const multi1d< Real > &  residues,
const multi1d< Real > &  poles,
const Real &  RsdCG,
int  MaxCG,
int &  n_count 
)

Definition at line 373 of file minvcg2_accum.cc.

References Chroma::MInvCG2Accum_a().

Referenced by Chroma::MdagMMultiSysSolverCGAccumulate< T >::operator()().

template<typename T>
void Chroma::MInvCG2Accum_a ( const LinearOperator< T > &  M,
const T chi,
T psi,
const Real &  norm,
const multi1d< Real > &  residues,
const multi1d< Real > &  poles,
const Real &  RsdCG,
int  MaxCG,
int &  n_count 
)

Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations Method used is described in Jegerlehner, hep-lat/9708029

We are searching in a subspace orthogonal to the eigenvectors EigVec of A. The source chi is assumed to already be orthogonal!

Chi = M^ M . Psi

Algorithm:

Psi[0] := 0; Zeroed r[0] := Chi; Initial residual p[1] := Chi ; Initial direction b[0] := |r[0]|**2 / <M p[0], M p[0]> ; z[0] := 1 / (1 - (shift - shift(0))*b) bs[0] := b[0] * z[0] r[1] += b[k] M^ M . p[0] ; New residual Psi[1] = - b[k] p[k] ; Starting solution vector IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k]|**2 / |r[k-1]|**2 ; p[k] := r[k] + a[k] p[k-1]; New direction b[k+1] := |r[k]|**2 / <M p[k], Mp[k]> ; r[k+1] += b[k+1] M^ M . p[k] ; New residual Psi[k+1] -= b[k+1] p[k] ; New solution vector IF |[k+1]| <= RsdCG |Chi| THEN RETURN; Converged?

Arguments:

A Hermitian linear operator (Read) Chi Source (Read) Psi array of solutions (Write) shifts shifts of form A + mass (Read) RsdCG residual accuracy (Read/Write) n_count Number of CG iteration (Write)

Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Ap Temporary for M.p

MaxCG Maximum number of CG iterations allowed

Subroutines: A Apply matrix hermitian A to vector

Definition at line 73 of file minvcg2_accum.cc.

References Chroma::chi_norm, END_CODE, Chroma::MINUS, Chroma::LinearOperator< T >::nFlops(), Chroma::PLUS, START_CODE, Chroma::LinearOperator< T >::subset(), and T.

Referenced by Chroma::MInvCG2Accum().

template<typename T, typename C>
void Chroma::MInvCG_a ( const C &  A,
const multi1d< T > &  chi,
multi1d< multi1d< T > > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations Method used is described in Jegerlehner, hep-lat/9708029

We are searching in a subspace orthogonal to the eigenvectors EigVec of A. The source chi is assumed to already be orthogonal!

Chi = A . Psi

Algorithm:

Psi[0] := 0; Zeroed r[0] := Chi; Initial residual p[1] := Chi ; Initial direction b[0] := |r[0]|**2 / <p[0],Ap[0]> ; z[0] := 1 / (1 - (shift - shift(0))*b) bs[0] := b[0] * z[0] r[1] += b[k] A . p[0] ; New residual Psi[1] = - b[k] p[k] ; Starting solution vector IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k]|**2 / |r[k-1]|**2 ; p[k] := r[k] + a[k] p[k-1]; New direction b[k+1] := |r[k]|**2 / <p[k],Ap[k]> ; r[k+1] += b[k+1] A . p[k] ; New residual Psi[k+1] -= b[k+1] p[k] ; New solution vector IF |[k+1]| <= RsdCG |Chi| THEN RETURN; Converged?

Arguments:

A Hermitian linear operator (Read) Chi Source (Read) Psi array of solutions (Write) shifts shifts of form A + mass (Read) RsdCG residual accuracy (Read/Write) n_count Number of CG iteration (Write)

Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Ap Temporary for M.p

MaxCG Maximum number of CG iterations allowed

Subroutines: A Apply matrix hermitian A to vector

Definition at line 75 of file minvcg_array.cc.

References Chroma::chi_norm, END_CODE, Chroma::PLUS, Chroma::psi(), and START_CODE.

template<typename T>
void Chroma::MInvCG_a ( const LinearOperator< T > &  A,
const T chi,
multi1d< T > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations Method used is described in Jegerlehner, hep-lat/9708029

We are searching in a subspace orthogonal to the eigenvectors EigVec of A. The source chi is assumed to already be orthogonal!

Chi = A . Psi

Algorithm:

Psi[0] := 0; Zeroed r[0] := Chi; Initial residual p[1] := Chi ; Initial direction b[0] := |r[0]|**2 / <p[0],Ap[0]> ; z[0] := 1 / (1 - (shift - shift(0))*b) bs[0] := b[0] * z[0] r[1] += b[k] A . p[0] ; New residual Psi[1] = - b[k] p[k] ; Starting solution vector IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k]|**2 / |r[k-1]|**2 ; p[k] := r[k] + a[k] p[k-1]; New direction b[k+1] := |r[k]|**2 / <p[k],Ap[k]> ; r[k+1] += b[k+1] A . p[k] ; New residual Psi[k+1] -= b[k+1] p[k] ; New solution vector IF |[k+1]| <= RsdCG |Chi| THEN RETURN; Converged?

Arguments:

A Hermitian linear operator (Read) Chi Source (Read) Psi array of solutions (Write) shifts shifts of form A + mass (Read) RsdCG residual accuracy (Read/Write) n_count Number of CG iteration (Write)

Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Ap Temporary for M.p

MaxCG Maximum number of CG iterations allowed

Subroutines: A Apply matrix hermitian A to vector

Definition at line 73 of file minvcg.cc.

References Chroma::chi_norm, END_CODE, Chroma::LinearOperator< T >::nFlops(), Chroma::PLUS, START_CODE, Chroma::LinearOperator< T >::subset(), and T.

Referenced by Chroma::MInvCG().

template<typename T, typename P, typename Q>
void Chroma::MInvCGAccum ( const DiffLinearOperatorArray< T, P, Q > &  A,
const multi1d< T > &  chi,
multi1d< T > &  psi,
const Real &  norm,
const multi1d< Real > &  residues,
const multi1d< Real > &  poles,
const Real &  RsdCG,
const int  MaxCG,
int &  n_template 
)

template<typename T>
void Chroma::MInvCGAccum ( const LinearOperatorArray< T > &  A,
const multi1d< T > &  chi,
multi1d< T > &  psi,
const Real &  norm,
const multi1d< Real > &  residues,
const multi1d< Real > &  poles,
const Real &  RsdCG,
const int  MaxCG,
int &  n_count 
)

template<>
void Chroma::MInvCGAccum ( const DiffLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &  M,
const multi1d< LatticeFermion > &  chi,
multi1d< LatticeFermion > &  psi,
const Real &  norm,
const multi1d< Real > &  residues,
const multi1d< Real > &  poles,
const Real &  RsdCG,
const int  MaxCG,
int &  n_count 
)

Definition at line 478 of file minvcg_accumulate_array.cc.

References Chroma::MInvCGAccum_a().

template<>
void Chroma::MInvCGAccum ( const LinearOperatorArray< LatticeFermion > &  M,
const multi1d< LatticeFermion > &  chi,
multi1d< LatticeFermion > &  psi,
const Real &  norm,
const multi1d< Real > &  residues,
const multi1d< Real > &  poles,
const Real &  RsdCG,
const int  MaxCG,
int &  n_count 
)

Definition at line 462 of file minvcg_accumulate_array.cc.

References Chroma::MInvCGAccum_a().

Referenced by Chroma::MdagMMultiSysSolverCGAccumulateArray< T >::operator()().

template<typename T, typename C>
void Chroma::MInvCGAccum_a ( const C &  A,
const multi1d< T > &  chi,
multi1d< T > &  psi,
const Real &  norm,
const multi1d< Real > &  residues,
const multi1d< Real > &  poles,
const Real &  RsdCG,
const int  MaxCG,
int &  n_count 
)

Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations Method used is described in Jegerlehner, hep-lat/9708029

We are searching in a subspace orthogonal to the eigenvectors EigVec of A. The source chi is assumed to already be orthogonal!

Chi = A . Psi

Algorithm:

Psi[0] := 0; Zeroed r[0] := Chi; Initial residual p[1] := Chi ; Initial direction b[0] := |r[0]|**2 / <p[0],Ap[0]> ; z[0] := 1 / (1 - (shift - shift(0))*b) bs[0] := b[0] * z[0] r[1] += b[k] A . p[0] ; New residual Psi[1] = - b[k] p[k] ; Starting solution vector IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k]|**2 / |r[k-1]|**2 ; p[k] := r[k] + a[k] p[k-1]; New direction b[k+1] := |r[k]|**2 / <p[k],Ap[k]> ; r[k+1] += b[k+1] A . p[k] ; New residual Psi[k+1] -= b[k+1] p[k] ; New solution vector IF |[k+1]| <= RsdCG |Chi| THEN RETURN; Converged?

Arguments:

A Hermitian linear operator (Read) Chi Source (Read) Psi array of solutions (Write) shifts shifts of form A + mass (Read) RsdCG residual accuracy (Read/Write) n_count Number of CG iteration (Write)

Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Ap Temporary for M.p

MaxCG Maximum number of CG iterations allowed

Subroutines: A Apply matrix hermitian A to vector

Definition at line 75 of file minvcg_accumulate_array.cc.

References Chroma::chi_norm, END_CODE, Chroma::PLUS, and START_CODE.

Referenced by Chroma::MInvCGAccum().

template<typename T, typename P, typename Q>
void Chroma::MInvMR ( const DiffLinearOperator< T, P, Q > &  A,
const T chi,
multi1d< T > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

template<typename T>
void Chroma::MInvMR ( const LinearOperator< T > &  A,
const T chi,
multi1d< T > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations Method used is described in Jegerlehner, hep-lat/9708029

We are searching in a subspace orthogonal to the eigenvectors EigVec of A. The source chi is assumed to already be orthogonal!

Chi = A . Psi

Algorithm:

Psi[0] := 0; Zeroed r[0] := Chi; Initial residual p[1] := Chi ; Initial direction b[0] := |r[0]|**2 / <p[0],Ap[0]> ; z[0] := 1 / (1 - (shift - shift(0))*b) bs[0] := b[0] * z[0] r[1] += b[k] A . p[0] ; New residual Psi[1] = - b[k] p[k] ; Starting solution vector IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k]|**2 / |r[k-1]|**2 ; p[k] := r[k] + a[k] p[k-1]; New direction b[k+1] := |r[k]|**2 / <p[k],Ap[k]> ; r[k+1] += b[k+1] A . p[k] ; New residual Psi[k+1] -= b[k+1] p[k] ; New solution vector IF |[k+1]| <= RsdCG |Chi| THEN RETURN; Converged?

Arguments:

A Hermitian linear operator (Read) Chi Source (Read) Psi array of solutions (Write) shifts shifts of form A + mass (Read) RsdCG residual accuracy (Read/Write) n_count Number of CG iteration (Write)

Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Ap Temporary for M.p

MaxCG Maximum number of CG iterations allowed

Subroutines: A Apply matrix hermitian A to vector

template<>
void Chroma::MInvMR ( const DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &  M,
const LatticeFermion &  chi,
multi1d< LatticeFermion > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdMR,
int  MaxMR,
int &  n_count 
)

Definition at line 273 of file minvmr.cc.

References Chroma::MInvMR_a().

template<>
void Chroma::MInvMR ( const LinearOperator< LatticeFermion > &  M,
const LatticeFermion &  chi,
multi1d< LatticeFermion > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdMR,
int  MaxMR,
int &  n_count 
)

Definition at line 259 of file minvmr.cc.

References Chroma::MInvMR_a().

Referenced by Chroma::OverlapFermActBase::multiQprop(), and Chroma::LinOpMultiSysSolverMR< T >::operator()().

template<typename T>
void Chroma::MInvMR_a ( const LinearOperator< T > &  A,
const T chi,
multi1d< T > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdMR,
int  MaxMR,
int &  n_count 
)

Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations Method used is described in Jegerlehner, hep-lat/9708029

We are searching in a subspace orthogonal to the eigenvectors EigVec of A. The source chi is assumed to already be orthogonal!

Chi = A . Psi

Algorithm:

Psi[0] := 0; Zeroed r[0] := Chi; Initial residual p[1] := Chi ; Initial direction b[0] := |r[0]|**2 / <p[0],Ap[0]> ; z[0] := 1 / (1 - (shift - shift(0))*b) bs[0] := b[0] * z[0] r[1] += b[k] A . p[0] ; New residual Psi[1] = - b[k] p[k] ; Starting solution vector IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k]|**2 / |r[k-1]|**2 ; p[k] := r[k] + a[k] p[k-1]; New direction b[k+1] := |r[k]|**2 / <p[k],Ap[k]> ; r[k+1] += b[k+1] A . p[k] ; New residual Psi[k+1] -= b[k+1] p[k] ; New solution vector IF |[k+1]| <= RsdCG |Chi| THEN RETURN; Converged?

Arguments:

A Hermitian linear operator (Read) Chi Source (Read) Psi array of solutions (Write) shifts shifts of form A + mass (Read) RsdCG residual accuracy (Read/Write) n_count Number of CG iteration (Write)

Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Ap Temporary for M.p

MaxCG Maximum number of CG iterations allowed

Subroutines: A Apply matrix hermitian A to vector

Definition at line 75 of file minvmr.cc.

References Chroma::chi_norm, END_CODE, Chroma::GramSchm(), Chroma::Ncb, Chroma::LinearOperator< T >::nFlops(), NOperEig, Chroma::PLUS, START_CODE, Chroma::LinearOperator< T >::subset(), and T.

Referenced by Chroma::MInvMR().

template<typename T>
void Chroma::MInvRelCG_a ( const LinearOperator< T > &  A,
const T chi,
multi1d< T > &  psi,
const multi1d< Real > &  shifts,
const multi1d< Real > &  RsdCG,
int  MaxCG,
int &  n_count 
)

Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations Method used is described in Jegerlehner, hep-lat/9708029

We are searching in a subspace orthogonal to the eigenvectors EigVec of A. The source chi is assumed to already be orthogonal!

Chi = A . Psi

Algorithm:

Psi[0] := 0; Zeroed r[0] := Chi; Initial residual p[1] := Chi ; Initial direction b[0] := |r[0]|**2 / <p[0],Ap[0]> ; z[0] := 1 / (1 - (shift - shift(0))*b) bs[0] := b[0] * z[0] r[1] += b[k] A . p[0] ; New residual Psi[1] = - b[k] p[k] ; Starting solution vector IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k]|**2 / |r[k-1]|**2 ; p[k] := r[k] + a[k] p[k-1]; New direction b[k+1] := |r[k]|**2 / <p[k],Ap[k]> ; r[k+1] += b[k+1] A . p[k] ; New residual Psi[k+1] -= b[k+1] p[k] ; New solution vector IF |[k+1]| <= RsdCG |Chi| THEN RETURN; Converged?

Arguments:

A Hermitian linear operator (Read) Chi Source (Read) Psi array of solutions (Write) shifts shifts of form A + mass (Read) RsdCG residual accuracy (Read/Write) n_count Number of CG iteration (Write)

Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Ap Temporary for M.p

MaxCG Maximum number of CG iterations allowed

Subroutines: A Apply matrix hermitian A to vector

Definition at line 71 of file minv_rel_cg.cc.

References Chroma::chi_norm, END_CODE, Chroma::PLUS, START_CODE, Chroma::LinearOperator< T >::subset(), and T.

Referenced by Chroma::MInvRelCG().

void Chroma::normGramSchmidt ( multi2d< LatticeFermionD > &  vec,
int  f,
int  t,
const Subset &  sub 
)

Definition at line 123 of file norm_gram_schm.cc.

References Chroma::normGramSchmidtArray_T().

void Chroma::normGramSchmidt ( multi2d< LatticeFermionF > &  vec,
int  f,
int  t,
const Subset &  sub 
)

Definition at line 115 of file norm_gram_schm.cc.

References Chroma::normGramSchmidtArray_T().

void Chroma::normGramSchmidt ( multi1d< LatticeStaggeredFermionD > &  vec,
int  f,
int  t,
const Subset &  sub 
)

Definition at line 105 of file norm_gram_schm.cc.

void Chroma::normGramSchmidt ( multi1d< LatticeStaggeredFermionF > &  vec,
int  f,
int  t,
const Subset &  sub 
)

Definition at line 97 of file norm_gram_schm.cc.

void Chroma::normGramSchmidt ( multi1d< LatticeFermionD > &  vec,
int  f,
int  t,
const Subset &  sub 
)

Definition at line 89 of file norm_gram_schm.cc.

void Chroma::normGramSchmidt ( multi1d< LatticeFermionF > &  vec,
int  f,
int  t,
const Subset &  sub 
)

Gram-Schmidt with normalization.

Definition at line 81 of file norm_gram_schm.cc.

Referenced by Chroma::InvEigCG2Env::InvEigCG2_T(), Chroma::InvEigCG2ArrayEnv::old_InvEigCG2_T(), and Chroma::sysSolver().

template<typename T>
void Chroma::normGramSchmidt_T ( multi1d< T > &  vec,
int  f,
int  t,
const Subset &  sub 
)

Gram-Schmidt with normalization.

Definition at line 15 of file norm_gram_schm.cc.

References Chroma::in.

template<typename T>
void Chroma::normGramSchmidtArray_T ( multi2d< T > &  vec,
int  f,
int  t,
const Subset &  sub 
)

Gram-Schmidt with normalization.

Definition at line 46 of file norm_gram_schm.cc.

References Chroma::in.

Referenced by Chroma::normGramSchmidt().

void Chroma::read ( XMLReader &  xml,
const string &  path,
SysSolverOptEigCGParams &  param 
)

Definition at line 37 of file syssolver_OPTeigcg_params.cc.

References Chroma::SysSolverOptEigCGParams::cleanUpEvecs, Chroma::SysSolverOptEigCGParams::defaults(), Chroma::SysSolverOptEigCGParams::eigen_id, Chroma::SysSolverOptEigCGParams::esize, Chroma::SysSolverOptEigCGParams::file, Chroma::SysSolverOptEigCGParams::MaxCG, Chroma::SysSolverOptEigCGParams::Neig, Chroma::SysSolverOptEigCGParams::Neig_max, Chroma::SysSolverOptEigCGParams::Nmax, Chroma::SysSolverOptEigCGParams::NormAest, Chroma::SysSolverOptEigCGParams::PrintLevel, Chroma::read(), Chroma::SysSolverOptEigCGParams::restartTol, Chroma::SysSolverOptEigCGParams::RsdCG, and Chroma::SysSolverOptEigCGParams::updateRestartTol.

void Chroma::read ( XMLReader &  xml,
const string &  path,
SysSolverOptEigBiCGParams &  param 
)

Definition at line 37 of file syssolver_OPTeigbicg_params.cc.

References Chroma::SysSolverOptEigBiCGParams::cleanUpEvecs, Chroma::SysSolverOptEigBiCGParams::ConvTestOpt, Chroma::SysSolverOptEigBiCGParams::defaults(), Chroma::SysSolverOptEigBiCGParams::eigen_id, Chroma::SysSolverOptEigBiCGParams::epsi, Chroma::SysSolverOptEigBiCGParams::esize, Chroma::SysSolverOptEigBiCGParams::file, Chroma::SysSolverOptEigBiCGParams::MaxCG, Chroma::SysSolverOptEigBiCGParams::Neig, Chroma::SysSolverOptEigBiCGParams::Neig_max, Chroma::SysSolverOptEigBiCGParams::Nmax, Chroma::SysSolverOptEigBiCGParams::NormAest, Chroma::SysSolverOptEigBiCGParams::PrintLevel, Chroma::read(), Chroma::SysSolverOptEigBiCGParams::restartTol, Chroma::SysSolverOptEigBiCGParams::RsdCG, and Chroma::SysSolverOptEigBiCGParams::sort_option.

void Chroma::read ( XMLReader &  xml,
const string &  path,
SysSolverMRParams &  param 
)

Definition at line 12 of file syssolver_mr_params.cc.

References Chroma::SysSolverMRParams::MaxMR, Chroma::SysSolverMRParams::MROver, Chroma::read(), and Chroma::SysSolverMRParams::RsdMR.

void Chroma::read ( XMLReader &  xml,
const string &  path,
SysSolverEigCGParams &  param 
)

Definition at line 37 of file syssolver_eigcg_params.cc.

References Chroma::SysSolverEigCGParams::cleanUpEvecs, Chroma::SysSolverEigCGParams::defaults(), Chroma::SysSolverEigCGParams::eigen_id, Chroma::SysSolverEigCGParams::esize, Chroma::SysSolverEigCGParams::file, Chroma::SysSolverEigCGParams::invType, Chroma::SysSolverEigCGParams::MaxCG, Chroma::SysSolverEigCGParams::Neig, Chroma::SysSolverEigCGParams::Neig_max, Chroma::SysSolverEigCGParams::Nmax, Chroma::SysSolverEigCGParams::NormAest, Chroma::SysSolverEigCGParams::PrintLevel, Chroma::read(), Chroma::SysSolverEigCGParams::restartTol, Chroma::SysSolverEigCGParams::RsdCG, Chroma::SysSolverEigCGParams::updateRestartTol, Chroma::SysSolverEigCGParams::vPrecCGvecs, and Chroma::SysSolverEigCGParams::vPrecCGvecStart.

void Chroma::read ( XMLReader &  xml,
const string &  path,
SysSolverCGParams &  param 
)

Definition at line 12 of file syssolver_cg_params.cc.

References Chroma::SysSolverCGParams::MaxCG, Chroma::SysSolverCGParams::MaxCGRestart, Chroma::SysSolverCGParams::MinCG, Chroma::read(), Chroma::SysSolverCGParams::RsdCG, and Chroma::SysSolverCGParams::RsdCGRestart.

void Chroma::read ( XMLReader &  xml,
const string &  path,
SysSolverBiCGStabParams &  param 
)

Definition at line 12 of file syssolver_bicgstab_params.cc.

References Chroma::SysSolverBiCGStabParams::MaxBiCGStab, Chroma::read(), and Chroma::SysSolverBiCGStabParams::RsdBiCGStab.

void Chroma::read ( XMLReader &  xml,
const string &  path,
MultiSysSolverMRParams &  param 
)

Definition at line 12 of file multi_syssolver_mr_params.cc.

References Chroma::MultiSysSolverMRParams::MaxCG, Chroma::read(), and Chroma::MultiSysSolverMRParams::RsdCG.

void Chroma::read ( XMLReader &  xml,
const string &  path,
MultiSysSolverCGParams &  param 
)

Definition at line 12 of file multi_syssolver_cg_params.cc.

References Chroma::MultiSysSolverCGParams::MaxCG, Chroma::read(), and Chroma::MultiSysSolverCGParams::RsdCG.

void WlInvCG2 ( const LinearOperator M,
const LatticeFermion &  chi,
LatticeFermion &  psi,
const Real &  RsdCG,
int  MaxCG,
int &  n_count 
)

Conjugate-Gradient (CGNE) algorithm for a generic Linear Operator.

This subroutine uses the Conjugate Gradient (CG) algorithm to find the solution of the set of linear equations

Chi = A . Psi

where A = M^dag . M

Algorithm:

Psi[0] := initial guess; Linear interpolation (argument) r[0] := Chi - M^dag . M . Psi[0] ; Initial residual p[1] := r[0] ; Initial direction IF |r[0]| <= RsdCG |Chi| THEN RETURN; Converged? FOR k FROM 1 TO MaxCG DO CG iterations a[k] := |r[k-1]|**2 / <Mp[k],Mp[k]> ; Psi[k] += a[k] p[k] ; New solution vector r[k] -= a[k] M^dag . M . p[k] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged? b[k+1] := |r[k]|**2 / |r[k-1]|**2 ; p[k+1] := r[k] + b[k+1] p[k]; New direction

Arguments:

Parameters:
M Linear Operator (Read)
chi Source (Read)
psi Solution (Modify)
RsdCG CG residual accuracy (Read)
MaxCG Maximum CG iterations (Read)
n_count Number of CG iteration (Write)
Local Variables:

p Direction vector r Residual vector cp | r[k] |**2 c | r[k-1] |**2 k CG iteration counter a a[k] b b[k+1] d < p[k], A.p[k] > Mp Temporary for M.p

Subroutines: + A Apply matrix M or M to vector

Operations:

2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )

Definition at line 70 of file t_wlinvcg.cc.

References Chroma::MINUS, Chroma::PLUS, and Chroma::LinearOperator< T >::subset().

void Chroma::write ( XMLWriter &  xml,
const string &  path,
const SysSolverOptEigCGParams &  param 
)

Definition at line 83 of file syssolver_OPTeigcg_params.cc.

References Chroma::SysSolverOptEigCGParams::cleanUpEvecs, Chroma::SysSolverOptEigCGParams::eigen_id, Chroma::SysSolverOptEigCGParams::file, Chroma::SysSolverOptEigCGParams::MaxCG, Chroma::SysSolverOptEigCGParams::Neig, Chroma::SysSolverOptEigCGParams::Neig_max, Chroma::SysSolverOptEigCGParams::Nmax, Chroma::SysSolverOptEigCGParams::NormAest, Chroma::SysSolverOptEigCGParams::restartTol, Chroma::SysSolverOptEigCGParams::RsdCG, Chroma::SysSolverOptEigCGParams::updateRestartTol, and Chroma::write().

void Chroma::write ( XMLWriter &  xml,
const string &  path,
const SysSolverOptEigBiCGParams &  param 
)

Definition at line 89 of file syssolver_OPTeigbicg_params.cc.

References Chroma::SysSolverOptEigBiCGParams::cleanUpEvecs, Chroma::SysSolverOptEigBiCGParams::ConvTestOpt, Chroma::SysSolverOptEigBiCGParams::eigen_id, Chroma::SysSolverOptEigBiCGParams::epsi, Chroma::SysSolverOptEigBiCGParams::file, Chroma::SysSolverOptEigBiCGParams::MaxCG, Chroma::SysSolverOptEigBiCGParams::Neig, Chroma::SysSolverOptEigBiCGParams::Neig_max, Chroma::SysSolverOptEigBiCGParams::Nmax, Chroma::SysSolverOptEigBiCGParams::NormAest, Chroma::SysSolverOptEigBiCGParams::restartTol, Chroma::SysSolverOptEigBiCGParams::RsdCG, Chroma::SysSolverOptEigBiCGParams::sort_option, and Chroma::write().

void Chroma::write ( XMLWriter &  xml,
const string &  path,
const SysSolverMRParams &  param 
)

Definition at line 26 of file syssolver_mr_params.cc.

References Chroma::SysSolverMRParams::MaxMR, Chroma::SysSolverMRParams::MROver, Chroma::SysSolverMRParams::RsdMR, and Chroma::write().

void Chroma::write ( XMLWriter &  xml,
const string &  path,
const SysSolverEigCGParams &  param 
)

Definition at line 89 of file syssolver_eigcg_params.cc.

References Chroma::SysSolverEigCGParams::cleanUpEvecs, Chroma::SysSolverEigCGParams::eigen_id, Chroma::SysSolverEigCGParams::file, Chroma::SysSolverEigCGParams::invType, Chroma::SysSolverEigCGParams::MaxCG, Chroma::SysSolverEigCGParams::Neig, Chroma::SysSolverEigCGParams::Neig_max, Chroma::SysSolverEigCGParams::Nmax, Chroma::SysSolverEigCGParams::NormAest, Chroma::SysSolverEigCGParams::restartTol, Chroma::SysSolverEigCGParams::RsdCG, Chroma::SysSolverEigCGParams::updateRestartTol, Chroma::SysSolverEigCGParams::vPrecCGvecs, Chroma::SysSolverEigCGParams::vPrecCGvecStart, and Chroma::write().

void Chroma::write ( XMLWriter &  xml,
const string &  path,
const SysSolverCGParams &  param 
)

Definition at line 46 of file syssolver_cg_params.cc.

References Chroma::SysSolverCGParams::MaxCG, Chroma::SysSolverCGParams::MaxCGRestart, Chroma::SysSolverCGParams::MinCG, Chroma::SysSolverCGParams::RsdCG, Chroma::SysSolverCGParams::RsdCGRestart, and Chroma::write().

void Chroma::write ( XMLWriter &  xml,
const string &  path,
const SysSolverBiCGStabParams &  param 
)

Definition at line 22 of file syssolver_bicgstab_params.cc.

References Chroma::SysSolverBiCGStabParams::MaxBiCGStab, Chroma::SysSolverBiCGStabParams::RsdBiCGStab, and Chroma::write().

void Chroma::write ( XMLWriter &  xml,
const string &  path,
const MultiSysSolverMRParams &  param 
)

Definition at line 21 of file multi_syssolver_mr_params.cc.

References Chroma::MultiSysSolverMRParams::MaxCG, Chroma::MultiSysSolverMRParams::RsdCG, and Chroma::write().

void Chroma::write ( XMLWriter &  xml,
const string &  path,
const MultiSysSolverCGParams &  param 
)

Definition at line 21 of file multi_syssolver_cg_params.cc.

References Chroma::MultiSysSolverCGParams::MaxCG, Chroma::MultiSysSolverCGParams::RsdCG, and Chroma::write().


Generated on Sun Nov 22 04:38:37 2009 for CHROMA by  doxygen 1.4.7