KSPPIPEFCG#
Implements a Pipelined, Flexible Conjugate Gradient method [SSM16]. Pipelined Krylov Methods. Flexible Krylov Methods
Options Database Keys#
-ksp_pipefcg_mmax
- The number of previous search directions to store-ksp_pipefcg_nprealloc
- The number of previous search directions to preallocate-ksp_pipefcg_truncation_type <standard,notay> - which stored search directions to orthogonalize against
Notes#
Compare to KSPFCG
Supports left preconditioning only.
The natural “norm” for this method is \((u,Au)\), where \(u\) is the preconditioned residual. As with standard KSPCG
, 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 What steps are necessary to make the pipelined solvers execute efficiently?
Contributed by#
Patrick Sanan and Sascha M. Schnepp
References#
P. Sanan, S. M. Schnepp, and D. A. May. Pipelined, flexible Krylov subspace methods. SIAM Journal on Scientific Computing, 38(5):C441–C470, 2016. doi:10.1137/15M1049130.
See Also#
KSP: Linear System Solvers, What steps are necessary to make the pipelined solvers execute efficiently?, Pipelined Krylov Methods, Flexible Krylov Methods, 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