<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<link href="../style.css" rel="stylesheet" type="text/css">
<title>PETSc: Summary of Nonlinear Solvers Available from PETSc</title>
</head>
<body>
<div id="logo">
<h1>PETSc</h1>
</div>
<div id="header">
<h1><!--begin-->Summary of Nonlinear Solvers Available from PETSc<!--end--></h1>
</div>
<hr>
<div id="sidebar">
<ul>
<li><a href="../index.html">Home</a></li>
<li><a href="../download/index.html">Download</a></li>
<li><a href="../features/index.html">Features</a></li>
<li>
<a href="../documentation/index.html">Documentation</a>
<ul>
<li><a href="index.html">Manual pages and Users Manual</a></li>
<li><a href="referencing.html">Citing PETSc</a></li>
<li><a href="tutorials/index.html">Tutorials</a></li>
<li><a href="installation.html">Installation</a></li>
<li><a href="SAWs.html">SAWs</a></li>
<li><a href="changes/index.html">Changes</a></li>
<li><a href="bugreporting.html">Bug Reporting</a></li>
<li><a href="codemanagement.html">Code Management</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="copyright.html">License</a></li>
<li><span class="current">Linear Solver Table</span></li>
</ul>
</li>
<li><a href="../publications/index.html">Applications/Publications</a></li>
<li><a href="../miscellaneous/index.html">Miscellaneous</a></li>
<li><a href="../miscellaneous/external.html">External Software</a></li>
<li><a href="../developers/index.html">Developers Site</a></li>
</ul>
</div>
<!--begin-->
<!--This controls the style for the 6th and 7th column-->
<style type="text/css">
tr > td:nth-child(6), tr > td:nth-child(7) {
text-align: center;
}
</style>
<div align="center" id="main" >
<h2>Summary of Nonlinear Solvers Available from PETSc</h2>
<h3>See the paper <a href="http://www.mcs.anl.gov/papers/P2010-0112.pdf">Composing Scalable Nonlinear Algebraic Solvers</a> or the PETSc users manual for details on the algorithms</h3>
<h3>Requests and contributions welcome</h3>
<table border="1" summary="Summary of Nonlinear Solvers Available from PETSc">
<thead>
<tr>
<th>Algorithm</th>
<th><a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESType.html">Name of solver</a></th>
</tr>
<th></th>
</thead>
<!-- The tfoot *must* be before tbody!!!! -->
<tfoot>
<tr>
<td colspan="7">
<p>
<a name="nolinesearch">*</a> Does not support a line search</a>
</p>
</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>Newton's method</td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESNEWTONLS.html">newtonls</a>
</td>
<th>Use -snes_mf for matrix-free linear solvers</th>
</tr>
<tr>
<td>Newton's method with trust region<a href="#nolinesearch">*</a></td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESNEWTONTR.html">newtontr</a>
</td>
<th></th>
</tr>
<tr>
<td>Single linearization<a href="#nolinesearch">*</a></td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESKSPONLY.html">ksponly</a>
</td>
<th>Essentially one step of Newtwon without a line search</th>
</tr>
<tr>
<td>Quasi-Newton method (BFGS)</td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESNEWTONQN.html">qn</a>
</td>
<th></th>
</tr>
<tr>
<td>Nonlinear CG</td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESNCG.html">ncg</a>
</td>
<th>Requires nearly symmetric Jacobian for good convergence</th>
</tr>
<tr>
<td>Nonlinear GMRES</td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESNGMRES.html">ngmres</a>
</td>
<th></th>
</tr>
<tr>
<td>Anderson mixing</td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESANDERSON.html">anderson</a>
</td>
<th></th>
</tr>
<tr>
<td>Nonlinear Richardson</td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESNRICHARDSON.html">nrichardson</a>
</td>
<th></th>
</tr>
<tr>
<td>Nonlinear Gauss-Siedel<a href="#nolinesearch">*</td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESNGS.html">ngs</a>
</td>
<th></th>
</tr>
<tr>
<td>Full Approximation Scheme (nonlinear multigrid)</td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESFAS.html">fas</a>
</td>
<th></th>
</tr>
<tr>
<td>Nonlinear additive Schwarz method<a href="#nolinesearch">*</td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESNASM.html">nasm</a>
</td>
<th></th>
</tr>
<tr>
<td>Nonlinear additive Schwarz preconditioned inexact Newton (ASPIN) methods</td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESASPIN.html">aspin</a>
</td>
<th></th>
</tr>
<tr>
<td>Composite; combine several nonlinear solvers</td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESCOMPOSITE.html">composite</a>
</td>
<th></th>
</tr>
<tr>
<td>Preconditioned nonlinear solver/td>
<td>
<a href="http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/SNES/SNESGetPC.html">SNESGetPC()</a>
</td>
<th>Can be combined to accelerate many of the solvers</th>
</tr>
</tbody>
</table>
</div>
<!--end-->
</body>
</html>