CHROMA
|
Solve a M*psi=chi linear system using the external QDP multigrid inverter. More...
#include <syssolver_linop_qop_mg_w.h>
Public Types | |
typedef LatticeFermion | T |
typedef LatticeColorMatrix | U |
typedef multi1d< LatticeColorMatrix > | Q |
typedef void | WilsonMGSubspace |
Public Member Functions | |
LinOpSysSolverQOPMG (Handle< LinearOperator< T > > A_, Handle< FermState< T, Q, Q > > state_, const SysSolverQOPMGParams &invParam_) | |
Constructor. More... | |
~LinOpSysSolverQOPMG () | |
Destructor finalizes the QDP environment. More... | |
const Subset & | subset () const |
Return the subset on which the operator acts. More... | |
SystemSolverResults_t | operator() (T &psi, const T &chi) const |
Solver the linear system. More... | |
void | eraseSubspace () |
Erasee the subspace. More... | |
WilsonMGSubspace * | getSubspace () const |
Get the subspace to use. More... | |
Public Member Functions inherited from Chroma::SystemSolver< LatticeFermion > | |
virtual | ~SystemSolver () |
Virtual destructor to help with cleanup;. More... | |
Private Member Functions | |
LinOpSysSolverQOPMG () | |
Private Attributes | |
Handle< FermState< T, Q, Q > > | state |
Handle< LinearOperator< T > > | A |
SysSolverQOPMGParams | invParam |
WilsonMGSubspace * | subspace |
Solve a M*psi=chi linear system using the external QDP multigrid inverter.
Definition at line 31 of file syssolver_linop_qop_mg_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::LinOpSysSolverQOPMG::Q |
Definition at line 36 of file syssolver_linop_qop_mg_w.h.
typedef LatticeFermion Chroma::LinOpSysSolverQOPMG::T |
Definition at line 34 of file syssolver_linop_qop_mg_w.h.
typedef LatticeColorMatrix Chroma::LinOpSysSolverQOPMG::U |
Definition at line 35 of file syssolver_linop_qop_mg_w.h.
typedef void Chroma::LinOpSysSolverQOPMG::WilsonMGSubspace |
Definition at line 39 of file syssolver_linop_qop_mg_w.h.
Chroma::LinOpSysSolverQOPMG::LinOpSysSolverQOPMG | ( | Handle< LinearOperator< T > > | A_, |
Handle< FermState< T, Q, Q > > | state_, | ||
const SysSolverQOPMGParams & | invParam_ | ||
) |
Constructor.
A_ | Linear operator ( Read ) |
state_ | The ferm State (Read) |
invParam | inverter parameters ( Read ) |
Chroma::LinOpSysSolverQOPMG::~LinOpSysSolverQOPMG | ( | ) |
Destructor finalizes the QDP environment.
Definition at line 140 of file syssolver_linop_qop_mg_w.cc.
References Chroma::finalize(), and MGP().
|
inlineprivate |
Definition at line 80 of file syssolver_linop_qop_mg_w.h.
void Chroma::LinOpSysSolverQOPMG::eraseSubspace | ( | ) |
LinOpSysSolverQOPMG::WilsonMGSubspace * Chroma::LinOpSysSolverQOPMG::getSubspace | ( | ) | const |
Get the subspace to use.
If the subspace is internal this creates it if needed and returns the pointer if it is external, this will look it up in the map and return the pointer. If the entry in the map does not exist, it will create and add the space to the map. so there is no need to separately save.. NB: External subspace creation allocates memory. Which may persist beyond the life of an object (that's the point actually). There is an ERASE_MG_SUBSPACE measurement that can erase this space later
Definition at line 314 of file syssolver_linop_qop_mg_w.cc.
References Chroma::QUDAMGUtils::create_subspace(), Chroma::d, MGP(), pop(), push(), and Chroma::write().
|
virtual |
Solver the linear system.
Solve the linear system.
psi | solution ( Modify ) |
chi | source ( Read ) |
Implements Chroma::SystemSolver< LatticeFermion >.
Definition at line 245 of file syssolver_linop_qop_mg_w.cc.
References Chroma::A(), chi, Chroma::d, END_CODE, Chroma::fermionsol, Chroma::fermionsrc, MGP(), Chroma::SystemSolverResults_t::n_count, Chroma::PLUS, psi, r(), Chroma::SystemSolverResults_t::resid, START_CODE, and tmp.
|
inlinevirtual |
Return the subset on which the operator acts.
Implements Chroma::SystemSolver< LatticeFermion >.
Definition at line 55 of file syssolver_linop_qop_mg_w.h.
References A.
|
private |
Definition at line 82 of file syssolver_linop_qop_mg_w.h.
Referenced by subset().
|
private |
Definition at line 83 of file syssolver_linop_qop_mg_w.h.
Definition at line 81 of file syssolver_linop_qop_mg_w.h.
|
mutableprivate |
Definition at line 84 of file syssolver_linop_qop_mg_w.h.