|
QUDA
v1.1.0
A library for QCD on GPUs
|
#include <deflation.h>
Public Member Functions | |
| Deflation (DeflationParam ¶m, TimeProfile &profile) | |
| virtual | ~Deflation () |
| void | verify () |
| void | increment (ColorSpinorField &V, int n_ev) |
| void | reduce (double tol, int max_n_ev) |
| void | operator() (ColorSpinorField &out, ColorSpinorField &in) |
| void | loadVectors (ColorSpinorField *RV) |
| Load the eigen space vectors from file. More... | |
| void | saveVectors (ColorSpinorField *RV) |
| Save the eigen space vectors in file. More... | |
| bool | is_complete () |
| Test whether the deflation space is complete and therefore cannot be further extended More... | |
| int | size () |
| return deflation space size More... | |
| double | flops () const |
| Return the total flops done on this and all coarser levels. More... | |
Deflation methods :
Definition at line 78 of file deflation.h.
| quda::Deflation::Deflation | ( | DeflationParam & | param, |
| TimeProfile & | profile | ||
| ) |
Constructor for Deflation class
| param | DeflationParam struct that defines all meta data |
| profile | Timeprofile instance used to profile |
Definition at line 22 of file deflation.cpp.
|
virtual |
Destructor for Deflation class. Frees any existing Deflation instance
Definition at line 61 of file deflation.cpp.
| double quda::Deflation::flops | ( | ) | const |
Return the total flops done on this and all coarser levels.
Definition at line 74 of file deflation.cpp.
| void quda::Deflation::increment | ( | ColorSpinorField & | V, |
| int | n_ev | ||
| ) |
In the incremental eigcg: expands deflation space.
| V | container of new eigenvectors |
| n_ev | number of vectors to load |
Definition at line 180 of file deflation.cpp.
|
inline |
Test whether the deflation space is complete and therefore cannot be further extended
Definition at line 159 of file deflation.h.
| void quda::Deflation::loadVectors | ( | ColorSpinorField * | RV | ) |
Load the eigen space vectors from file.
| RV | Loaded eigen-space vectors (pre-allocated) |
Definition at line 344 of file deflation.cpp.
| void quda::Deflation::operator() | ( | ColorSpinorField & | out, |
| ColorSpinorField & | in | ||
| ) |
This applies deflation operation on a given spinor vector(s)
| out | The projected vector |
| in | The input vector (or equivalently the right hand side vector) |
Definition at line 126 of file deflation.cpp.
| void quda::Deflation::reduce | ( | double | tol, |
| int | max_n_ev | ||
| ) |
In the incremental eigcg: reduce deflation space based on the following criteria:
| tol | : keep all eigenvectors with residual norm less then tol |
| max_n_ev | : keep the lowest max_n_ev eigenvectors (conservative) |
Definition at line 258 of file deflation.cpp.
| void quda::Deflation::saveVectors | ( | ColorSpinorField * | RV | ) |
Save the eigen space vectors in file.
| RV | Save eigen-space vectors from here |
Definition at line 378 of file deflation.cpp.
|
inline |
return deflation space size
Definition at line 164 of file deflation.h.
| void quda::Deflation::verify | ( | ) |
This method verifies the correctness of the MG method. It checks:
Verification that the computed approximate eigenvectors are (not) valid
Definition at line 84 of file deflation.cpp.