Rate This Document
Findability
Accuracy
Completeness
Readability

kuqcd_solve_multishift

Execute the inverter.

Interface Definition

KuQCDStatus kuqcd_solve_multishift(void **_hp_x, void *_hp_b, KuQCDInvertParam *param);

Parameters

Parameter

Type

Description

Input/Output

_hp_x

void **

Multi-shift solution data

Input/Output

_hp_b

void *

Source data

Input

param

KuQCDInvertParam *

Inverter configuration options. For details, see Table 1

Input

Table 1 KuQCDInvertParam structure

Field

Type

Description

dslash_type

KuQCDDslashType

Dirac operator type. The options are as follows:

  • KUQCD_WILSON_DIRAC (not supported currently)
  • KUQCD_WILSONPC_DIRAC (not supported currently)
  • KUQCD_HISQ_DIRAC
  • KUQCD_HISQPC_DIRAC

inverter_type

KuQCDInverterType

Inverter type. The options are as follows:

  • KUQCD_CG (not supported currently)
  • KUQCD_CGM
  • KUQCD_BICGSTAB (not supported currently)
  • KUQCD_BICGSTABM (not supported currently)

matpc_type

KuQCDMatPCType

Preconditioner type. The options are as follows:

  • KUQCD_EVEN_EVEN
  • KUQCD_ODD_ODD

prec

KuQCDPrecision

Precision, which must be the same as the value of KuQCDGaugeParam. The options are as follows:

  • KUQCD_HALF (not supported currently)
  • KUQCD_SINGLE
  • KUQCD_DOUBLE

iter

int

Number of iterations. After the inversion is complete, you can read this value to obtain the number of inverter iterations.

num_shift

int

Number of shifts

max_iter

int

Maximum iterations

tol

double

Converged precision

shifts

double *

Shift array