#include <quda.h>
Parameters relating to the solver and the choice of Dirac operator.
Mobius coefficients - only real part used if regular Mobius The following specifies the EOFA parameters. Notation follows arXiv:1706.05843 eofa_shift: the "\beta" in the paper eofa_pm: plus or minus for the EOFA operator mq1, mq2, mq3 are the three masses corresponds to Hasenbusch mass spliting. As far as I know mq1 is always the same as "mass" but it's here just for consistence.
Number of sources in the multiple source solver, but per sub-partition The grid of sub-partition according to which the processor grid will be partitioned. Should have: split_grid[0] * split_grid[1] * split_grid[2] * split_grid[3] * num_src_per_sub_partition == num_src.
Whether to use the L2 relative residual, Fermilab heavy-quark residual, or both to determine convergence. To require that both stopping conditions are satisfied, use a bitwise OR as follows:
p.residual_type = (QudaResidualType) (QUDA_L2_RELATIVE_RESIDUAL | QUDA_HEAVY_QUARK_RESIDUAL);
Whether to keep the partial solution accumuator in sloppy precision This parameter determines how often we accumulate into the solution vector from the direction vectors in the solver. E.g., running with solution_accumulator_pipeline = 4, means we will update the solution vector every four iterations using the direction vectors from the prior four iterations. This increases performance of mixed-precision solvers since it means less high-precision vector round-trip memory travel, but requires more low-precision memory allocation.