QUDA  v1.1.0
A library for QCD on GPUs
Public Attributes | List of all members
QudaMultigridParam_s Struct Reference

#include <quda.h>

Public Attributes

size_t struct_size
 
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
 
QudaBoolean preserve_deflation
 
double gflops
 
double secs
 
double mu_factor [QUDA_MAX_MG_LEVEL]
 
QudaTransferType transfer_type [QUDA_MAX_MG_LEVEL]
 
QudaBoolean use_mma
 
QudaBoolean thin_update_only
 

Detailed Description

Definition at line 546 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 659 of file quda.h.

◆ coarse_guess

QudaBoolean QudaMultigridParam_s::coarse_guess

Whether to use and initial guess during coarse grid deflation

Definition at line 712 of file quda.h.

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

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

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

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

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

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

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

◆ compute_null_vector

QudaComputeNullVector QudaMultigridParam_s::compute_null_vector

Whether to compute the null vectors or reload them

Definition at line 685 of file quda.h.

◆ cycle_type

QudaMultigridCycleType QudaMultigridParam_s::cycle_type[QUDA_MAX_MG_LEVEL]

The type of multigrid cycle to perform at each level

Definition at line 665 of file quda.h.

◆ eig_param

QudaEigParam* QudaMultigridParam_s::eig_param[QUDA_MAX_MG_LEVEL]

Definition at line 553 of file quda.h.

◆ generate_all_levels

QudaBoolean QudaMultigridParam_s::generate_all_levels

Whether to generate on all levels or just on level 0

Definition at line 688 of file quda.h.

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

◆ gflops

double QudaMultigridParam_s::gflops

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

Definition at line 718 of file quda.h.

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

◆ invert_param

QudaInvertParam* QudaMultigridParam_s::invert_param

Definition at line 551 of file quda.h.

◆ location

QudaFieldLocation QudaMultigridParam_s::location[QUDA_MAX_MG_LEVEL]

Location where each level should be done

Definition at line 671 of file quda.h.

◆ mu_factor

double QudaMultigridParam_s::mu_factor[QUDA_MAX_MG_LEVEL]

Multiplicative factor for the mu parameter

Definition at line 724 of file quda.h.

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

◆ n_level

int QudaMultigridParam_s::n_level

Number of multigrid levels

Definition at line 556 of file quda.h.

◆ n_vec

int QudaMultigridParam_s::n_vec[QUDA_MAX_MG_LEVEL]

Number of null-space vectors to use on each level

Definition at line 565 of file quda.h.

◆ nu_post

int QudaMultigridParam_s::nu_post[QUDA_MAX_MG_LEVEL]

Number of post-smoother applications on each level

Definition at line 643 of file quda.h.

◆ nu_pre

int QudaMultigridParam_s::nu_pre[QUDA_MAX_MG_LEVEL]

Number of pre-smoother applications on each level

Definition at line 640 of file quda.h.

◆ num_setup_iter

int QudaMultigridParam_s::num_setup_iter[QUDA_MAX_MG_LEVEL]

Number of setup iterations

Definition at line 580 of file quda.h.

◆ omega

double QudaMultigridParam_s::omega[QUDA_MAX_MG_LEVEL]

Over/under relaxation factor for the smoother at each level

Definition at line 646 of file quda.h.

◆ post_orthonormalize

QudaBoolean QudaMultigridParam_s::post_orthonormalize

Post orthonormalize vectors in the setup phase

Definition at line 610 of file quda.h.

◆ pre_orthonormalize

QudaBoolean QudaMultigridParam_s::pre_orthonormalize

Pre orthonormalize vectors in the setup phase

Definition at line 607 of file quda.h.

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

◆ preserve_deflation

QudaBoolean QudaMultigridParam_s::preserve_deflation

Whether to preserve the deflation space during MG update

Definition at line 715 of file quda.h.

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

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

◆ run_verify

QudaBoolean QudaMultigridParam_s::run_verify

Whether to run the verification checks once set up is complete

Definition at line 691 of file quda.h.

◆ secs

double QudaMultigridParam_s::secs

Definition at line 721 of file quda.h.

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

◆ setup_ca_basis_size

int QudaMultigridParam_s::setup_ca_basis_size[QUDA_MAX_MG_LEVEL]

Basis size for CACG setup

Definition at line 595 of file quda.h.

◆ setup_ca_lambda_max

double QudaMultigridParam_s::setup_ca_lambda_max[QUDA_MAX_MG_LEVEL]

Maximum eigenvalue for Chebyshev CA basis

Definition at line 601 of file quda.h.

◆ setup_ca_lambda_min

double QudaMultigridParam_s::setup_ca_lambda_min[QUDA_MAX_MG_LEVEL]

Minimum eigenvalue for Chebyshev CA basis

Definition at line 598 of file quda.h.

◆ setup_inv_type

QudaInverterType QudaMultigridParam_s::setup_inv_type[QUDA_MAX_MG_LEVEL]

Inverter to use in the setup phase

Definition at line 577 of file quda.h.

◆ setup_location

QudaFieldLocation QudaMultigridParam_s::setup_location[QUDA_MAX_MG_LEVEL]

Location where the coarse-operator construction will be computedn

Definition at line 674 of file quda.h.

◆ setup_maxiter

int QudaMultigridParam_s::setup_maxiter[QUDA_MAX_MG_LEVEL]

Maximum number of iterations for each setup solver

Definition at line 586 of file quda.h.

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

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

◆ setup_tol

double QudaMultigridParam_s::setup_tol[QUDA_MAX_MG_LEVEL]

Tolerance to use in the setup phase

Definition at line 583 of file quda.h.

◆ setup_type

QudaSetupType QudaMultigridParam_s::setup_type

Null-space type to use in the setup phase

Definition at line 604 of file quda.h.

◆ smoother

QudaInverterType QudaMultigridParam_s::smoother[QUDA_MAX_MG_LEVEL]

Smoother to use on each level

Definition at line 634 of file quda.h.

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

◆ smoother_schwarz_cycle

int QudaMultigridParam_s::smoother_schwarz_cycle[QUDA_MAX_MG_LEVEL]

Number of Schwarz cycles to apply

Definition at line 655 of file quda.h.

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

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

◆ smoother_tol

double QudaMultigridParam_s::smoother_tol[QUDA_MAX_MG_LEVEL]

Tolerance to use for the smoother / solver on each level

Definition at line 637 of file quda.h.

◆ spin_block_size

int QudaMultigridParam_s::spin_block_size[QUDA_MAX_MG_LEVEL]

Spin block sizes to use on each level

Definition at line 562 of file quda.h.

◆ struct_size

size_t QudaMultigridParam_s::struct_size

Size of this struct in bytes. Used to ensure that the host application and QUDA see the same struct size

Definition at line 549 of file quda.h.

◆ thin_update_only

QudaBoolean QudaMultigridParam_s::thin_update_only

Whether to do a full (false) or thin (true) update in the context of updateMultigridQuda

Definition at line 733 of file quda.h.

◆ transfer_type

QudaTransferType QudaMultigridParam_s::transfer_type[QUDA_MAX_MG_LEVEL]

Boolean for aggregation type, implies staggered or not

Definition at line 727 of file quda.h.

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

◆ use_mma

QudaBoolean QudaMultigridParam_s::use_mma

Whether to use tensor cores (if available)

Definition at line 730 of file quda.h.

◆ vec_infile

char QudaMultigridParam_s::vec_infile[QUDA_MAX_MG_LEVEL][256]

Filename prefix where to load the null-space vectors

Definition at line 703 of file quda.h.

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

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

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

◆ verbosity

QudaVerbosity QudaMultigridParam_s::verbosity[QUDA_MAX_MG_LEVEL]

Verbosity on each level of the multigrid

Definition at line 574 of file quda.h.


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