petsc-3.12.1 2019-10-22
Report Typos and Errors

# KSPPIPEFCG

Implements a Pipelined, Flexible Conjugate Gradient method.

### Options Database Keys

| -ksp_pipefcg_mmax <N> | - The number of previous search directions to store
| -ksp_pipefcg_nprealloc <N> | - The number of previous search directions to preallocate
| -ksp_pipefcg_truncation_type <standard,notay> | - which stored search directions to orthogonalize against

### Notes

Supports left preconditioning only.

The natural "norm" for this method is (u,Au), where u is the preconditioned residual. As with standard CG, this norm is available at no additional computational cost. Choosing preconditioned or unpreconditioned norms involve an extra blocking global reduction, thus removing any benefit from pipelining.

MPI configuration may be necessary for reductions to make asynchronous progress, which is important for performance of pipelined methods. See the FAQ on the PETSc website for details.

### Reference

P. Sanan, S.M. Schnepp, and D.A. May, "Pipelined, Flexible Krylov Subspace Methods," SIAM Journal on Scientific Computing 2016 38:5, C441-C470, DOI: 10.1137/15M1049130

### See Also

KSPFCG, KSPPIPECG, KSPPIPECR, KSPGCR, KSPPIPEGCR, KSPFGMRES, KSPCG, KSPPIPEFCGSetMmax(), KSPPIPEFCGGetMmax(), KSPPIPEFCGSetNprealloc(), KSPPIPEFCGGetNprealloc(), KSPPIPEFCGSetTruncationType(), KSPPIPEFCGGetTruncationType()

### Level

intermediate

### Location

src/ksp/ksp/impls/fcg/pipefcg/pipefcg.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages