KSPOrthogonalizationClassicalGramSchmidt#
This is the basic orthogonalization routine using classical Gram-Schmidt with possible iterative refinement to improve the stability.
Synopsis#
#include "petscksp.h"
PetscErrorCode KSPOrthogonalizationClassicalGramSchmidt(KSP ksp, Vec V[], PetscInt n, Vec x, PetscScalar h[])
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#
Examples#
src/ksp/ksp/tutorials/ex5f.F90
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages