QUDA
v1.1.0
A library for QCD on GPUs
|
#include <multigrid.h>
Public Member Functions | |
MGParam (QudaMultigridParam ¶m, std::vector< ColorSpinorField * > &B, DiracMatrix *matResidual, DiracMatrix *matSmooth, DiracMatrix *matSmoothSloppy, int level=0) | |
MGParam (const MGParam ¶m, std::vector< ColorSpinorField * > &B, DiracMatrix *matResidual, DiracMatrix *matSmooth, DiracMatrix *matSmoothSloppy, int level=0) | |
Public Member Functions inherited from quda::SolverParam | |
SolverParam () | |
SolverParam (const QudaInvertParam ¶m) | |
SolverParam (const SolverParam ¶m) | |
~SolverParam () | |
void | updateInvertParam (QudaInvertParam ¶m, int offset=-1) |
void | updateRhsIndex (QudaInvertParam ¶m) |
This struct contains all the metadata required to define the multigrid solver. For each level of multigrid we will have an instance of MGParam describing all the meta data appropriate for given level.
Definition at line 25 of file multigrid.h.
|
inline |
This is top level instantiation done when we start creating the multigrid operator.
Definition at line 110 of file multigrid.h.
|
inline |
Definition at line 143 of file multigrid.h.
std::vector<ColorSpinorField*>& quda::MGParam::B |
The null space vectors
Definition at line 56 of file multigrid.h.
MG* quda::MGParam::coarse |
This is the next lower level
Definition at line 50 of file multigrid.h.
QudaSolutionType quda::MGParam::coarse_grid_solution_type |
The type of residual to send to the next coarse grid, and thus the type of solution to receive back from this coarse grid
Definition at line 87 of file multigrid.h.
QudaMultigridCycleType quda::MGParam::cycle_type |
Multigrid cycle type
Definition at line 68 of file multigrid.h.
char quda::MGParam::filename[100] |
Filename for where to load/store the null space
Definition at line 99 of file multigrid.h.
MG* quda::MGParam::fine |
This is the immediate finer level
Definition at line 53 of file multigrid.h.
int quda::MGParam::geoBlockSize[QUDA_MAX_DIM] |
Geometric block size
Definition at line 38 of file multigrid.h.
QudaBoolean quda::MGParam::global_reduction |
Whether to use global or local (node) reductions
Definition at line 71 of file multigrid.h.
int quda::MGParam::level |
What is the level of this instance
Definition at line 32 of file multigrid.h.
QudaFieldLocation quda::MGParam::location |
Where to compute this level of multigrid
Definition at line 93 of file multigrid.h.
DiracMatrix* quda::MGParam::matResidual |
The Dirac operator to use for residual computation
Definition at line 74 of file multigrid.h.
DiracMatrix* quda::MGParam::matSmooth |
The Dirac operator to use for smoothing
Definition at line 77 of file multigrid.h.
DiracMatrix* quda::MGParam::matSmoothSloppy |
The sloppy Dirac operator to use for smoothing
Definition at line 80 of file multigrid.h.
QudaMultigridParam& quda::MGParam::mg_global |
This points to the parameter struct that is passed into QUDA. We use this to set per-level parameters
Definition at line 29 of file multigrid.h.
int quda::MGParam::NblockOrtho |
Number of times to apply Gram-Schmidt within a block
Definition at line 47 of file multigrid.h.
int quda::MGParam::Nlevel |
Number of levels in the solver
Definition at line 35 of file multigrid.h.
int quda::MGParam::nu_post |
Number of pre-smoothing applications to perform
Definition at line 62 of file multigrid.h.
int quda::MGParam::nu_pre |
Number of pre-smoothing applications to perform
Definition at line 59 of file multigrid.h.
int quda::MGParam::Nvec |
Number of vectors used to define coarse space
Definition at line 44 of file multigrid.h.
QudaFieldLocation quda::MGParam::setup_location |
Where to compute this level of the multigrid setup
Definition at line 96 of file multigrid.h.
QudaInverterType quda::MGParam::smoother |
What type of smoother to use
Definition at line 83 of file multigrid.h.
QudaSolveType quda::MGParam::smoother_solve_type |
The type of smoother solve to do on each grid (e/o preconditioning or not)
Definition at line 90 of file multigrid.h.
double quda::MGParam::smoother_tol |
Tolerance to use for the solver / smoother (if applicable)
Definition at line 65 of file multigrid.h.
int quda::MGParam::spinBlockSize |
Spin block size
Definition at line 41 of file multigrid.h.
QudaTransferType quda::MGParam::transfer_type |
Whether or not this is a staggered solve or not
Definition at line 102 of file multigrid.h.
bool quda::MGParam::use_mma |
Whether to use tensor cores (if available)
Definition at line 105 of file multigrid.h.