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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
|
<!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/KSPSolve.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>KSPSolve</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<div id="version" align=right><b>petsc-3.10.3 2018-12-18</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.10.3 v3.10.3 docs/manualpages/KSP/KSPSolve.html "><small>Report Typos and Errors</small></a></div>
<A NAME="KSPSolve"><H1>KSPSolve</H1></A>
Solves linear system.
<H3><FONT COLOR="#CC3333">Synopsis</FONT></H3>
<PRE>
#include "petscksp.h"
<A HREF="../Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> <A HREF="../KSP/KSPSolve.html#KSPSolve">KSPSolve</A>(<A HREF="../KSP/KSP.html#KSP">KSP</A> ksp,<A HREF="../Vec/Vec.html#Vec">Vec</A> b,<A HREF="../Vec/Vec.html#Vec">Vec</A> x)
</PRE>
Collective on <A HREF="../KSP/KSP.html#KSP">KSP</A>
<P>
<H3><FONT COLOR="#CC3333">Parameter</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>ksp </B></TD><TD>- iterative context obtained from <A HREF="../KSP/KSPCreate.html#KSPCreate">KSPCreate</A>()
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>b </B></TD><TD>- the right hand side vector
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>x </B></TD><TD>- the solution (this may be the same vector as b, then b will be overwritten with answer)
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Options Database Keys</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_compute_eigenvalues </B></TD><TD>- compute preconditioned operators eigenvalues
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_plot_eigenvalues </B></TD><TD>- plot the computed eigenvalues in an X-window
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_plot_eigencontours </B></TD><TD>- plot the computed eigenvalues in an X-window with contours
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_compute_eigenvalues_explicitly </B></TD><TD>- compute the eigenvalues by forming the dense operator and using LAPACK
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_plot_eigenvalues_explicitly </B></TD><TD>- plot the explicitly computing eigenvalues
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_view_mat binary </B></TD><TD>- save matrix to the default binary viewer
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_view_pmat binary </B></TD><TD>- save matrix used to build preconditioner to the default binary viewer
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_view_rhs binary </B></TD><TD>- save right hand side vector to the default binary viewer
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_view_solution binary </B></TD><TD>- save computed solution vector to the default binary viewer
(can be read later with src/ksp/examples/tutorials/ex10.c for testing solvers)
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_view_mat_explicit </B></TD><TD>- for matrix-free operators, computes the matrix entries and views them
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_view_preconditioned_operator_explicit </B></TD><TD>- computes the product of the preconditioner and matrix as an explicit matrix and views it
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_converged_reason </B></TD><TD>- print reason for converged or diverged, also prints number of iterations
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_final_residual </B></TD><TD>- print 2-norm of true linear system residual at the end of the solution process
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ksp_view </B></TD><TD>- print the ksp data structure at the end of the system solution
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Notes</FONT></H3>
<P>
If one uses <A HREF="../KSP/KSPSetDM.html#KSPSetDM">KSPSetDM</A>() then x or b need not be passed. Use <A HREF="../KSP/KSPGetSolution.html#KSPGetSolution">KSPGetSolution</A>() to access the solution in this case.
<P>
The operator is specified with <A HREF="../KSP/KSPSetOperators.html#KSPSetOperators">KSPSetOperators</A>().
<P>
Call <A HREF="../KSP/KSPGetConvergedReason.html#KSPGetConvergedReason">KSPGetConvergedReason</A>() to determine if the solver converged or failed and
why. The number of iterations can be obtained from <A HREF="../KSP/KSPGetIterationNumber.html#KSPGetIterationNumber">KSPGetIterationNumber</A>().
<P>
If you provide a matrix that has a <A HREF="../Mat/MatSetNullSpace.html#MatSetNullSpace">MatSetNullSpace</A>() and <A HREF="../Mat/MatSetTransposeNullSpace.html#MatSetTransposeNullSpace">MatSetTransposeNullSpace</A>() this will use that information to solve singular systems
in the least squares sense with a norm minimizing solution.
<pre>
</pre>
<pre>
A x = b where b = b_p + b_t where b_t is not in the range of A (and hence by the fundamental theorem of linear algebra is in the nullspace(A') see <A HREF="../Mat/MatSetNullSpace.html#MatSetNullSpace">MatSetNullSpace</A>()
</pre>
<pre>
</pre>
<pre>
<A HREF="../KSP/KSP.html#KSP">KSP</A> first removes b_t producing the linear system A x = b_p (which has multiple solutions) and solves this to find the ||x|| minimizing solution (and hence
</pre>
<pre>
it finds the solution x orthogonal to the nullspace(A). The algorithm is simply in each iteration of the Krylov method we remove the nullspace(A) from the search
</pre>
<pre>
direction thus the solution which is a linear combination of the search directions has no component in the nullspace(A).
</pre>
<pre>
</pre>
<pre>
We recommend always using GMRES for such singular systems.
</pre>
<pre>
If nullspace(A) = nullspace(A') (note symmetric matrices always satisfy this property) then both left and right preconditioning will work
</pre>
<pre>
If nullspace(A) != nullspace(A') then left preconditioning will work but right preconditioning may not work (or it may).
</pre>
<P>
Developer Note: The reason we cannot always solve nullspace(A) != nullspace(A') systems with right preconditioning is because we need to remove at each iteration
the nullspace(AB) from the search direction. While we know the nullspace(A) the nullspace(AB) equals B^-1 times the nullspace(A) but except for trivial preconditioners
such as diagonal scaling we cannot apply the inverse of the preconditioner to a vector and thus cannot compute the nullspace(AB).
<P>
<P>
If using a direct method (e.g., via the <A HREF="../KSP/KSP.html#KSP">KSP</A> solver
<A HREF="../KSP/KSPPREONLY.html#KSPPREONLY">KSPPREONLY</A> and a preconditioner such as <A HREF="../PC/PCLU.html#PCLU">PCLU</A>/<A HREF="../PC/PCILU.html#PCILU">PCILU</A>),
then its=1. See <A HREF="../KSP/KSPSetTolerances.html#KSPSetTolerances">KSPSetTolerances</A>() and <A HREF="../KSP/KSPConvergedDefault.html#KSPConvergedDefault">KSPConvergedDefault</A>()
for more details.
<P>
<H3><FONT COLOR="#CC3333">Understanding Convergence</FONT></H3>
The routines <A HREF="../KSP/KSPMonitorSet.html#KSPMonitorSet">KSPMonitorSet</A>(), <A HREF="../KSP/KSPComputeEigenvalues.html#KSPComputeEigenvalues">KSPComputeEigenvalues</A>(), and
<A HREF="../KSP/KSPComputeEigenvaluesExplicitly.html#KSPComputeEigenvaluesExplicitly">KSPComputeEigenvaluesExplicitly</A>() provide information on additional
options to monitor convergence and print eigenvalue information.
<P>
<P>
<H3><FONT COLOR="#CC3333">Keywords</FONT></H3>
solve, linear system
<BR>
<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
<A HREF="../KSP/KSPCreate.html#KSPCreate">KSPCreate</A>(), <A HREF="../KSP/KSPSetUp.html#KSPSetUp">KSPSetUp</A>(), <A HREF="../KSP/KSPDestroy.html#KSPDestroy">KSPDestroy</A>(), <A HREF="../KSP/KSPSetTolerances.html#KSPSetTolerances">KSPSetTolerances</A>(), <A HREF="../KSP/KSPConvergedDefault.html#KSPConvergedDefault">KSPConvergedDefault</A>(),
<BR><A HREF="../KSP/KSPSolveTranspose.html#KSPSolveTranspose">KSPSolveTranspose</A>(), <A HREF="../KSP/KSPGetIterationNumber.html#KSPGetIterationNumber">KSPGetIterationNumber</A>(), <A HREF="../Mat/MatNullSpaceCreate.html#MatNullSpaceCreate">MatNullSpaceCreate</A>(), <A HREF="../Mat/MatSetNullSpace.html#MatSetNullSpace">MatSetNullSpace</A>(), <A HREF="../Mat/MatSetTransposeNullSpace.html#MatSetTransposeNullSpace">MatSetTransposeNullSpace</A>(), <A HREF="../KSP/KSP.html#KSP">KSP</A>
<P><B></B><H3><FONT COLOR="#CC3333">Level</FONT></H3>beginner<BR>
<H3><FONT COLOR="#CC3333">Location</FONT></H3>
</B><A HREF="../../../src/ksp/ksp/interface/itfunc.c.html#KSPSolve">src/ksp/ksp/interface/itfunc.c</A>
<A HREF="../../../src/ksp/pc/examples/tutorials/ex1.c.html">src/ksp/pc/examples/tutorials/ex1.c.html</A><BR>
<A HREF="../../../src/ksp/pc/examples/tutorials/ex2.c.html">src/ksp/pc/examples/tutorials/ex2.c.html</A><BR>
<A HREF="../../../src/ksp/pc/examples/tutorials/ex3.c.html">src/ksp/pc/examples/tutorials/ex3.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/examples/tutorials/ex1.c.html">src/ksp/ksp/examples/tutorials/ex1.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/examples/tutorials/ex2.c.html">src/ksp/ksp/examples/tutorials/ex2.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/examples/tutorials/ex3.c.html">src/ksp/ksp/examples/tutorials/ex3.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/examples/tutorials/ex5.c.html">src/ksp/ksp/examples/tutorials/ex5.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/examples/tutorials/ex6.c.html">src/ksp/ksp/examples/tutorials/ex6.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/examples/tutorials/ex7.c.html">src/ksp/ksp/examples/tutorials/ex7.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/examples/tutorials/ex8.c.html">src/ksp/ksp/examples/tutorials/ex8.c.html</A><BR>
<P><H3><FONT COLOR="CC3333">Implementations</FONT></H3><A HREF="../../../src/ksp/ksp/impls/bcgs/bcgs.c.html#KSPSolve_BCGS">KSPSolve_BCGS in src/ksp/ksp/impls/bcgs/bcgs.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/bcgs/fbcgs/fbcgs.c.html#KSPSolve_FBCGS">KSPSolve_FBCGS in src/ksp/ksp/impls/bcgs/fbcgs/fbcgs.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/bcgs/fbcgsr/fbcgsr.c.html#KSPSolve_FBCGSR">KSPSolve_FBCGSR in src/ksp/ksp/impls/bcgs/fbcgsr/fbcgsr.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/bcgs/pipebcgs/pipebcgs.c.html#KSPSolve_PIPEBCGS">KSPSolve_PIPEBCGS in src/ksp/ksp/impls/bcgs/pipebcgs/pipebcgs.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/bcgsl/bcgsl.c.html#KSPSolve_BCGSL">KSPSolve_BCGSL in src/ksp/ksp/impls/bcgsl/bcgsl.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/bicg/bicg.c.html#KSPSolve_BiCG">KSPSolve_BiCG in src/ksp/ksp/impls/bicg/bicg.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cg/cg.c.html#KSPSolve_CG">KSPSolve_CG in src/ksp/ksp/impls/cg/cg.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cg/cg.c.html#KSPSolve_CG_SingleReduction">KSPSolve_CG_SingleReduction in src/ksp/ksp/impls/cg/cg.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cg/cgls.c.html#KSPSolve_CGLS">KSPSolve_CGLS in src/ksp/ksp/impls/cg/cgls.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cg/cgne/cgne.c.html#KSPSolve_CGNE">KSPSolve_CGNE in src/ksp/ksp/impls/cg/cgne/cgne.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cg/groppcg/groppcg.c.html#KSPSolve_GROPPCG">KSPSolve_GROPPCG in src/ksp/ksp/impls/cg/groppcg/groppcg.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cg/pipecg/pipecg.c.html#KSPSolve_PIPECG">KSPSolve_PIPECG in src/ksp/ksp/impls/cg/pipecg/pipecg.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cg/pipecgrr/pipecgrr.c.html#KSPSolve_PIPECGRR">KSPSolve_PIPECGRR in src/ksp/ksp/impls/cg/pipecgrr/pipecgrr.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cg/pipelcg/pipelcg.c.html#KSPSolve_InnerLoop_PIPELCG">KSPSolve_InnerLoop_PIPELCG in src/ksp/ksp/impls/cg/pipelcg/pipelcg.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cg/pipelcg/pipelcg.c.html#KSPSolve_ReInitData_PIPELCG">KSPSolve_ReInitData_PIPELCG in src/ksp/ksp/impls/cg/pipelcg/pipelcg.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cg/pipelcg/pipelcg.c.html#KSPSolve_PIPELCG">KSPSolve_PIPELCG in src/ksp/ksp/impls/cg/pipelcg/pipelcg.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cgs/cgs.c.html#KSPSolve_CGS">KSPSolve_CGS in src/ksp/ksp/impls/cgs/cgs.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cheby/cheby.c.html#KSPSolve_Chebyshev">KSPSolve_Chebyshev in src/ksp/ksp/impls/cheby/cheby.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cr/cr.c.html#KSPSolve_CR">KSPSolve_CR in src/ksp/ksp/impls/cr/cr.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/cr/pipecr/pipecr.c.html#KSPSolve_PIPECR">KSPSolve_PIPECR in src/ksp/ksp/impls/cr/pipecr/pipecr.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/fcg/fcg.c.html#KSPSolve_FCG">KSPSolve_FCG in src/ksp/ksp/impls/fcg/fcg.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/fcg/pipefcg/pipefcg.c.html#KSPSolve_PIPEFCG_cycle">KSPSolve_PIPEFCG_cycle in src/ksp/ksp/impls/fcg/pipefcg/pipefcg.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/fcg/pipefcg/pipefcg.c.html#KSPSolve_PIPEFCG">KSPSolve_PIPEFCG in src/ksp/ksp/impls/fcg/pipefcg/pipefcg.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/fetidp/fetidp.c.html#KSPSolve_FETIDP">KSPSolve_FETIDP in src/ksp/ksp/impls/fetidp/fetidp.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/gcr/gcr.c.html#KSPSolve_GCR_cycle">KSPSolve_GCR_cycle in src/ksp/ksp/impls/gcr/gcr.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/gcr/gcr.c.html#KSPSolve_GCR">KSPSolve_GCR in src/ksp/ksp/impls/gcr/gcr.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/gcr/pipegcr/pipegcr.c.html#KSPSolve_PIPEGCR_cycle">KSPSolve_PIPEGCR_cycle in src/ksp/ksp/impls/gcr/pipegcr/pipegcr.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/gcr/pipegcr/pipegcr.c.html#KSPSolve_PIPEGCR">KSPSolve_PIPEGCR in src/ksp/ksp/impls/gcr/pipegcr/pipegcr.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/gmres/agmres/agmres.c.html#KSPSolve_AGMRES">KSPSolve_AGMRES in src/ksp/ksp/impls/gmres/agmres/agmres.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/gmres/dgmres/dgmres.c.html#KSPSolve_DGMRES">KSPSolve_DGMRES in src/ksp/ksp/impls/gmres/dgmres/dgmres.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/gmres/fgmres/fgmres.c.html#KSPSolve_FGMRES">KSPSolve_FGMRES in src/ksp/ksp/impls/gmres/fgmres/fgmres.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/gmres/gmres.c.html#KSPSolve_GMRES">KSPSolve_GMRES in src/ksp/ksp/impls/gmres/gmres.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/gmres/lgmres/lgmres.c.html#KSPSolve_LGMRES">KSPSolve_LGMRES in src/ksp/ksp/impls/gmres/lgmres/lgmres.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/gmres/pgmres/pgmres.c.html#KSPSolve_PGMRES">KSPSolve_PGMRES in src/ksp/ksp/impls/gmres/pgmres/pgmres.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/gmres/pipefgmres/pipefgmres.c.html#KSPSolve_PIPEFGMRES">KSPSolve_PIPEFGMRES in src/ksp/ksp/impls/gmres/pipefgmres/pipefgmres.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/ibcgs/ibcgs.c.html#KSPSolve_IBCGS">KSPSolve_IBCGS in src/ksp/ksp/impls/ibcgs/ibcgs.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/lcd/lcd.c.html#KSPSolve_LCD">KSPSolve_LCD in src/ksp/ksp/impls/lcd/lcd.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/lsqr/lsqr.c.html#KSPSolve_LSQR">KSPSolve_LSQR in src/ksp/ksp/impls/lsqr/lsqr.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/minres/minres.c.html#KSPSolve_MINRES">KSPSolve_MINRES in src/ksp/ksp/impls/minres/minres.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/preonly/preonly.c.html#KSPSolve_PREONLY">KSPSolve_PREONLY in src/ksp/ksp/impls/preonly/preonly.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/qcg/qcg.c.html#KSPSolve_QCG">KSPSolve_QCG in src/ksp/ksp/impls/qcg/qcg.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/rich/rich.c.html#KSPSolve_Richardson">KSPSolve_Richardson in src/ksp/ksp/impls/rich/rich.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/symmlq/symmlq.c.html#KSPSolve_SYMMLQ">KSPSolve_SYMMLQ in src/ksp/ksp/impls/symmlq/symmlq.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/tcqmr/tcqmr.c.html#KSPSolve_TCQMR">KSPSolve_TCQMR in src/ksp/ksp/impls/tcqmr/tcqmr.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/tfqmr/tfqmr.c.html#KSPSolve_TFQMR">KSPSolve_TFQMR in src/ksp/ksp/impls/tfqmr/tfqmr.c</A><BR>
<A HREF="../../../src/ksp/ksp/impls/tsirm/tsirm.c.html#KSPSolve_TSIRM">KSPSolve_TSIRM in src/ksp/ksp/impls/tsirm/tsirm.c</A><BR>
<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>
|