KSPOrthogonalizationClassicalGramSchmidt#

This is the basic orthogonalization routine using classical Gram-Schmidt with possible iterative refinement to improve the stability.

Synopsis#

Collective

Input Parameters#

  • ksp - the Krylov space solver context

  • V - array of previously computed orthonormal vectors

  • n - number of vectors

  • x - vector to be orthogonalized, modified on output (may be NULL)

Output Parameter#

  • h - computed orthogonalization coefficients

Options Database Keys#

  • -ksp_orthogonalization cgs - choose classical Gram-Schmidt (CGS) for orthogonalization

  • -ksp_orthogonalization_cgs_refinement_type (refine_never|refine_ifneeded|refine_always) - determine if iterative refinement is used to increase the stability of the classical Gram-Schmidt orthogonalization

Notes#

If no x is given, then the vector to be orthogonalized is assumed to be located at V[n]. The input vectors V must be orthogonal and with unit two-norm. The output vector x is not normalized.

Use KSPOrthogonalizationSetCGSRefinementType() to determine if iterative refinement is to be used. This is much faster than KSPOrthogonalizationModifiedGramSchmidt() but has the small possibility of stability issues that can usually be handled by using a single step of iterative refinement with KSPOrthogonalizationSetCGSRefinementType().

See Also#

KSP: Linear System Solvers, KSPOrthogonalizationCGSRefinementType, KSPOrthogonalizationSet(), KSPOrthogonalizationSetCGSRefinementType(), KSPOrthogonalizationGetCGSRefinementType(), KSPOrthogonalizationGet(), KSPOrthogonalizationModifiedGramSchmidt()

Level#

intermediate

Location#

src/ksp/ksp/interface/orthog.c

Examples#

src/ksp/ksp/tutorials/ex5f.F90


Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages