QUDA  v1.1.0
A library for QCD on GPUs
Public Member Functions | List of all members
quda::Deflation Class Reference

#include <deflation.h>

Public Member Functions

 Deflation (DeflationParam &param, 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...
 

Detailed Description

Deflation methods :

Definition at line 78 of file deflation.h.

Constructor & Destructor Documentation

◆ Deflation()

quda::Deflation::Deflation ( DeflationParam param,
TimeProfile profile 
)

Constructor for Deflation class

Parameters
paramDeflationParam struct that defines all meta data
profileTimeprofile instance used to profile

Definition at line 22 of file deflation.cpp.

◆ ~Deflation()

quda::Deflation::~Deflation ( )
virtual

Destructor for Deflation class. Frees any existing Deflation instance

Definition at line 61 of file deflation.cpp.

Member Function Documentation

◆ flops()

double quda::Deflation::flops ( ) const

Return the total flops done on this and all coarser levels.

Definition at line 74 of file deflation.cpp.

◆ increment()

void quda::Deflation::increment ( ColorSpinorField V,
int  n_ev 
)

In the incremental eigcg: expands deflation space.

Parameters
Vcontainer of new eigenvectors
n_evnumber of vectors to load

Definition at line 180 of file deflation.cpp.

◆ is_complete()

bool quda::Deflation::is_complete ( )
inline

Test whether the deflation space is complete and therefore cannot be further extended

Definition at line 159 of file deflation.h.

◆ loadVectors()

void quda::Deflation::loadVectors ( ColorSpinorField RV)

Load the eigen space vectors from file.

Parameters
RVLoaded eigen-space vectors (pre-allocated)

Definition at line 344 of file deflation.cpp.

◆ operator()()

void quda::Deflation::operator() ( ColorSpinorField out,
ColorSpinorField in 
)

This applies deflation operation on a given spinor vector(s)

Parameters
outThe projected vector
inThe input vector (or equivalently the right hand side vector)

Definition at line 126 of file deflation.cpp.

◆ reduce()

void quda::Deflation::reduce ( double  tol,
int  max_n_ev 
)

In the incremental eigcg: reduce deflation space based on the following criteria:

Parameters
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.

◆ saveVectors()

void quda::Deflation::saveVectors ( ColorSpinorField RV)

Save the eigen space vectors in file.

Parameters
RVSave eigen-space vectors from here

Definition at line 378 of file deflation.cpp.

◆ size()

int quda::Deflation::size ( )
inline

return deflation space size

Definition at line 164 of file deflation.h.

◆ verify()

void quda::Deflation::verify ( )

This method verifies the correctness of the MG method. It checks:

  1. eigen-vector accuracy
  2. ...

Verification that the computed approximate eigenvectors are (not) valid

Definition at line 84 of file deflation.cpp.


The documentation for this class was generated from the following files: