CHROMA
|
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... | |
class | Chroma::LinOpSysSolverMDWFArray |
AVP's DWF Solver interface. 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... | |
class | Chroma::MdagMMultiSysSolverCGChronoClover |
Solve a CG2 system. Here, the operator is NOT assumed to be hermitian. More... | |
struct | Chroma::MultiSysSolverMRParams |
Params for MR inverter. More... | |
class | Chroma::LinOpSysSolverQOPMG |
Solve a M*psi=chi linear system using the external QDP multigrid inverter. More... | |
class | Chroma::MdagMSysSolverQOPMG |
Solve a M*psi=chi linear system using the external QDP multigrid inverter. More... | |
struct | Chroma::SysSolverQOPMGParams |
Parameters for the external QDP multigrid 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... | |
struct | Chroma::SysSolverFGMRESDRParams |
Params for FGMRESDR 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::LinOpSysSolverFGMRESDR |
Solve a M*psi=chi linear system by FGMRESDR. 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... | |
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) More... | |
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) More... | |
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) More... | |
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) More... | |
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) More... | |
typedef SingletonHolder< ObjectFactory< MdagMMultiSystemSolver< LatticeFermion >, std::string, TYPELIST_4(XMLReader &, const std::string &, FSHandle, Handle< LinearOperator< LatticeFermion > >), MdagMMultiSystemSolver< LatticeFermion > *(*)(XMLReader &, const std::string &, FSHandle, Handle< LinearOperator< LatticeFermion > >), StringFactoryError > > | Chroma::TheMdagMFermMultiSystemSolverFactory |
MdagM system solver factory (foundry) More... | |
typedef SingletonHolder< ObjectFactory< MdagMMultiSystemSolverArray< LatticeFermion >, std::string, TYPELIST_4(XMLReader &, const std::string &, FSHandle, Handle< LinearOperatorArray< LatticeFermion > >), MdagMMultiSystemSolverArray< LatticeFermion > *(*)(XMLReader &, const std::string &, FSHandle, Handle< LinearOperatorArray< LatticeFermion > >), StringFactoryError > > | Chroma::TheMdagMFermMultiSystemSolverArrayFactory |
MdagM system solver factory (foundry) More... | |
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) More... | |
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) More... | |
typedef SingletonHolder< ObjectFactory< LinOpSystemSolverArray< LatticeFermion >, std::string, TYPELIST_4(XMLReader &, const std::string &, FSHandle, Handle< LinearOperatorArray< LatticeFermion > >), LinOpSystemSolverArray< LatticeFermion > *(*)(XMLReader &, const std::string &, FSHandle, Handle< LinearOperatorArray< LatticeFermion > >), StringFactoryError > > | Chroma::TheLinOpFermSystemSolverArrayFactory |
LinOp system solver factory (foundry) More... | |
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) More... | |
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) More... | |
typedef SingletonHolder< ObjectFactory< MdagMSystemSolverArray< LatticeFermion >, std::string, TYPELIST_4(XMLReader &, const std::string &, FactoryEnv::FSHandle, Handle< LinearOperatorArray< LatticeFermion > >), MdagMSystemSolverArray< LatticeFermion > *(*)(XMLReader &, const std::string &, FactoryEnv::FSHandle, Handle< LinearOperatorArray< LatticeFermion > >), StringFactoryError > > | Chroma::TheMdagMFermSystemSolverArrayFactory |
MdagM system solver factory (foundry) More... | |
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) More... | |
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) More... | |
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. More... | |
template<> | |
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. More... | |
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. More... | |
template<> | |
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. More... | |
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. More... | |
template<> | |
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. More... | |
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. More... | |
template<> | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
template<> | |
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. More... | |
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. More... | |
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. More... | |
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 , typename R > | |
void | Chroma::MInvCG2_a (const LinearOperator< T > &M, const T &chi, multi1d< T > &psi, const multi1d< R > &shifts, const multi1d< R > &RsdCG, int MaxCG, int &n_count) |
Multishift Conjugate-Gradient (CG1) algorithm for a Linear Operator. More... | |
void | Chroma::MInvCG2 (const LinearOperator< LatticeFermionF > &M, const LatticeFermionF &chi, multi1d< LatticeFermionF > &psi, const multi1d< RealF > &shifts, const multi1d< RealF > &RsdCG, int MaxCG, int &n_count) |
void | Chroma::MInvCG2 (const LinearOperator< LatticeFermionD > &M, const LatticeFermionD &chi, multi1d< LatticeFermionD > &psi, const multi1d< RealD > &shifts, const multi1d< RealD > &RsdCG, int MaxCG, int &n_count) |
void | Chroma::MInvCG2 (const DiffLinearOperator< LatticeFermionF, multi1d< LatticeColorMatrixF >, multi1d< LatticeColorMatrixF > > &M, const LatticeFermionF &chi, multi1d< LatticeFermionF > &psi, const multi1d< RealF > &shifts, const multi1d< RealF > &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. More... | |
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 , 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. More... | |
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 , 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. More... | |
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) |
void | Chroma::read (XMLReader &xml, const std::string &path, MultiSysSolverCGParams ¶m) |
void | Chroma::write (XMLWriter &xml, const std::string &path, const MultiSysSolverCGParams ¶m) |
void | Chroma::read (XMLReader &xml, const std::string &path, MultiSysSolverMRParams ¶m) |
void | Chroma::write (XMLWriter &xml, const std::string &path, const MultiSysSolverMRParams ¶m) |
template<typename T > | |
void | Chroma::normGramSchmidt_T (multi1d< T > &vec, int f, int t, const Subset &sub) |
Gram-Schmidt with normalization. More... | |
template<typename T > | |
void | Chroma::normGramSchmidtArray_T (multi2d< T > &vec, int f, int t, const Subset &sub) |
Gram-Schmidt with normalization. More... | |
void | Chroma::read (XMLReader &xml, const std::string &path, SysSolverQOPMGParams ¶m) |
void | Chroma::write (XMLWriter &xml, const std::string &path, const SysSolverQOPMGParams ¶m) |
void | Chroma::read (XMLReader &xml, const std::string &path, SysSolverBiCGStabParams ¶m) |
void | Chroma::write (XMLWriter &xml, const std::string &path, const SysSolverBiCGStabParams ¶m) |
void | Chroma::read (XMLReader &xml, const std::string &path, SysSolverCGParams ¶m) |
void | Chroma::write (XMLWriter &xml, const std::string &path, const SysSolverCGParams ¶m) |
void | Chroma::read (XMLReader &xml, const std::string &path, SysSolverEigCGParams ¶m) |
void | Chroma::write (XMLWriter &xml, const std::string &path, const SysSolverEigCGParams ¶m) |
void | Chroma::read (XMLReader &xml, const std::string &path, SysSolverFGMRESDRParams &p) |
void | Chroma::write (XMLWriter &xml, const std::string &path, const SysSolverFGMRESDRParams &p) |
void | Chroma::read (XMLReader &xml, const std::string &path, SysSolverMRParams ¶m) |
void | Chroma::write (XMLWriter &xml, const std::string &path, const SysSolverMRParams ¶m) |
void | Chroma::read (XMLReader &xml, const std::string &path, SysSolverOptEigBiCGParams ¶m) |
void | Chroma::write (XMLWriter &xml, const std::string &path, const SysSolverOptEigBiCGParams ¶m) |
void | Chroma::read (XMLReader &xml, const std::string &path, SysSolverOptEigCGParams ¶m) |
void | Chroma::write (XMLWriter &xml, const std::string &path, const SysSolverOptEigCGParams ¶m) |
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. More... | |
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. More... | |
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. 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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
template<> | |
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. More... | |
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 > | |
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. More... | |
template<> | |
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. More... | |
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) |
void | Chroma::normGramSchmidt (multi1d< LatticeFermionF > &vec, int f, int t, const Subset &sub) |
Gram-Schmidt with normalization. More... | |
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. More... | |
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. More... | |
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. More... | |
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) |
Various inverters for fermion linear operators
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 27 of file multi_syssolver_linop_factory.h.
typedef SingletonHolder< ObjectFactory<LinOpSystemSolverArray<LatticeFermion>, std::string, TYPELIST_4(XMLReader&, const std::string&, FSHandle, Handle< LinearOperatorArray<LatticeFermion> >), LinOpSystemSolverArray<LatticeFermion>* (*)(XMLReader&, const std::string&, FSHandle, 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 39 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 55 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 40 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 27 of file multi_syssolver_mdagm_accumulate_factory.h.
typedef SingletonHolder< ObjectFactory<MdagMMultiSystemSolverArray<LatticeFermion>, std::string, TYPELIST_4(XMLReader&, const std::string&, FSHandle, Handle< LinearOperatorArray<LatticeFermion> >), MdagMMultiSystemSolverArray<LatticeFermion>* (*)(XMLReader&, const std::string&, FSHandle, Handle< LinearOperatorArray<LatticeFermion> >), StringFactoryError> > Chroma::TheMdagMFermMultiSystemSolverArrayFactory |
MdagM system solver factory (foundry)
Definition at line 47 of file multi_syssolver_mdagm_factory.h.
typedef SingletonHolder< ObjectFactory<MdagMMultiSystemSolver<LatticeFermion>, std::string, TYPELIST_4(XMLReader&, const std::string&, FSHandle, Handle< LinearOperator<LatticeFermion> >), MdagMMultiSystemSolver<LatticeFermion>* (*)(XMLReader&, const std::string&, FSHandle, Handle< LinearOperator<LatticeFermion> >), StringFactoryError> > Chroma::TheMdagMFermMultiSystemSolverFactory |
MdagM system solver factory (foundry)
Definition at line 33 of file multi_syssolver_mdagm_factory.h.
typedef SingletonHolder< ObjectFactory<MdagMSystemSolverArray<LatticeFermion>, std::string, TYPELIST_4(XMLReader&, const std::string&, FactoryEnv::FSHandle, Handle< LinearOperatorArray<LatticeFermion> >), MdagMSystemSolverArray<LatticeFermion>* (*)(XMLReader&, const std::string&, FactoryEnv::FSHandle, 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 39 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 53 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 60 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 26 of file syssolver_polyprec_factory.h.
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 LatticeFermionD & | chi, | ||
LatticeFermionD & | psi, | ||
const Real & | RsdBiCGStab, | ||
const Real & | Delta, | ||
int | MaxBiCGStab, | ||
enum PlusMinus | isign | ||
) |
Definition at line 309 of file reliable_bicgstab.cc.
References Chroma::A(), Chroma::chi(), Chroma::isign, and Chroma::psi.
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 323 of file reliable_bicgstab.cc.
References Chroma::A(), Chroma::chi(), Chroma::isign, and Chroma::psi.
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 295 of file reliable_bicgstab.cc.
References Chroma::A(), Chroma::chi(), Chroma::isign, and Chroma::psi.
Referenced by Chroma::LinOpSysSolverReliableBiCGStabClover::operator()(), and Chroma::MdagMSysSolverReliableBiCGStabClover::operator()().
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::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 std::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:
A | Linear Operator (Read) |
chi | Source (Read) |
psi | Solution (Modify) |
RsdCG | CG residual accuracy (Read) |
MaxCG | Maximum CG iterations (Read) |
Local Variables:
p Direction std::vector r Residual std::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:
Operations:
2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )
Definition at line 215 of file invcg1.cc.
References Chroma::A(), chi, Chroma::InvCG1_a(), MaxCG, psi, and Chroma::RsdCG.
Referenced by Chroma::InvGMRESR_CG_a(), main(), Chroma::Ovlap4DQprop::operator()(), Chroma::PolyPrecSysSolverCG< T >::operator()(), and Chroma::EvenOddFermActQprop< T, P, Q >::operator()().
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 std::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:
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 std::vector r Residual std::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 )
Definition at line 216 of file invcg1_array.cc.
References Chroma::A(), chi, Chroma::InvCG1_a(), MaxCG, n_count, psi, and Chroma::RsdCG.
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 std::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:
M | Linear Operator (Read) |
chi | Source (Read) |
psi | Solution (Modify) |
RsdCG | CG residual accuracy (Rea/Write) |
MaxCG | Maximum CG iterations (Read) |
Local Variables:
p Direction std::vector r Residual std::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:
Operations:
2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )
Definition at line 69 of file invcg1.cc.
References Chroma::a, Chroma::A(), Chroma::b, c, chi, Chroma::cp, Chroma::d, END_CODE, Chroma::k, MaxCG, Chroma::SystemSolverResults_t::n_count, Chroma::p, Chroma::PLUS, psi, Chroma::QDP_error_exit(), r(), Chroma::SystemSolverResults_t::resid, Chroma::rsd_sq, Chroma::RsdCG, s, and START_CODE.
Referenced by Chroma::InvCG1().
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 std::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:
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 std::vector r Residual std::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 )
Definition at line 67 of file invcg1_array.cc.
References Chroma::a, Chroma::A(), Chroma::b, c, chi, Chroma::cp, Chroma::d, END_CODE, i, Chroma::k, MaxCG, n, n_count, Chroma::p, Chroma::PLUS, psi, r(), Chroma::rsd_sq, Chroma::RsdCG, s, and START_CODE.
Referenced by Chroma::InvCG1().
SystemSolverResults_t Chroma::InvCG2 | ( | const LinearOperator< LatticeFermionD > & | M, |
const LatticeFermionD & | chi, | ||
LatticeFermionD & | psi, | ||
const Real & | RsdCG, | ||
int | MaxCG | ||
) |
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 std::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:
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 std::vector r Residual std::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 )
Definition at line 240 of file invcg2.cc.
References chi, MaxCG, psi, and Chroma::RsdCG.
Referenced by main(), Chroma::UnprecDWF4DLinOp< T >::operator()(), Chroma::UnprecDWFTransfLinOp::operator()(), Chroma::UnprecDWFTransfMdagMLinOp::operator()(), Chroma::UnprecPDWF4DLinOp< T, P, Q >::operator()(), Chroma::UnprecPPDWF4DLinOp< T, P, Q >::operator()(), Chroma::Ovlap4DQprop::operator()(), Chroma::LinOpSysSolverCGArray< T >::operator()(), Chroma::MdagMSysSolverCGArray< T >::operator()(), Chroma::HtContFrac5DQprop< T, P, Q >::operator()(), Chroma::PrecOvExt5DQprop< T, P, Q >::operator()(), Chroma::ContFrac5DQprop< T, P, Q >::operator()(), Chroma::OvHTCFZ5DQprop< T >::operator()(), Chroma::OvExt5DQprop< T >::operator()(), Chroma::OvUnprecCF5DQprop< T >::operator()(), Chroma::LinOpSysSolverCG< T >::operator()(), Chroma::MdagMSysSolverBiCGStab< T >::operator()(), Chroma::MdagMSysSolverCG< T >::operator()(), Chroma::MdagMSysSolverCGLFClover::operator()(), and Chroma::MdagMSysSolverIBiCGStab< T >::operator()().
SystemSolverResults_t Chroma::InvCG2 | ( | const LinearOperator< LatticeStaggeredFermionD > & | M, |
const LatticeStaggeredFermionD & | chi, | ||
LatticeStaggeredFermionD & | 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 LinearOperatorArray< LatticeFermionD > & | M, |
const multi1d< LatticeFermionD > & | chi, | ||
multi1d< LatticeFermionD > & | psi, | ||
const Real & | RsdCG, | ||
int | MaxCG | ||
) |
Definition at line 292 of file invcg2_array.cc.
References Chroma::chi(), Chroma::InvCG2_a(), Chroma::MaxCG, Chroma::psi, and Chroma::RsdCG.
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 std::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:
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 std::vector r Residual std::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 )
Definition at line 281 of file invcg2_array.cc.
References Chroma::chi(), Chroma::InvCG2_a(), Chroma::MaxCG, Chroma::psi, and Chroma::RsdCG.
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 std::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:
M | Linear Operator (Read) |
chi | Source (Read) |
psi | Solution (Modify) |
RsdCG | CG residual accuracy (Read) |
MaxCG | Maximum CG iterations (Read) |
Local Variables:
p Direction std::vector r Residual std::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 )
Definition at line 68 of file invcg2_array.cc.
References Chroma::a, Chroma::b, Chroma::c, Chroma::chi(), Chroma::cp, Chroma::d, Chroma::END_CODE(), Chroma::i, Chroma::k, Chroma::MaxCG, Chroma::MINUS, Chroma::mp(), n, Chroma::SystemSolverResults_t::n_count, Chroma::p, Chroma::PLUS, Chroma::psi, Chroma::r, Chroma::SystemSolverResults_t::resid, Chroma::rsd_sq, Chroma::RsdCG, Chroma::START_CODE(), and Chroma::zero.
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 std::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:
M | Linear Operator (Read) |
chi | Source (Read) |
psi | Solution (Modify) |
RsdCG | CG residual accuracy (Read) |
MaxCG | Maximum CG iterations (Read) |
Local Variables:
p Direction std::vector r Residual std::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 )
Definition at line 72 of file invcg2.cc.
References Chroma::a, Chroma::b, c, chi, Chroma::cp, Chroma::d, END_CODE, Chroma::k, MaxCG, Chroma::MINUS, Chroma::mp(), Chroma::SystemSolverResults_t::n_count, Chroma::LinearOperator< T >::nFlops(), Chroma::p, Chroma::PLUS, psi, r(), Chroma::SystemSolverResults_t::resid, Chroma::rsd_sq, Chroma::RsdCG, s, START_CODE, and Chroma::LinearOperator< T >::subset().
Referenced by Chroma::InvCG2().
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 std::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:
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 std::vector r Residual std::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 )
Definition at line 184 of file invcg2_timing_hacks.cc.
References Chroma::chi(), Chroma::InvCG2_timings_a(), Chroma::MaxCG, and Chroma::psi.
Referenced by Chroma::LinOpSysSolverCGTiming< T >::operator()(), and Chroma::MdagMSysSolverCGTimings< T >::operator()().
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 std::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:
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 std::vector r Residual std::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 )
Definition at line 70 of file invcg2_timing_hacks.cc.
References Chroma::a, Chroma::b, Chroma::c, Chroma::chi(), Chroma::cp, Chroma::d, Chroma::END_CODE(), Chroma::k, Chroma::MaxCG, Chroma::MINUS, Chroma::mp(), Chroma::SystemSolverResults_t::n_count, Chroma::LinearOperator< T >::nFlops(), Chroma::p, Chroma::PLUS, Chroma::psi, Chroma::r, Chroma::SystemSolverResults_t::resid, Chroma::s(), Chroma::START_CODE(), and Chroma::LinearOperator< T >::subset().
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 std::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:
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 std::vector r Residual std::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 )
Definition at line 66 of file invcg2_prec_wilson.cc.
References Chroma::a, AT_REAL, Chroma::b, c, chi, Chroma::cp, Chroma::d, Chroma::DOUBLE, FIRST_ELEM, Chroma::k, Chroma::mass, MaxCG, Chroma::MINUS, Chroma::mp(), n_count, Nd, Chroma::p, Chroma::PLUS, psi, Chroma::QDP_error_exit(), r(), Chroma::rsd_sq, Chroma::RsdCG, s, sum, tmp2, tmp3, 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 std::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:
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 std::vector r Residual std::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 )
Definition at line 66 of file invcg2_timing_hacks_2.cc.
References Chroma::a, AT_REAL, Chroma::b, c, chi, Chroma::cp, Chroma::d, Chroma::DOUBLE, FIRST_ELEM, Chroma::k, Chroma::mass, Chroma::MINUS, Chroma::mp(), n_count, Nd, Chroma::p, Chroma::PLUS, psi, r(), Chroma::rsd_sq, Chroma::RsdCG, s, sum, tmp2, tmp3, and vaxpy3_norm().
SystemSolverResults_t Chroma::InvCGReliable | ( | const LinearOperator< LatticeFermionD > & | A, |
const LatticeFermionD & | chi, | ||
LatticeFermionD & | psi, | ||
const Real & | RsdCG, | ||
const Real & | Delta, | ||
int | MaxCG | ||
) |
Definition at line 206 of file reliable_cg.cc.
References Chroma::A(), Chroma::chi(), Chroma::MaxCG, Chroma::psi, and Chroma::RsdCG.
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 218 of file reliable_cg.cc.
References Chroma::A(), Chroma::chi(), Chroma::MaxCG, Chroma::psi, and Chroma::RsdCG.
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 193 of file reliable_cg.cc.
References Chroma::A(), Chroma::chi(), Chroma::MaxCG, Chroma::psi, and Chroma::RsdCG.
Referenced by Chroma::MdagMMultiSysSolverCGChronoClover::operator()(), Chroma::LinOpSysSolverReliableCGClover::operator()(), and Chroma::MdagMSysSolverReliableCGClover::operator()().
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 LatticeFermionD & | chi, | ||
LatticeFermionD & | psi, | ||
const Real & | RsdBiCGStab, | ||
const Real & | Delta, | ||
int | MaxBiCGStab, | ||
enum PlusMinus | isign | ||
) |
Definition at line 451 of file reliable_ibicgstab.cc.
References Chroma::A(), Chroma::chi(), Chroma::isign, and Chroma::psi.
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 465 of file reliable_ibicgstab.cc.
References Chroma::A(), Chroma::chi(), Chroma::isign, and Chroma::psi.
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 437 of file reliable_ibicgstab.cc.
References Chroma::A(), Chroma::chi(), Chroma::isign, and Chroma::psi.
Referenced by Chroma::LinOpSysSolverReliableIBiCGStabClover::operator()(), and Chroma::MdagMSysSolverReliableIBiCGStabClover::operator()().
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 200 of file invmr.cc.
References chi, Chroma::InvMR_a(), Chroma::isign, psi, and RsdMR.
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 std::vector r[k] -= ap[k-1] A . r[k-1] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged?
Arguments:
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 std::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 std::vector
Definition at line 185 of file invmr.cc.
References chi, Chroma::InvMR_a(), Chroma::isign, psi, and RsdMR.
Referenced by Chroma::Ovlap4DQprop::operator()(), Chroma::LinOpSysSolverMR< T >::operator()(), and Chroma::MdagMSysSolverMR< T >::operator()().
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 std::vector r[k] -= ap[k-1] A . r[k-1] ; New residual IF |r[k]| <= RsdCG |Chi| THEN RETURN; Converged?
Arguments:
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 std::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 std::vector
Definition at line 66 of file invmr.cc.
References Chroma::a, c, chi, Chroma::cp, Chroma::d, END_CODE, Chroma::InlinePropAndMatElemDistillation2Env::local::innerProduct(), Chroma::isign, Chroma::k, Chroma::SystemSolverResults_t::n_count, psi, r(), Chroma::SystemSolverResults_t::resid, Chroma::rsd_sq, RsdMR, s, and START_CODE.
Referenced by Chroma::InvMR().
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 std::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:
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 std::vector r Residual std::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:
Operations:
2 A + 2 Nc Ns + N_Count ( 2 A + 10 Nc Ns )
Definition at line 144 of file inv_rel_cg1.cc.
References Chroma::A(), Chroma::chi(), Chroma::InvRelCG1_a(), Chroma::MaxCG, Chroma::n_count, Chroma::psi, and Chroma::RsdCG.
Referenced by Chroma::InvRelGMRESR_CG_a(), and Chroma::Ovlap4DQprop::operator()().
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 20 of file inv_rel_cg1.cc.
References Chroma::a, Chroma::A(), Chroma::b, Chroma::c, Chroma::chi(), Chroma::cp, Chroma::d, Chroma::END_CODE(), Chroma::k, Chroma::MaxCG, Chroma::n_count, Chroma::p, Chroma::PLUS, Chroma::psi, q, Chroma::r, Chroma::rsd_sq, Chroma::RsdCG, Chroma::s(), Chroma::START_CODE(), Chroma::tmp, tmp2, and Chroma::zero.
Referenced by Chroma::InvRelCG1().
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 std::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:
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 std::vector r Residual std::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 )
Definition at line 175 of file inv_rel_cg2.cc.
References Chroma::chi(), Chroma::InvRelCG2_a(), Chroma::MaxCG, Chroma::n_count, Chroma::psi, and Chroma::RsdCG.
Referenced by Chroma::Ovlap4DQprop::operator()().
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 std::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:
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 std::vector r Residual std::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 )
Definition at line 64 of file inv_rel_cg2.cc.
References Chroma::a, Chroma::b, Chroma::c, Chroma::chi(), Chroma::cp, Chroma::d, Chroma::k, Chroma::MaxCG, Chroma::MINUS, Chroma::mp(), Chroma::n_count, Chroma::p, Chroma::PLUS, Chroma::psi, Chroma::r, Chroma::rsd_sq, Chroma::RsdCG, Chroma::s(), Chroma::LinearOperator< T >::subset(), and Chroma::zero.
Referenced by Chroma::InvRelCG2().
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 421 of file minvcg.cc.
References Chroma::chi(), Chroma::MaxCG, Chroma::MInvCG_a(), Chroma::n_count, Chroma::psi, and Chroma::RsdCG.
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 453 of file minvcg_array.cc.
References chi, MaxCG, Chroma::MInvCG_a(), n_count, psi, and Chroma::RsdCG.
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 407 of file minvcg.cc.
References Chroma::chi(), Chroma::MaxCG, Chroma::MInvCG_a(), Chroma::n_count, Chroma::psi, and Chroma::RsdCG.
Referenced by Chroma::OverlapFermActBase::multiQprop(), and Chroma::MdagMMultiSysSolverCGArray< T >::operator()().
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 439 of file minvcg_array.cc.
References chi, MaxCG, Chroma::MInvCG_a(), n_count, psi, and Chroma::RsdCG.
void Chroma::MInvCG2 | ( | const DiffLinearOperator< LatticeFermionF, multi1d< LatticeColorMatrixF >, multi1d< LatticeColorMatrixF > > & | M, |
const LatticeFermionF & | chi, | ||
multi1d< LatticeFermionF > & | psi, | ||
const multi1d< RealF > & | shifts, | ||
const multi1d< RealF > & | RsdCG, | ||
int | MaxCG, | ||
int & | n_count | ||
) |
Definition at line 414 of file minvcg2.cc.
References Chroma::chi(), Chroma::MaxCG, Chroma::MInvCG2_a(), Chroma::n_count, Chroma::psi, and Chroma::RsdCG.
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 | ||
) |
void Chroma::MInvCG2 | ( | const LinearOperator< LatticeFermionD > & | M, |
const LatticeFermionD & | chi, | ||
multi1d< LatticeFermionD > & | psi, | ||
const multi1d< RealD > & | shifts, | ||
const multi1d< RealD > & | RsdCG, | ||
int | MaxCG, | ||
int & | n_count | ||
) |
Definition at line 394 of file minvcg2.cc.
References Chroma::chi(), Chroma::MaxCG, Chroma::MInvCG2_a(), Chroma::n_count, Chroma::psi, and Chroma::RsdCG.
void Chroma::MInvCG2 | ( | const LinearOperator< LatticeFermionF > & | M, |
const LatticeFermionF & | chi, | ||
multi1d< LatticeFermionF > & | psi, | ||
const multi1d< RealF > & | shifts, | ||
const multi1d< RealF > & | RsdCG, | ||
int | MaxCG, | ||
int & | n_count | ||
) |
Definition at line 376 of file minvcg2.cc.
References Chroma::chi(), Chroma::MaxCG, Chroma::MInvCG2_a(), Chroma::n_count, Chroma::psi, and Chroma::RsdCG.
Referenced by checkInverter(), Chroma::MdagMMultiSysSolverCG< T >::operator()(), and Chroma::MdagMMultiSysSolverCGChronoClover::operator()().
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 | ||
) |
void Chroma::MInvCG2_a | ( | const LinearOperator< T > & | M, |
const T & | chi, | ||
multi1d< T > & | psi, | ||
const multi1d< R > & | shifts, | ||
const multi1d< R > & | 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^\dag 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^\dag M . p[0] ; New residual Psi[1] = - b[k] p[k] ; Starting solution std::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^\dag M . p[k] ; New residual Psi[k+1] -= b[k+1] p[k] ; New solution std::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 std::vector r Residual std::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 std::vector
Definition at line 75 of file minvcg2.cc.
References Chroma::a, Chroma::b, Chroma::c, Chroma::chi(), Chroma::chi_norm, Chroma::cp, Chroma::d, Chroma::END_CODE(), Chroma::i, isz, iz, Chroma::k, Chroma::MaxCG, Chroma::MINUS, Chroma::n_count, Chroma::LinearOperator< T >::nFlops(), Chroma::p, Chroma::PLUS, Chroma::psi, Chroma::QDP_error_exit(), Chroma::r, Chroma::rsd_sq, Chroma::RsdCG, Chroma::s(), Chroma::START_CODE(), Chroma::LinearOperator< T >::subset(), z, and Chroma::zero.
Referenced by Chroma::MInvCG2().
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 388 of file minvcg2_accum.cc.
References Chroma::chi(), Chroma::MaxCG, Chroma::MInvCG2Accum_a(), Chroma::n_count, norm, Chroma::psi, and Chroma::RsdCG.
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 372 of file minvcg2_accum.cc.
References Chroma::chi(), Chroma::MaxCG, Chroma::MInvCG2Accum_a(), Chroma::n_count, norm, Chroma::psi, and Chroma::RsdCG.
Referenced by Chroma::MdagMMultiSysSolverCGAccumulate< T >::operator()().
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^\dag 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^\dag M . p[0] ; New residual Psi[1] = - b[k] p[k] ; Starting solution std::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^\dag M . p[k] ; New residual Psi[k+1] -= b[k+1] p[k] ; New solution std::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 std::vector r Residual std::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 std::vector
Definition at line 72 of file minvcg2_accum.cc.
References Chroma::a, Chroma::b, Chroma::c, Chroma::chi(), Chroma::chi_norm, Chroma::cp, Chroma::d, Chroma::END_CODE(), Chroma::i, isz, iz, Chroma::k, Chroma::MaxCG, Chroma::MINUS, Chroma::n_count, Chroma::LinearOperator< T >::nFlops(), norm, Chroma::p, Chroma::PLUS, Chroma::psi, Chroma::QDP_error_exit(), Chroma::r, Chroma::rsd_sq, Chroma::RsdCG, Chroma::s(), Chroma::START_CODE(), Chroma::LinearOperator< T >::subset(), Chroma::tmp, z, and Chroma::zero.
Referenced by Chroma::MInvCG2Accum().
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 std::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 std::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 std::vector r Residual std::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 std::vector
Definition at line 74 of file minvcg_array.cc.
References Chroma::a, Chroma::A(), Chroma::b, c, chi, chi_norm, Chroma::cp, Chroma::d, END_CODE, i, isz, iz, Chroma::k, MaxCG, n, n_count, Chroma::p, Chroma::PLUS, psi, r(), Chroma::rsd_sq, Chroma::RsdCG, s, START_CODE, z, and Chroma::zero.
Referenced by Chroma::MInvCG().
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 std::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 std::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 std::vector r Residual std::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 std::vector
Definition at line 72 of file minvcg.cc.
References Chroma::a, Chroma::A(), Chroma::b, Chroma::c, Chroma::chi(), Chroma::chi_norm, Chroma::cp, Chroma::d, Chroma::END_CODE(), Chroma::i, isz, iz, Chroma::k, Chroma::MaxCG, Chroma::n_count, Chroma::p, Chroma::PLUS, Chroma::psi, Chroma::QDP_error_exit(), Chroma::r, Chroma::rsd_sq, Chroma::RsdCG, Chroma::s(), Chroma::START_CODE(), z, and Chroma::zero.
Referenced by Chroma::MInvCG().
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 477 of file minvcg_accumulate_array.cc.
References chi, MaxCG, Chroma::MInvCGAccum_a(), n_count, norm, psi, and Chroma::RsdCG.
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 461 of file minvcg_accumulate_array.cc.
References chi, MaxCG, Chroma::MInvCGAccum_a(), n_count, norm, psi, and Chroma::RsdCG.
Referenced by Chroma::MdagMMultiSysSolverCGAccumulateArray< T >::operator()().
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 std::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 std::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 std::vector r Residual std::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 std::vector
Definition at line 74 of file minvcg_accumulate_array.cc.
References Chroma::a, Chroma::A(), Chroma::b, c, chi, chi_norm, Chroma::cp, Chroma::d, END_CODE, i, isz, iz, Chroma::k, MaxCG, n, n_count, norm, Chroma::p, Chroma::PLUS, psi, r(), Chroma::rsd_sq, Chroma::RsdCG, s, START_CODE, tmp, z, and Chroma::zero.
Referenced by Chroma::MInvCGAccum().
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 272 of file minvmr.cc.
References Chroma::chi(), Chroma::MInvMR_a(), Chroma::n_count, Chroma::psi, and RsdMR.
void Chroma::MInvMR | ( | const LinearOperator< LatticeFermion > & | M, |
const LatticeFermion & | chi, | ||
multi1d< LatticeFermion > & | 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 std::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 std::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 std::vector r Residual std::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 std::vector
Definition at line 258 of file minvmr.cc.
References Chroma::chi(), Chroma::MInvMR_a(), Chroma::n_count, Chroma::psi, and RsdMR.
Referenced by Chroma::OverlapFermActBase::multiQprop(), and Chroma::LinOpMultiSysSolverMR< T >::operator()().
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 std::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 std::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 std::vector r Residual std::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 std::vector
Definition at line 74 of file minvmr.cc.
References Chroma::a, Chroma::A(), Chroma::c, Chroma::cb, Chroma::chi(), Chroma::chi_norm, Chroma::cp, Chroma::d, Chroma::END_CODE(), FILL(), Chroma::GramSchm(), Chroma::i, Chroma::InlinePropAndMatElemDistillation2Env::local::innerProduct(), isz, Chroma::k, Chroma::mass, Chroma::n_count, Chroma::Ncb, NOperEig, Chroma::PLUS, PRINTF(), Chroma::psi, Chroma::QDP_error_exit(), Chroma::r, RsdMR, Chroma::s(), Chroma::START_CODE(), and Chroma::zero.
Referenced by Chroma::MInvMR().
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 std::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 std::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 std::vector r Residual std::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 std::vector
Definition at line 70 of file minv_rel_cg.cc.
References Chroma::a, Chroma::A(), Chroma::b, Chroma::c, Chroma::chi(), Chroma::chi_norm, Chroma::cp, Chroma::d, Chroma::END_CODE(), Chroma::i, Chroma::InlinePropAndMatElemDistillation2Env::local::innerProduct(), isz, iz, Chroma::k, Chroma::MaxCG, Chroma::n_count, Chroma::p, Chroma::PLUS, Chroma::psi, Chroma::QDP_error_exit(), Chroma::r, Chroma::rsd_sq, Chroma::RsdCG, Chroma::s(), Chroma::START_CODE(), z, and Chroma::zero.
Referenced by Chroma::MInvRelCG().
void Chroma::normGramSchmidt | ( | multi1d< LatticeFermionD > & | vec, |
int | f, | ||
int | t, | ||
const Subset & | sub | ||
) |
Definition at line 88 of file norm_gram_schm.cc.
References t.
void Chroma::normGramSchmidt | ( | multi1d< LatticeFermionF > & | vec, |
int | f, | ||
int | t, | ||
const Subset & | sub | ||
) |
Gram-Schmidt with normalization.
Definition at line 80 of file norm_gram_schm.cc.
References t.
Referenced by Chroma::InvEigCG2Env::InvEigCG2_T(), and Chroma::InvEigCG2ArrayEnv::old_InvEigCG2_T().
void Chroma::normGramSchmidt | ( | multi1d< LatticeStaggeredFermionD > & | vec, |
int | f, | ||
int | t, | ||
const Subset & | sub | ||
) |
Definition at line 104 of file norm_gram_schm.cc.
References t.
void Chroma::normGramSchmidt | ( | multi1d< LatticeStaggeredFermionF > & | vec, |
int | f, | ||
int | t, | ||
const Subset & | sub | ||
) |
Definition at line 96 of file norm_gram_schm.cc.
References t.
void Chroma::normGramSchmidt | ( | multi2d< LatticeFermionD > & | vec, |
int | f, | ||
int | t, | ||
const Subset & | sub | ||
) |
Definition at line 122 of file norm_gram_schm.cc.
References Chroma::normGramSchmidtArray_T(), and t.
void Chroma::normGramSchmidt | ( | multi2d< LatticeFermionF > & | vec, |
int | f, | ||
int | t, | ||
const Subset & | sub | ||
) |
Definition at line 114 of file norm_gram_schm.cc.
References Chroma::normGramSchmidtArray_T(), and t.
void Chroma::normGramSchmidt_T | ( | multi1d< T > & | vec, |
int | f, | ||
int | t, | ||
const Subset & | sub | ||
) |
Gram-Schmidt with normalization.
Definition at line 14 of file norm_gram_schm.cc.
References Chroma::i, Chroma::in, Chroma::InlinePropAndMatElemDistillation2Env::local::innerProduct(), Chroma::k, and t.
void Chroma::normGramSchmidtArray_T | ( | multi2d< T > & | vec, |
int | f, | ||
int | t, | ||
const Subset & | sub | ||
) |
Gram-Schmidt with normalization.
Definition at line 45 of file norm_gram_schm.cc.
References Chroma::i, Chroma::in, Chroma::InlinePropAndMatElemDistillation2Env::local::innerProduct(), Chroma::k, Chroma::s(), and t.
Referenced by Chroma::normGramSchmidt().
void Chroma::read | ( | XMLReader & | xml, |
const std::string & | path, | ||
MultiSysSolverCGParams & | param | ||
) |
Definition at line 11 of file multi_syssolver_cg_params.cc.
References Chroma::MultiSysSolverCGParams::MaxCG, Chroma::read(), and Chroma::MultiSysSolverCGParams::RsdCG.
void Chroma::read | ( | XMLReader & | xml, |
const std::string & | path, | ||
MultiSysSolverMRParams & | param | ||
) |
Definition at line 11 of file multi_syssolver_mr_params.cc.
References Chroma::MultiSysSolverMRParams::MaxCG, Chroma::read(), and Chroma::MultiSysSolverMRParams::RsdCG.
void Chroma::read | ( | XMLReader & | xml, |
const std::string & | path, | ||
SysSolverBiCGStabParams & | param | ||
) |
Definition at line 11 of file syssolver_bicgstab_params.cc.
References Chroma::SysSolverBiCGStabParams::MaxBiCGStab, Chroma::read(), and Chroma::SysSolverBiCGStabParams::RsdBiCGStab.
void Chroma::read | ( | XMLReader & | xml, |
const std::string & | path, | ||
SysSolverCGParams & | param | ||
) |
Definition at line 11 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 std::string & | path, | ||
SysSolverEigCGParams & | param | ||
) |
Definition at line 36 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 std::string & | path, | ||
SysSolverFGMRESDRParams & | p | ||
) |
Definition at line 12 of file syssolver_fgmres_dr_params.cc.
References Chroma::p, and Chroma::readXMLGroup().
Referenced by Chroma::SysSolverFGMRESDRParams::SysSolverFGMRESDRParams().
void Chroma::read | ( | XMLReader & | xml, |
const std::string & | path, | ||
SysSolverMRParams & | param | ||
) |
Definition at line 11 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 std::string & | path, | ||
SysSolverOptEigBiCGParams & | param | ||
) |
Definition at line 36 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 std::string & | path, | ||
SysSolverOptEigCGParams & | param | ||
) |
Definition at line 36 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 std::string & | path, | ||
SysSolverQOPMGParams & | param | ||
) |
Definition at line 11 of file syssolver_qop_mg_params.cc.
References Chroma::SysSolverQOPMGParams::AnisoNu, Chroma::SysSolverQOPMGParams::AnisoXi, Chroma::SysSolverQOPMGParams::Blocking, Chroma::SysSolverQOPMGParams::Clover, defaultread, defaultreadvec, Chroma::SysSolverQOPMGParams::ExternalSubspace, Chroma::SysSolverQOPMGParams::Kappa, Chroma::SysSolverQOPMGParams::KappaCrit, l, Chroma::SysSolverQOPMGParams::Levels, Chroma::SysSolverQOPMGParams::Mass, Chroma::SysSolverQOPMGParams::MassCrit, Chroma::SysSolverQOPMGParams::MaxIter, Chroma::read(), and Chroma::SysSolverQOPMGParams::SubspaceId.
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 std::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:
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 std::vector r Residual std::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 )
Definition at line 69 of file t_wlinvcg.cc.
References Chroma::a, Chroma::b, Chroma::c, Chroma::chi(), Chroma::cp, Chroma::d, Chroma::k, Chroma::MaxCG, Chroma::MINUS, Chroma::mp(), Chroma::n_count, Chroma::p, Chroma::PLUS, Chroma::psi, Chroma::QDP_error_exit(), Chroma::r, Chroma::rsd_sq, Chroma::RsdCG, Chroma::s(), and Chroma::LinearOperator< T >::subset().
void Chroma::write | ( | XMLWriter & | xml, |
const std::string & | path, | ||
const MultiSysSolverCGParams & | param | ||
) |
Definition at line 20 of file multi_syssolver_cg_params.cc.
References Chroma::MultiSysSolverCGParams::MaxCG, Chroma::pop(), Chroma::push(), Chroma::MultiSysSolverCGParams::RsdCG, and Chroma::write().
void Chroma::write | ( | XMLWriter & | xml, |
const std::string & | path, | ||
const MultiSysSolverMRParams & | param | ||
) |
Definition at line 20 of file multi_syssolver_mr_params.cc.
References Chroma::MultiSysSolverMRParams::MaxCG, Chroma::pop(), Chroma::push(), Chroma::MultiSysSolverMRParams::RsdCG, and Chroma::write().
void Chroma::write | ( | XMLWriter & | xml, |
const std::string & | path, | ||
const SysSolverBiCGStabParams & | param | ||
) |
Definition at line 21 of file syssolver_bicgstab_params.cc.
References Chroma::SysSolverBiCGStabParams::MaxBiCGStab, Chroma::pop(), Chroma::push(), Chroma::SysSolverBiCGStabParams::RsdBiCGStab, and Chroma::write().
void Chroma::write | ( | XMLWriter & | xml, |
const std::string & | path, | ||
const SysSolverCGParams & | param | ||
) |
Definition at line 45 of file syssolver_cg_params.cc.
References Chroma::SysSolverCGParams::MaxCG, Chroma::SysSolverCGParams::MaxCGRestart, Chroma::SysSolverCGParams::MinCG, Chroma::pop(), Chroma::push(), Chroma::SysSolverCGParams::RsdCG, Chroma::SysSolverCGParams::RsdCGRestart, and Chroma::write().
void Chroma::write | ( | XMLWriter & | xml, |
const std::string & | path, | ||
const SysSolverEigCGParams & | param | ||
) |
Definition at line 88 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::pop(), Chroma::push(), Chroma::SysSolverEigCGParams::restartTol, Chroma::SysSolverEigCGParams::RsdCG, Chroma::SysSolverEigCGParams::updateRestartTol, Chroma::SysSolverEigCGParams::vPrecCGvecs, Chroma::SysSolverEigCGParams::vPrecCGvecStart, and Chroma::write().
void Chroma::write | ( | XMLWriter & | xml, |
const std::string & | path, | ||
const SysSolverFGMRESDRParams & | p | ||
) |
Definition at line 25 of file syssolver_fgmres_dr_params.cc.
References Chroma::p, and push().
Referenced by Chroma::SysSolverFGMRESDRParams::SysSolverFGMRESDRParams().
void Chroma::write | ( | XMLWriter & | xml, |
const std::string & | path, | ||
const SysSolverMRParams & | param | ||
) |
Definition at line 25 of file syssolver_mr_params.cc.
References Chroma::SysSolverMRParams::MaxMR, Chroma::SysSolverMRParams::MROver, Chroma::pop(), Chroma::push(), Chroma::SysSolverMRParams::RsdMR, and Chroma::write().
void Chroma::write | ( | XMLWriter & | xml, |
const std::string & | path, | ||
const SysSolverOptEigBiCGParams & | param | ||
) |
Definition at line 88 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::pop(), Chroma::push(), Chroma::SysSolverOptEigBiCGParams::restartTol, Chroma::SysSolverOptEigBiCGParams::RsdCG, Chroma::SysSolverOptEigBiCGParams::sort_option, and Chroma::write().
void Chroma::write | ( | XMLWriter & | xml, |
const std::string & | path, | ||
const SysSolverOptEigCGParams & | param | ||
) |
Definition at line 82 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::pop(), Chroma::push(), Chroma::SysSolverOptEigCGParams::restartTol, Chroma::SysSolverOptEigCGParams::RsdCG, Chroma::SysSolverOptEigCGParams::updateRestartTol, and Chroma::write().
void Chroma::write | ( | XMLWriter & | xml, |
const std::string & | path, | ||
const SysSolverQOPMGParams & | param | ||
) |
Definition at line 97 of file syssolver_qop_mg_params.cc.
References Chroma::SysSolverQOPMGParams::ExternalSubspace, Chroma::SysSolverQOPMGParams::Levels, Chroma::pop(), Chroma::push(), Chroma::write(), and writeparam.