CG - preconditioned conjugate gradient
Usage:
-ksp_type cg
Options:
-ksp_cg_Hermitian
indicates the complex matrix is Hermitian
-ksp_cg_symmetric
indicates the complex matrix is symmetric
Notes: The CG method requires both the matrix and preconditioner to be symmetric positive (semi) definite.
The conjugate gradient method derives its name from the fact that it generates a sequence of conjugate (or orthogonal) vectors. These vectors are the residuals of the iterates. They are also the gradients of a quadratic functional, the minimization of which is equivalent to solving the linear system. CG is an extremely effective method when the coefficient matrix is symmetric positive definite, since storage for only a limited number of vectors is required.
The conjugate gradient method is an algorithm for finding the nearest local minimum of a function of n variables. It uses conjugate directions instead of the local gradient for going downhill.
If the vicinity of the minimum has the shape of a long, narrow valley, the minimum is reached in far fewer steps than would be the case using the method of steepest descent.