Chroma::MdagMSysSolverOptEigCG< T > Class Template Reference
[Inverters]

Solve a M*psi=chi linear system by CG2 with eigenvectors. More...

#include <syssolver_mdagm_OPTeigcg.h>

Inheritance diagram for Chroma::MdagMSysSolverOptEigCG< T >:

Chroma::MdagMSystemSolver< T > Chroma::SystemSolver< T > List of all members.

Public Member Functions

void QIOWriteOptEvecs ()
 Write out an OptEigInfo Type.
void QIOReadOptEvecs ()
 Read a OptEigInfo Type.
 MdagMSysSolverOptEigCG (Handle< LinearOperator< T > > A_, const SysSolverOptEigCGParams &invParam_)
 Constructor.
 ~MdagMSysSolverOptEigCG ()
 Destructor is automatic.
const Subset & subset () const
 Return the subset on which the operator acts.
SystemSolverResults_t operator() (T &psi, const T &chi) const
 Solver the linear system.
SystemSolverResults_t operator() (T &psi, const T &chi, AbsChronologicalPredictor4D< T > &predictor) const
 Solve the linear system starting with a chrono guess.
template<>
SystemSolverResults_t operator() (LatticeFermionF &psi, const LatticeFermionF &chi) const
template<>
SystemSolverResults_t operator() (LatticeFermionD &psi, const LatticeFermionD &chi) const
template<>
SystemSolverResults_t operator() (LatticeStaggeredFermionF &psi, const LatticeStaggeredFermionF &chi) const
template<>
SystemSolverResults_t operator() (LatticeStaggeredFermionD &psi, const LatticeStaggeredFermionD &chi) const

Private Member Functions

 MdagMSysSolverOptEigCG ()

Private Attributes

int numMatvecs
Handle< LinearOperator< T > > MdagM
Handle< LinearOperator< T > > A
SysSolverOptEigCGParams invParam

Detailed Description

template<typename T>
class Chroma::MdagMSysSolverOptEigCG< T >

Solve a M*psi=chi linear system by CG2 with eigenvectors.

Definition at line 38 of file syssolver_mdagm_OPTeigcg.h.


Constructor & Destructor Documentation

template<typename T>
Chroma::MdagMSysSolverOptEigCG< T >::MdagMSysSolverOptEigCG ( Handle< LinearOperator< T > >  A_,
const SysSolverOptEigCGParams invParam_ 
) [inline]

Constructor.

Parameters:
M_ Linear operator ( Read )
invParam_ inverter parameters ( Read )

Definition at line 190 of file syssolver_mdagm_OPTeigcg.h.

References Chroma::MdagMSysSolverOptEigCG< T >::A, Chroma::SysSolverOptEigCGParams::eigen_id, Chroma::SysSolverOptEigCGParams::file, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), Chroma::MdagMSysSolverOptEigCG< T >::invParam, Chroma::SysSolverOptEigCGParams::Neig_max, Chroma::MdagMSysSolverOptEigCG< T >::numMatvecs, Chroma::MdagMSysSolverOptEigCG< T >::QIOReadOptEvecs(), Chroma::SysSolverOptEigCGParams::File_t::read, and Chroma::SysSolverOptEigCGParams::restartTol.

template<typename T>
Chroma::MdagMSysSolverOptEigCG< T >::~MdagMSysSolverOptEigCG (  )  [inline]

Destructor is automatic.

Definition at line 213 of file syssolver_mdagm_OPTeigcg.h.

References Chroma::SysSolverOptEigCGParams::cleanUpEvecs, Chroma::SysSolverOptEigCGParams::eigen_id, Chroma::SysSolverOptEigCGParams::file, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), Chroma::MdagMSysSolverOptEigCG< T >::invParam, Chroma::MdagMSysSolverOptEigCG< T >::QIOWriteOptEvecs(), and Chroma::SysSolverOptEigCGParams::File_t::write.

template<typename T>
Chroma::MdagMSysSolverOptEigCG< T >::MdagMSysSolverOptEigCG (  )  [inline, private]

Definition at line 272 of file syssolver_mdagm_OPTeigcg.h.


Member Function Documentation

template<>
SystemSolverResults_t Chroma::MdagMSysSolverOptEigCG< LatticeStaggeredFermionD >::operator() ( LatticeStaggeredFermionD &  psi,
const LatticeStaggeredFermionD &  chi 
) const

Definition at line 300 of file syssolver_mdagm_OPTeigcg.cc.

References Chroma::MdagMSysSolverOptEigCG< T >::A, Chroma::MdagMSysSolverOptEigCG< T >::invParam, Chroma::MdagMSysSolverOptEigCG< T >::MdagM, and Chroma::sysSolver().

template<>
SystemSolverResults_t Chroma::MdagMSysSolverOptEigCG< LatticeStaggeredFermionF >::operator() ( LatticeStaggeredFermionF &  psi,
const LatticeStaggeredFermionF &  chi 
) const

Definition at line 292 of file syssolver_mdagm_OPTeigcg.cc.

References Chroma::MdagMSysSolverOptEigCG< T >::A, Chroma::MdagMSysSolverOptEigCG< T >::invParam, Chroma::MdagMSysSolverOptEigCG< T >::MdagM, and Chroma::sysSolver().

template<>
SystemSolverResults_t Chroma::MdagMSysSolverOptEigCG< LatticeFermionD >::operator() ( LatticeFermionD &  psi,
const LatticeFermionD &  chi 
) const

Definition at line 280 of file syssolver_mdagm_OPTeigcg.cc.

References Chroma::MdagMSysSolverOptEigCG< T >::A, Chroma::MdagMSysSolverOptEigCG< T >::invParam, Chroma::MdagMSysSolverOptEigCG< T >::MdagM, and Chroma::sysSolver().

template<>
SystemSolverResults_t Chroma::MdagMSysSolverOptEigCG< LatticeFermionF >::operator() ( LatticeFermionF &  psi,
const LatticeFermionF &  chi 
) const

Definition at line 272 of file syssolver_mdagm_OPTeigcg.cc.

References Chroma::MdagMSysSolverOptEigCG< T >::A, Chroma::MdagMSysSolverOptEigCG< T >::invParam, Chroma::MdagMSysSolverOptEigCG< T >::MdagM, and Chroma::sysSolver().

template<typename T>
SystemSolverResults_t Chroma::MdagMSysSolverOptEigCG< T >::operator() ( T psi,
const T chi,
AbsChronologicalPredictor4D< T > &  predictor 
) const [inline, virtual]

Solve the linear system starting with a chrono guess.

Parameters:
psi solution (Write)
chi source (Read)
predictor a chronological predictor (Read)
Returns:
syssolver results

Implements Chroma::MdagMSystemSolver< T >.

Definition at line 247 of file syssolver_mdagm_OPTeigcg.h.

References Chroma::MdagMSysSolverOptEigCG< T >::A, END_CODE, Chroma::MdagMSysSolverOptEigCG< T >::MdagM, Chroma::AbsChronologicalPredictor4D< T >::newVector(), and START_CODE.

template<typename T>
SystemSolverResults_t Chroma::MdagMSysSolverOptEigCG< T >::operator() ( T psi,
const T chi 
) const [virtual]

Solver the linear system.

Parameters:
psi solution ( Modify )
chi source ( Read )
Returns:
syssolver results
Definitions supplied in the correspond .cc file

Implements Chroma::MdagMSystemSolver< T >.

template<typename T>
void Chroma::MdagMSysSolverOptEigCG< T >::QIOReadOptEvecs (  )  [inline]

Read a OptEigInfo Type.

Definition at line 107 of file syssolver_mdagm_OPTeigcg.h.

References Chroma::LinAlg::OptEigInfo::CvToEigCGvec(), Chroma::SysSolverOptEigCGParams::eigen_id, Chroma::LinAlg::OptEigInfo::evals, Chroma::SysSolverOptEigCGParams::file, Chroma::SysSolverOptEigCGParams::File_t::file_name, Chroma::LinAlg::OptEigInfo::H, Chroma::LinAlg::OptEigInfo::HU, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), Chroma::MdagMSysSolverOptEigCG< T >::invParam, Chroma::LinAlg::OptEigInfo::ncurEvals, Chroma::read(), and Chroma::MdagMSysSolverOptEigCG< T >::subset().

Referenced by Chroma::MdagMSysSolverOptEigCG< T >::MdagMSysSolverOptEigCG().

template<typename T>
void Chroma::MdagMSysSolverOptEigCG< T >::QIOWriteOptEvecs (  )  [inline]

Write out an OptEigInfo Type.

Definition at line 43 of file syssolver_mdagm_OPTeigcg.h.

References Chroma::LinAlg::OptEigInfo::CvToLatFerm(), Chroma::SysSolverOptEigCGParams::eigen_id, Chroma::LinAlg::OptEigInfo::evals, Chroma::SysSolverOptEigCGParams::file, Chroma::SysSolverOptEigCGParams::File_t::file_name, Chroma::SysSolverOptEigCGParams::File_t::file_volfmt, Chroma::LinAlg::OptEigInfo::H, Chroma::LinAlg::OptEigInfo::HU, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), Chroma::MdagMSysSolverOptEigCG< T >::invParam, Chroma::LinAlg::OptEigInfo::lde, Chroma::LinAlg::OptEigInfo::N, Chroma::LinAlg::OptEigInfo::ncurEvals, Chroma::LinAlg::OptEigInfo::restartTol, Chroma::MdagMSysSolverOptEigCG< T >::subset(), Chroma::uniqueId(), and Chroma::write().

Referenced by Chroma::MdagMSysSolverOptEigCG< T >::~MdagMSysSolverOptEigCG().

template<typename T>
const Subset& Chroma::MdagMSysSolverOptEigCG< T >::subset ( void   )  const [inline, virtual]

Return the subset on which the operator acts.

Implements Chroma::MdagMSystemSolver< T >.

Definition at line 226 of file syssolver_mdagm_OPTeigcg.h.

References Chroma::MdagMSysSolverOptEigCG< T >::A.

Referenced by Chroma::MdagMSysSolverOptEigCG< T >::QIOReadOptEvecs(), and Chroma::MdagMSysSolverOptEigCG< T >::QIOWriteOptEvecs().


Member Data Documentation

template<typename T>
Handle< LinearOperator<T> > Chroma::MdagMSysSolverOptEigCG< T >::A [private]

Definition at line 275 of file syssolver_mdagm_OPTeigcg.h.

Referenced by Chroma::MdagMSysSolverOptEigCG< T >::MdagMSysSolverOptEigCG(), Chroma::MdagMSysSolverOptEigCG< T >::operator()(), and Chroma::MdagMSysSolverOptEigCG< T >::subset().

template<typename T>
SysSolverOptEigCGParams Chroma::MdagMSysSolverOptEigCG< T >::invParam [private]

Definition at line 276 of file syssolver_mdagm_OPTeigcg.h.

Referenced by Chroma::MdagMSysSolverOptEigCG< T >::MdagMSysSolverOptEigCG(), Chroma::MdagMSysSolverOptEigCG< T >::operator()(), Chroma::MdagMSysSolverOptEigCG< T >::QIOReadOptEvecs(), Chroma::MdagMSysSolverOptEigCG< T >::QIOWriteOptEvecs(), and Chroma::MdagMSysSolverOptEigCG< T >::~MdagMSysSolverOptEigCG().

template<typename T>
Handle< LinearOperator<T> > Chroma::MdagMSysSolverOptEigCG< T >::MdagM [private]

Definition at line 274 of file syssolver_mdagm_OPTeigcg.h.

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

template<typename T>
int Chroma::MdagMSysSolverOptEigCG< T >::numMatvecs [private]

Definition at line 273 of file syssolver_mdagm_OPTeigcg.h.

Referenced by Chroma::MdagMSysSolverOptEigCG< T >::MdagMSysSolverOptEigCG().


The documentation for this class was generated from the following file:
Generated on Sun Nov 22 04:40:07 2009 for CHROMA by  doxygen 1.4.7