File: KSPCGNE.html

package info (click to toggle)
petsc 3.7.5%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 163,864 kB
  • ctags: 618,438
  • sloc: ansic: 515,133; python: 29,793; makefile: 20,458; fortran: 18,998; cpp: 6,515; f90: 3,914; sh: 1,012; xml: 621; objc: 445; csh: 240; java: 13
file content (48 lines) | stat: -rw-r--r-- 3,023 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/KSP/KSPCGNE.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>KSPCGNE</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
   <div id="version" align=right><b>petsc-3.7.5 2017-01-01</b></div>
   <div id="bugreport" align=right><a href="mailto:petsc-maint@mcs.anl.gov?subject=Typo or Error in Documentation &body=Please describe the typo or error in the documentation: petsc-3.7.5 v3.7.5 docs/manualpages/KSP/KSPCGNE.html "><small>Report Typos and Errors</small></a></div>
<A NAME="KSPCGNE"><H1>KSPCGNE</H1></A>
Applies the preconditioned conjugate gradient method to the normal equations without explicitly forming A^t*A 
<H3><FONT COLOR="#CC3333">Options Database Keys</FONT></H3>
<DT><B>-ksp_cg_type &lt;Hermitian or symmetric </B> -(for complex matrices only) indicates the matrix is Hermitian or symmetric
<br>
<P>
<P>

<P>
Notes: eigenvalue computation routines will return information about the
spectrum of A^t*A, rather than A.
<P>
<P>
CGNE is a general-purpose non-symmetric method. It works well when the singular values are much better behaved than
eigenvalues. A unitary matrix is a classic example where CGNE converges in one iteration, but GMRES and CGS need N
iterations (see Nachtigal, Reddy, and Trefethen, "How fast are nonsymmetric matrix iterations", 1992). If you intend
to solve least squares problems, use <A HREF="../KSP/KSPLSQR.html#KSPLSQR">KSPLSQR</A>.
<P>
This is NOT a different algorithm then used with <A HREF="../KSP/KSPCG.html#KSPCG">KSPCG</A>, it merely uses that algorithm with the
matrix defined by A^t*A and preconditioner defined by B^t*B where B is the preconditioner for A.
<P>
This method requires that one be able to apply the transpose of the preconditioner and operator
as well as the operator and preconditioner. If the transpose of the preconditioner is not available then
the preconditioner is used in its place so one ends up preconditioning A'A with B B. Seems odd?
<P>
This only supports left preconditioning.
<P>
This object is subclassed off of <A HREF="../KSP/KSPCG.html#KSPCG">KSPCG</A>
<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
  <A HREF="../KSP/KSPCreate.html#KSPCreate">KSPCreate</A>(), <A HREF="../KSP/KSPSetType.html#KSPSetType">KSPSetType</A>(), <A HREF="../KSP/KSPType.html#KSPType">KSPType</A> (for list of available types), <A HREF="../KSP/KSP.html#KSP">KSP</A>,
<BR><A HREF="../KSP/KSPCGSetType.html#KSPCGSetType">KSPCGSetType</A>(), <A HREF="../KSP/KSPBICG.html#KSPBICG">KSPBICG</A>
<P>
<P><B><P><B><FONT COLOR="#CC3333">Level:</FONT></B>beginner
<BR><FONT COLOR="#CC3333">Location:</FONT></B><A HREF="../../../src/ksp/ksp/impls/cg/cgne/cgne.c.html#KSPCGNE">src/ksp/ksp/impls/cg/cgne/cgne.c</A>
<BR><A HREF="./index.html">Index of all KSP routines</A>
<BR><A HREF="../../index.html">Table of Contents for all manual pages</A>
<BR><A HREF="../singleindex.html">Index of all manual pages</A>
</BODY></HTML>