KSPIDR#
IDR(s): Induced Dimension Reduction method for general nonsymmetric linear systems [GS11].
Options Database Keys#
-ksp_idr_s s - shadow space dimension (default 4); larger
simproves convergence at the cost ofsadditional vectors andsextra inner products per step, seeKSPIDRSetS()-ksp_idr_cosine cth - omega stabilization cosine threshold (default 0.7, 0 = off); prevents near-orthogonality stalling in the minimal-residual omega step
Notes#
IDR(s) is a short-recurrence, non-restarting Krylov method for general
nonsymmetric linear systems. It requires no growing subspace and avoids
the restart stagnation of KSPGMRES. The parameter s controls the
trade-off between memory and convergence speed: s=1 is mathematically
equivalent to KSPBCGS; s=4 typically converges as fast as
GMRES(50); s=8 often outperforms GMRES(100).
Memory usage is (3s+3) vectors plus an s-by-s dense matrix.
This implements the biorthogonal variant described in [GS11].
KSPIDR uses a PetscRandom which may be obtained with KSPIDRGetRandom()
(see also KSPIDRSetRandom()). The PetscRandom may be controlled from the
options database with the options prefix of the KSP object.
References#
M. B. Van Gijzen and P. Sonneveld. Algorithm 913: an elegant IDR(s) variant that efficiently exploits biorthogonality properties. ACM Transactions on Mathematical Software, 38(1):1–19, 2011. doi:10.1145/2049662.2049667.
See Also#
KSP: Linear System Solvers, KSPCreate(), KSPSetType(), KSPType, KSP,
KSPBCGS, KSPBCGSL, KSPGMRES, KSPIDRSetS(), KSPIDRGetS(),
KSPIDRSetCosine(), KSPIDRGetCosine(), KSPIDRSetRandom(), KSPIDRGetRandom()
Level#
intermediate
Location#
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages