QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Attributes | List of all members
QudaMultigridParam_s Struct Reference

#include <quda.h>

Collaboration diagram for QudaMultigridParam_s:
Collaboration graph
[legend]

Public Attributes

QudaInvertParaminvert_param
 
QudaEigParameig_param [QUDA_MAX_MG_LEVEL]
 
int n_level
 
int geo_block_size [QUDA_MAX_MG_LEVEL][QUDA_MAX_DIM]
 
int spin_block_size [QUDA_MAX_MG_LEVEL]
 
int n_vec [QUDA_MAX_MG_LEVEL]
 
QudaPrecision precision_null [QUDA_MAX_MG_LEVEL]
 
int n_block_ortho [QUDA_MAX_MG_LEVEL]
 
QudaVerbosity verbosity [QUDA_MAX_MG_LEVEL]
 
QudaInverterType setup_inv_type [QUDA_MAX_MG_LEVEL]
 
int num_setup_iter [QUDA_MAX_MG_LEVEL]
 
double setup_tol [QUDA_MAX_MG_LEVEL]
 
int setup_maxiter [QUDA_MAX_MG_LEVEL]
 
int setup_maxiter_refresh [QUDA_MAX_MG_LEVEL]
 
QudaCABasis setup_ca_basis [QUDA_MAX_MG_LEVEL]
 
int setup_ca_basis_size [QUDA_MAX_MG_LEVEL]
 
double setup_ca_lambda_min [QUDA_MAX_MG_LEVEL]
 
double setup_ca_lambda_max [QUDA_MAX_MG_LEVEL]
 
QudaSetupType setup_type
 
QudaBoolean pre_orthonormalize
 
QudaBoolean post_orthonormalize
 
QudaInverterType coarse_solver [QUDA_MAX_MG_LEVEL]
 
double coarse_solver_tol [QUDA_MAX_MG_LEVEL]
 
int coarse_solver_maxiter [QUDA_MAX_MG_LEVEL]
 
QudaCABasis coarse_solver_ca_basis [QUDA_MAX_MG_LEVEL]
 
int coarse_solver_ca_basis_size [QUDA_MAX_MG_LEVEL]
 
double coarse_solver_ca_lambda_min [QUDA_MAX_MG_LEVEL]
 
double coarse_solver_ca_lambda_max [QUDA_MAX_MG_LEVEL]
 
QudaInverterType smoother [QUDA_MAX_MG_LEVEL]
 
double smoother_tol [QUDA_MAX_MG_LEVEL]
 
int nu_pre [QUDA_MAX_MG_LEVEL]
 
int nu_post [QUDA_MAX_MG_LEVEL]
 
double omega [QUDA_MAX_MG_LEVEL]
 
QudaPrecision smoother_halo_precision [QUDA_MAX_MG_LEVEL]
 
QudaSchwarzType smoother_schwarz_type [QUDA_MAX_MG_LEVEL]
 
int smoother_schwarz_cycle [QUDA_MAX_MG_LEVEL]
 
QudaSolutionType coarse_grid_solution_type [QUDA_MAX_MG_LEVEL]
 
QudaSolveType smoother_solve_type [QUDA_MAX_MG_LEVEL]
 
QudaMultigridCycleType cycle_type [QUDA_MAX_MG_LEVEL]
 
QudaBoolean global_reduction [QUDA_MAX_MG_LEVEL]
 
QudaFieldLocation location [QUDA_MAX_MG_LEVEL]
 
QudaFieldLocation setup_location [QUDA_MAX_MG_LEVEL]
 
QudaBoolean use_eig_solver [QUDA_MAX_MG_LEVEL]
 
QudaBoolean setup_minimize_memory
 
QudaComputeNullVector compute_null_vector
 
QudaBoolean generate_all_levels
 
QudaBoolean run_verify
 
QudaBoolean run_low_mode_check
 
QudaBoolean run_oblique_proj_check
 
QudaBoolean vec_load [QUDA_MAX_MG_LEVEL]
 
char vec_infile [QUDA_MAX_MG_LEVEL][256]
 
QudaBoolean vec_store [QUDA_MAX_MG_LEVEL]
 
char vec_outfile [QUDA_MAX_MG_LEVEL][256]
 
QudaBoolean coarse_guess
 
double gflops
 
double secs
 
double mu_factor [QUDA_MAX_MG_LEVEL]
 

Detailed Description

Definition at line 476 of file quda.h.

Member Data Documentation

◆ coarse_grid_solution_type

QudaSolutionType QudaMultigridParam_s::coarse_grid_solution_type[QUDA_MAX_MG_LEVEL]

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 586 of file quda.h.

Referenced by quda::MG::createCoarseDirac(), quda::MG::createCoarseSolver(), setMultigridParam(), and quda::MG::verify().

◆ coarse_guess

QudaBoolean QudaMultigridParam_s::coarse_guess

Whether to use and initial guess during coarse grid deflation

Definition at line 639 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), and setMultigridParam().

◆ coarse_solver

QudaInverterType QudaMultigridParam_s::coarse_solver[QUDA_MAX_MG_LEVEL]

The solver that wraps around the coarse grid correction and smoother

Definition at line 540 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), and setMultigridParam().

◆ coarse_solver_ca_basis

QudaCABasis QudaMultigridParam_s::coarse_solver_ca_basis[QUDA_MAX_MG_LEVEL]

Basis to use for CA-CGN(E/R) coarse solver

Definition at line 549 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), and setMultigridParam().

◆ coarse_solver_ca_basis_size

int QudaMultigridParam_s::coarse_solver_ca_basis_size[QUDA_MAX_MG_LEVEL]

Basis size for CACG coarse solver

Definition at line 552 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), and setMultigridParam().

◆ coarse_solver_ca_lambda_max

double QudaMultigridParam_s::coarse_solver_ca_lambda_max[QUDA_MAX_MG_LEVEL]

Maximum eigenvalue for Chebyshev CA basis

Definition at line 558 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), and setMultigridParam().

◆ coarse_solver_ca_lambda_min

double QudaMultigridParam_s::coarse_solver_ca_lambda_min[QUDA_MAX_MG_LEVEL]

Minimum eigenvalue for Chebyshev CA basis

Definition at line 555 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), and setMultigridParam().

◆ coarse_solver_maxiter

int QudaMultigridParam_s::coarse_solver_maxiter[QUDA_MAX_MG_LEVEL]

Maximum number of iterations for the solver that wraps around the coarse grid correction and smoother

Definition at line 546 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), quda::MG::reset(), and setMultigridParam().

◆ coarse_solver_tol

double QudaMultigridParam_s::coarse_solver_tol[QUDA_MAX_MG_LEVEL]

Tolerance for the solver that wraps around the coarse grid correction and smoother

Definition at line 543 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), and setMultigridParam().

◆ compute_null_vector

QudaComputeNullVector QudaMultigridParam_s::compute_null_vector

Whether to compute the null vectors or reload them

Definition at line 612 of file quda.h.

Referenced by quda::MG::MG(), printQudaMultigridParam(), and setMultigridParam().

◆ cycle_type

QudaMultigridCycleType QudaMultigridParam_s::cycle_type[QUDA_MAX_MG_LEVEL]

The type of multigrid cycle to perform at each level

Definition at line 592 of file quda.h.

Referenced by setMultigridParam().

◆ eig_param

QudaEigParam* QudaMultigridParam_s::eig_param[QUDA_MAX_MG_LEVEL]

Definition at line 480 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), quda::MG::generateEigenVectors(), and main().

◆ generate_all_levels

QudaBoolean QudaMultigridParam_s::generate_all_levels

Whether to generate on all levels or just on level 0

Definition at line 615 of file quda.h.

Referenced by quda::MG::generateNullVectors(), quda::MG::MG(), printQudaMultigridParam(), quda::MG::reset(), and setMultigridParam().

◆ geo_block_size

int QudaMultigridParam_s::geo_block_size[QUDA_MAX_MG_LEVEL][QUDA_MAX_DIM]

Geometric block sizes to use on each level

Definition at line 486 of file quda.h.

Referenced by quda::MGParam::MGParam(), quda::MG::reset(), and setMultigridParam().

◆ gflops

double QudaMultigridParam_s::gflops

The Gflops rate of the multigrid solver setup The time taken by the multigrid solver setup

Definition at line 642 of file quda.h.

Referenced by quda::multigrid_solver::multigrid_solver().

◆ global_reduction

QudaBoolean QudaMultigridParam_s::global_reduction[QUDA_MAX_MG_LEVEL]

Whether to use global reductions or not for the smoother / solver at each level

Definition at line 595 of file quda.h.

Referenced by setMultigridParam().

◆ invert_param

QudaInvertParam* QudaMultigridParam_s::invert_param

◆ location

QudaFieldLocation QudaMultigridParam_s::location[QUDA_MAX_MG_LEVEL]

Location where each level should be done

Definition at line 598 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), quda::MG::reset(), setMultigridParam(), and quda::MG::verify().

◆ mu_factor

double QudaMultigridParam_s::mu_factor[QUDA_MAX_MG_LEVEL]

Multiplicative factor for the mu parameter

Definition at line 648 of file quda.h.

Referenced by quda::MG::createCoarseDirac(), setMultigridParam(), and quda::MG::verify().

◆ n_block_ortho

int QudaMultigridParam_s::n_block_ortho[QUDA_MAX_MG_LEVEL]

Number of times to repeat Gram-Schmidt in block orthogonalization

Definition at line 498 of file quda.h.

Referenced by setMultigridParam().

◆ n_level

int QudaMultigridParam_s::n_level

Number of multigrid levels

Definition at line 483 of file quda.h.

Referenced by main(), quda::multigrid_solver::multigrid_solver(), printQudaMultigridParam(), and setMultigridParam().

◆ n_vec

int QudaMultigridParam_s::n_vec[QUDA_MAX_MG_LEVEL]

◆ nu_post

int QudaMultigridParam_s::nu_post[QUDA_MAX_MG_LEVEL]

Number of post-smoother applications on each level

Definition at line 570 of file quda.h.

Referenced by setMultigridParam().

◆ nu_pre

int QudaMultigridParam_s::nu_pre[QUDA_MAX_MG_LEVEL]

Number of pre-smoother applications on each level

Definition at line 567 of file quda.h.

Referenced by setMultigridParam().

◆ num_setup_iter

int QudaMultigridParam_s::num_setup_iter[QUDA_MAX_MG_LEVEL]

Number of setup iterations

Definition at line 507 of file quda.h.

Referenced by quda::MG::generateNullVectors(), quda::MG::MG(), and setMultigridParam().

◆ omega

double QudaMultigridParam_s::omega[QUDA_MAX_MG_LEVEL]

Over/under relaxation factor for the smoother at each level

Definition at line 573 of file quda.h.

Referenced by quda::MGParam::MGParam(), and setMultigridParam().

◆ post_orthonormalize

QudaBoolean QudaMultigridParam_s::post_orthonormalize

Post orthonormalize vectors in the setup phase

Definition at line 537 of file quda.h.

Referenced by quda::MG::buildFreeVectors(), quda::MG::generateNullVectors(), and setMultigridParam().

◆ pre_orthonormalize

QudaBoolean QudaMultigridParam_s::pre_orthonormalize

Pre orthonormalize vectors in the setup phase

Definition at line 534 of file quda.h.

Referenced by quda::MG::generateNullVectors(), and setMultigridParam().

◆ precision_null

QudaPrecision QudaMultigridParam_s::precision_null[QUDA_MAX_MG_LEVEL]

Precision to store the null-space vectors in (post block orthogonalization)

Definition at line 495 of file quda.h.

Referenced by quda::MG::createCoarseDirac(), quda::multigrid_solver::multigrid_solver(), quda::MG::reset(), setMultigridParam(), and quda::MG::verify().

◆ run_low_mode_check

QudaBoolean QudaMultigridParam_s::run_low_mode_check

Whether to run null Vs eigen vector overlap checks once set up is complete

Definition at line 621 of file quda.h.

Referenced by setMultigridParam(), and quda::MG::verify().

◆ run_oblique_proj_check

QudaBoolean QudaMultigridParam_s::run_oblique_proj_check

Whether to run null vector oblique checks once set up is complete

Definition at line 624 of file quda.h.

Referenced by setMultigridParam(), and quda::MG::verify().

◆ run_verify

QudaBoolean QudaMultigridParam_s::run_verify

Whether to run the verification checks once set up is complete

Definition at line 618 of file quda.h.

Referenced by quda::MG::reset(), and setMultigridParam().

◆ secs

double QudaMultigridParam_s::secs

Definition at line 645 of file quda.h.

Referenced by quda::multigrid_solver::multigrid_solver().

◆ setup_ca_basis

QudaCABasis QudaMultigridParam_s::setup_ca_basis[QUDA_MAX_MG_LEVEL]

Basis to use for CA-CGN(E/R) setup

Definition at line 519 of file quda.h.

Referenced by quda::MG::generateNullVectors(), and setMultigridParam().

◆ setup_ca_basis_size

int QudaMultigridParam_s::setup_ca_basis_size[QUDA_MAX_MG_LEVEL]

Basis size for CACG setup

Definition at line 522 of file quda.h.

Referenced by quda::MG::generateNullVectors(), and setMultigridParam().

◆ setup_ca_lambda_max

double QudaMultigridParam_s::setup_ca_lambda_max[QUDA_MAX_MG_LEVEL]

Maximum eigenvalue for Chebyshev CA basis

Definition at line 528 of file quda.h.

Referenced by quda::MG::generateNullVectors(), and setMultigridParam().

◆ setup_ca_lambda_min

double QudaMultigridParam_s::setup_ca_lambda_min[QUDA_MAX_MG_LEVEL]

Minimum eigenvalue for Chebyshev CA basis

Definition at line 525 of file quda.h.

Referenced by quda::MG::generateNullVectors(), and setMultigridParam().

◆ setup_inv_type

QudaInverterType QudaMultigridParam_s::setup_inv_type[QUDA_MAX_MG_LEVEL]

Inverter to use in the setup phase

Definition at line 504 of file quda.h.

Referenced by quda::MG::generateNullVectors(), and setMultigridParam().

◆ setup_location

QudaFieldLocation QudaMultigridParam_s::setup_location[QUDA_MAX_MG_LEVEL]

Location where the coarse-operator construction will be computedn

Definition at line 601 of file quda.h.

Referenced by quda::multigrid_solver::multigrid_solver(), quda::MG::reset(), and setMultigridParam().

◆ setup_maxiter

int QudaMultigridParam_s::setup_maxiter[QUDA_MAX_MG_LEVEL]

Maximum number of iterations for each setup solver

Definition at line 513 of file quda.h.

Referenced by quda::MG::generateNullVectors(), and setMultigridParam().

◆ setup_maxiter_refresh

int QudaMultigridParam_s::setup_maxiter_refresh[QUDA_MAX_MG_LEVEL]

Maximum number of iterations for refreshing the null-space vectors

Definition at line 516 of file quda.h.

Referenced by quda::MG::generateNullVectors(), quda::MG::reset(), and setMultigridParam().

◆ setup_minimize_memory

QudaBoolean QudaMultigridParam_s::setup_minimize_memory

Minimize device memory allocations during the adaptive setup, placing temporary fields in mapped memory instad of device memory

Definition at line 609 of file quda.h.

Referenced by quda::MG::createCoarseDirac(), quda::multigrid_solver::multigrid_solver(), and setMultigridParam().

◆ setup_tol

double QudaMultigridParam_s::setup_tol[QUDA_MAX_MG_LEVEL]

Tolerance to use in the setup phase

Definition at line 510 of file quda.h.

Referenced by quda::MG::generateNullVectors(), and setMultigridParam().

◆ setup_type

QudaSetupType QudaMultigridParam_s::setup_type

Null-space type to use in the setup phase

Definition at line 531 of file quda.h.

Referenced by quda::MG::generateNullVectors(), and setMultigridParam().

◆ smoother

QudaInverterType QudaMultigridParam_s::smoother[QUDA_MAX_MG_LEVEL]

Smoother to use on each level

Definition at line 561 of file quda.h.

Referenced by setMultigridParam().

◆ smoother_halo_precision

QudaPrecision QudaMultigridParam_s::smoother_halo_precision[QUDA_MAX_MG_LEVEL]

Precision to use for halo communication in the smoother

Definition at line 576 of file quda.h.

Referenced by quda::MG::createCoarseDirac(), quda::multigrid_solver::multigrid_solver(), and setMultigridParam().

◆ smoother_schwarz_cycle

int QudaMultigridParam_s::smoother_schwarz_cycle[QUDA_MAX_MG_LEVEL]

Number of Schwarz cycles to apply

Definition at line 582 of file quda.h.

Referenced by quda::MG::createSmoother(), and setMultigridParam().

◆ smoother_schwarz_type

QudaSchwarzType QudaMultigridParam_s::smoother_schwarz_type[QUDA_MAX_MG_LEVEL]

Whether to use additive or multiplicative Schwarz preconditioning in the smoother

Definition at line 579 of file quda.h.

Referenced by quda::MG::createCoarseDirac(), quda::MG::createSmoother(), quda::MG::generateNullVectors(), quda::multigrid_solver::multigrid_solver(), and setMultigridParam().

◆ smoother_solve_type

QudaSolveType QudaMultigridParam_s::smoother_solve_type[QUDA_MAX_MG_LEVEL]

The type of smoother solve to do on each grid (e/o preconditioning or not)

Definition at line 589 of file quda.h.

Referenced by quda::MG::createCoarseDirac(), main(), quda::multigrid_solver::multigrid_solver(), setMultigridParam(), updateMultigridQuda(), and quda::MG::verify().

◆ smoother_tol

double QudaMultigridParam_s::smoother_tol[QUDA_MAX_MG_LEVEL]

Tolerance to use for the smoother / solver on each level

Definition at line 564 of file quda.h.

Referenced by setMultigridParam().

◆ spin_block_size

int QudaMultigridParam_s::spin_block_size[QUDA_MAX_MG_LEVEL]

Spin block sizes to use on each level

Definition at line 489 of file quda.h.

Referenced by setMultigridParam().

◆ use_eig_solver

QudaBoolean QudaMultigridParam_s::use_eig_solver[QUDA_MAX_MG_LEVEL]

Whether to use eigenvectors for the nullspace or, if the coarsest instance deflate

Definition at line 604 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), quda::MG::MG(), quda::MG::reset(), and setMultigridParam().

◆ vec_infile

char QudaMultigridParam_s::vec_infile[QUDA_MAX_MG_LEVEL][256]

Filename prefix where to load the null-space vectors

Definition at line 630 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), quda::MG::loadVectors(), quda::MG::MG(), and setMultigridParam().

◆ vec_load

QudaBoolean QudaMultigridParam_s::vec_load[QUDA_MAX_MG_LEVEL]

Whether to load the null-space vectors to disk (requires QIO)

Definition at line 627 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), quda::MG::MG(), and setMultigridParam().

◆ vec_outfile

char QudaMultigridParam_s::vec_outfile[QUDA_MAX_MG_LEVEL][256]

Filename prefix for where to save the null-space vectors

Definition at line 636 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), quda::MG::generateEigenVectors(), main(), quda::MG::saveVectors(), and setMultigridParam().

◆ vec_store

QudaBoolean QudaMultigridParam_s::vec_store[QUDA_MAX_MG_LEVEL]

Whether to store the null-space vectors to disk (requires QIO)

Definition at line 633 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), quda::MG::generateNullVectors(), and setMultigridParam().

◆ verbosity

QudaVerbosity QudaMultigridParam_s::verbosity[QUDA_MAX_MG_LEVEL]

Verbosity on each level of the multigrid

Definition at line 501 of file quda.h.

Referenced by quda::MG::createCoarseSolver(), quda::MG::generateNullVectors(), quda::MG::pushLevel(), and setMultigridParam().


The documentation for this struct was generated from the following file: