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 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304
|
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/sphinx_docs/html/manual/index.html" />
<meta charset="utf-8" />
<title>PETSc Users Manual — PETSc 3.14.5 documentation</title>
<link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css" />
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css" />
<link rel="stylesheet" type="text/css" href="../_static/katex-math.css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<script src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/contrib/auto-render.min.js"></script>
<script src="../_static/katex_autorenderer.js"></script>
<link rel="shortcut icon" href="../_static/PETSc_RGB-logo.png"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Introduction to PETSc" href="introduction.html" />
<link rel="prev" title="PETSc 3.14 Documentation" href="../index.html" />
</head><body>
<div id="version" align=right><b>petsc-3.14.5 2021-03-03</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.14.5 v3.14.5 docs/sphinx_docs/html/manual/index.html "><small>Report Typos and Errors</small></a></div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="introduction.html" title="Introduction to PETSc"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="../index.html" title="PETSc 3.14 Documentation"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">PETSc 3.14.5 documentation</a> »</li>
</ul>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/PETSc-TAO_RGB.svg" alt="Logo"/>
</a></p>
<h4>Previous topic</h4>
<p class="topless"><a href="../index.html"
title="previous chapter">PETSc 3.14 Documentation</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="introduction.html"
title="next chapter">Introduction to PETSc</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/manual/index.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="petsc-users-manual">
<h1>PETSc Users Manual<a class="headerlink" href="#petsc-users-manual" title="Permalink to this headline">ΒΆ</a></h1>
<p><strong>Argonne National Laboratory</strong></p>
<p><strong>Mathematics and Computer Science Division</strong></p>
<hr class="docutils" />
<p>Prepared by</p>
<p><strong>S. Balay</strong> <sup>1</sup>,
<strong>S. Abhyankar</strong> <sup>2</sup>,
<strong>M. Adams</strong> <sup>3</sup>,
<strong>J. Brown</strong> <sup>1</sup>,
<strong>P. Brune</strong> <sup>1</sup>,
<strong>K. Buschelman</strong> <sup>1</sup>,
<strong>L. Dalcin</strong> <sup>4</sup>,
<strong>A. Dener</strong> <sup>1</sup>,
<strong>V. Eijkhout</strong> <sup>6</sup>,
<strong>W. Gropp</strong> <sup>1</sup>,
<strong>D. Karpeyev</strong> <sup>1</sup>,
<strong>D. Kaushik</strong> <sup>1</sup>,
<strong>M. Knepley</strong> <sup>1</sup>,
<strong>D. May</strong> <sup>7</sup>,
<strong>L. Curfman McInnes</strong> <sup>1</sup>,
<strong>R. Mills</strong> <sup>1</sup>,
<strong>T. Munson</strong> <sup>1</sup>,
<strong>K. Rupp</strong> <sup>1</sup>,
<strong>P. Sanan</strong> <sup>8</sup>,
<strong>B. Smith</strong> <sup>1</sup>,
<strong>S. Zampini</strong> <sup>4</sup>,
<strong>H. Zhang</strong> <sup>5</sup>, and
<strong>H. Zhang</strong> <sup>1</sup></p>
<div class="line-block">
<div class="line"><sup>1</sup>Mathematics and Computer Science Division, Argonne National Laboratory</div>
<div class="line"><sup>2</sup>Electricity Infrastructure and Buildings Division, Pacific Northwest National Laboratory</div>
<div class="line"><sup>3</sup>Computational Research, Lawrence Berkeley National Laboratory</div>
<div class="line"><sup>4</sup>Extreme Computing Research Center, King Abdullah University of Science and Technology</div>
<div class="line"><sup>5</sup>Computer Science Department, Illinois Institute of Technology</div>
<div class="line"><sup>6</sup>Texas Advanced Computing Center, University of Texas at Austin</div>
<div class="line"><sup>7</sup>Department of Earth Sciences, University of Oxford</div>
<div class="line"><sup>8</sup>Institute of Geophysics, ETH Zurich</div>
</div>
<hr class="docutils" />
<p>This work was supported by the Office of Advanced Scientific Computing Research,
Office of Science, U.S. Department of Energy, under Contract DE-AC02-06CH11357.</p>
<hr class="docutils" />
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to PETSc</a><ul>
<li class="toctree-l2"><a class="reference internal" href="about_this_manual.html">About This Manual</a></li>
<li class="toctree-l2"><a class="reference internal" href="getting_started.html">Getting Started</a><ul>
<li class="toctree-l3"><a class="reference internal" href="getting_started.html#suggested-reading">Suggested Reading</a></li>
<li class="toctree-l3"><a class="reference internal" href="getting_started.html#running-petsc-programs">Running PETSc Programs</a></li>
<li class="toctree-l3"><a class="reference internal" href="getting_started.html#writing-petsc-programs">Writing PETSc Programs</a></li>
<li class="toctree-l3"><a class="reference internal" href="getting_started.html#simple-petsc-examples">Simple PETSc Examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="getting_started.html#profiling-programs">Profiling Programs</a></li>
<li class="toctree-l3"><a class="reference internal" href="getting_started.html#writing-application-codes-with-petsc">Writing Application Codes with PETSc</a></li>
<li class="toctree-l3"><a class="reference internal" href="getting_started.html#citing-petsc">Citing PETSc</a></li>
<li class="toctree-l3"><a class="reference internal" href="getting_started.html#directory-structure">Directory Structure</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="programming.html">Programming with PETSc</a><ul>
<li class="toctree-l2"><a class="reference internal" href="vec.html">Vectors and Parallel Data</a><ul>
<li class="toctree-l3"><a class="reference internal" href="vec.html#creating-and-assembling-vectors">Creating and Assembling Vectors</a></li>
<li class="toctree-l3"><a class="reference internal" href="vec.html#basic-vector-operations">Basic Vector Operations</a></li>
<li class="toctree-l3"><a class="reference internal" href="vec.html#indexing-and-ordering">Indexing and Ordering</a></li>
<li class="toctree-l3"><a class="reference internal" href="vec.html#structured-grids-using-distributed-arrays">Structured Grids Using Distributed Arrays</a></li>
<li class="toctree-l3"><a class="reference internal" href="vec.html#vectors-related-to-unstructured-grids">Vectors Related to Unstructured Grids</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="mat.html">Matrices</a><ul>
<li class="toctree-l3"><a class="reference internal" href="mat.html#creating-and-assembling-matrices">Creating and Assembling Matrices</a></li>
<li class="toctree-l3"><a class="reference internal" href="mat.html#basic-matrix-operations">Basic Matrix Operations</a></li>
<li class="toctree-l3"><a class="reference internal" href="mat.html#matrix-free-matrices">Matrix-Free Matrices</a></li>
<li class="toctree-l3"><a class="reference internal" href="mat.html#other-matrix-operations">Other Matrix Operations</a></li>
<li class="toctree-l3"><a class="reference internal" href="mat.html#partitioning">Partitioning</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="ksp.html">KSP: Linear System Solvers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="ksp.html#using-ksp">Using KSP</a></li>
<li class="toctree-l3"><a class="reference internal" href="ksp.html#solving-successive-linear-systems">Solving Successive Linear Systems</a></li>
<li class="toctree-l3"><a class="reference internal" href="ksp.html#krylov-methods">Krylov Methods</a></li>
<li class="toctree-l3"><a class="reference internal" href="ksp.html#preconditioners">Preconditioners</a></li>
<li class="toctree-l3"><a class="reference internal" href="ksp.html#solving-block-matrices">Solving Block Matrices</a></li>
<li class="toctree-l3"><a class="reference internal" href="ksp.html#solving-singular-systems">Solving Singular Systems</a></li>
<li class="toctree-l3"><a class="reference internal" href="ksp.html#using-external-linear-solvers">Using External Linear Solvers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="snes.html">SNES: Nonlinear Solvers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="snes.html#basic-snes-usage">Basic SNES Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="snes.html#the-nonlinear-solvers">The Nonlinear Solvers</a></li>
<li class="toctree-l3"><a class="reference internal" href="snes.html#general-options">General Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="snes.html#inexact-newton-like-methods">Inexact Newton-like Methods</a></li>
<li class="toctree-l3"><a class="reference internal" href="snes.html#matrix-free-methods">Matrix-Free Methods</a></li>
<li class="toctree-l3"><a class="reference internal" href="snes.html#finite-difference-jacobian-approximations">Finite Difference Jacobian Approximations</a></li>
<li class="toctree-l3"><a class="reference internal" href="snes.html#variational-inequalities">Variational Inequalities</a></li>
<li class="toctree-l3"><a class="reference internal" href="snes.html#nonlinear-preconditioning">Nonlinear Preconditioning</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="ts.html">TS: Scalable ODE and DAE Solvers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="ts.html#basic-ts-options">Basic TS Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="ts.html#dae-formulations">DAE Formulations</a></li>
<li class="toctree-l3"><a class="reference internal" href="ts.html#using-implicit-explicit-imex-methods">Using Implicit-Explicit (IMEX) Methods</a></li>
<li class="toctree-l3"><a class="reference internal" href="ts.html#glee-methods">GLEE methods</a></li>
<li class="toctree-l3"><a class="reference internal" href="ts.html#using-fully-implicit-methods">Using fully implicit methods</a></li>
<li class="toctree-l3"><a class="reference internal" href="ts.html#using-the-explicit-runge-kutta-timestepper-with-variable-timesteps">Using the Explicit Runge-Kutta timestepper with variable timesteps</a></li>
<li class="toctree-l3"><a class="reference internal" href="ts.html#special-cases">Special Cases</a></li>
<li class="toctree-l3"><a class="reference internal" href="ts.html#monitoring-and-visualizing-solutions">Monitoring and visualizing solutions</a></li>
<li class="toctree-l3"><a class="reference internal" href="ts.html#error-control-via-variable-time-stepping">Error control via variable time-stepping</a></li>
<li class="toctree-l3"><a class="reference internal" href="ts.html#handling-of-discontinuities">Handling of discontinuities</a></li>
<li class="toctree-l3"><a class="reference internal" href="ts.html#using-tchem-from-petsc">Using TChem from PETSc</a></li>
<li class="toctree-l3"><a class="reference internal" href="ts.html#using-sundials-from-petsc">Using Sundials from PETSc</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="sensitivity_analysis.html">Performing sensitivity analysis</a><ul>
<li class="toctree-l3"><a class="reference internal" href="sensitivity_analysis.html#using-the-discrete-adjoint-methods">Using the discrete adjoint methods</a></li>
<li class="toctree-l3"><a class="reference internal" href="sensitivity_analysis.html#checkpointing">Checkpointing</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="sensitivity_analysis.html#solving-steady-state-problems-with-pseudo-timestepping">Solving Steady-State Problems with Pseudo-Timestepping</a></li>
<li class="toctree-l2"><a class="reference internal" href="high_level_mg.html">High Level Support for Multigrid with KSPSetDM() and SNESSetDM()</a><ul>
<li class="toctree-l3"><a class="reference internal" href="high_level_mg.html#adaptive-interpolation">Adaptive Interpolation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="dmplex.html">DMPlex: Unstructured Grids in PETSc</a><ul>
<li class="toctree-l3"><a class="reference internal" href="dmplex.html#representing-unstructured-grids">Representing Unstructured Grids</a></li>
<li class="toctree-l3"><a class="reference internal" href="dmplex.html#data-on-unstructured-grids">Data on Unstructured Grids</a></li>
<li class="toctree-l3"><a class="reference internal" href="dmplex.html#evaluating-residuals">Evaluating Residuals</a></li>
<li class="toctree-l3"><a class="reference internal" href="dmplex.html#networks">Networks</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="additional.html">Additional Information</a><ul>
<li class="toctree-l2"><a class="reference internal" href="fortran.html">PETSc for Fortran Users</a><ul>
<li class="toctree-l3"><a class="reference internal" href="fortran.html#c-vs-fortran-interfaces">C vs. Fortran Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="fortran.html#sample-fortran-programs">Sample Fortran Programs</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="matlab.html">Using MATLAB with PETSc</a><ul>
<li class="toctree-l3"><a class="reference internal" href="matlab.html#dumping-data-for-matlab">Dumping Data for MATLAB</a></li>
<li class="toctree-l3"><a class="reference internal" href="matlab.html#sending-data-to-an-interactive-matlab-session">Sending Data to an Interactive MATLAB Session</a></li>
<li class="toctree-l3"><a class="reference internal" href="matlab.html#using-the-matlab-compute-engine">Using the MATLAB Compute Engine</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="profiling.html">Profiling</a><ul>
<li class="toctree-l3"><a class="reference internal" href="profiling.html#basic-profiling-information">Basic Profiling Information</a></li>
<li class="toctree-l3"><a class="reference internal" href="profiling.html#profiling-application-codes">Profiling Application Codes</a></li>
<li class="toctree-l3"><a class="reference internal" href="profiling.html#profiling-multiple-sections-of-code">Profiling Multiple Sections of Code</a></li>
<li class="toctree-l3"><a class="reference internal" href="profiling.html#restricting-event-logging">Restricting Event Logging</a></li>
<li class="toctree-l3"><a class="reference internal" href="profiling.html#interpreting-log-info-output-informative-messages">Interpreting <code class="docutils literal notranslate"><span class="pre">-log_info</span></code> Output: Informative Messages</a></li>
<li class="toctree-l3"><a class="reference internal" href="profiling.html#time">Time</a></li>
<li class="toctree-l3"><a class="reference internal" href="profiling.html#saving-output-to-a-file">Saving Output to a File</a></li>
<li class="toctree-l3"><a class="reference internal" href="profiling.html#accurate-profiling-and-paging-overheads">Accurate Profiling and Paging Overheads</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="performance.html">Hints for Performance Tuning</a><ul>
<li class="toctree-l3"><a class="reference internal" href="performance.html#maximizing-memory-bandwidth">Maximizing Memory Bandwidth</a></li>
<li class="toctree-l3"><a class="reference internal" href="performance.html#performance-pitfalls-and-advice">Performance Pitfalls and Advice</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="other.html">Other PETSc Features</a><ul>
<li class="toctree-l3"><a class="reference internal" href="other.html#petsc-on-a-process-subset">PETSc on a process subset</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#runtime-options">Runtime Options</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#viewers-looking-at-petsc-objects">Viewers: Looking at PETSc Objects</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#using-saws-with-petsc">Using SAWs with PETSc</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#debugging">Debugging</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#error-handling">Error Handling</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#numbers">Numbers</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#parallel-communication">Parallel Communication</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#graphics">Graphics</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#emacs-users">Emacs Users</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#vs-code-users">VS Code Users</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#vi-and-vim-users">Vi and Vim Users</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#eclipse-users">Eclipse Users</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#qt-creator-users">Qt Creator Users</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#visual-studio-users">Visual Studio Users</a></li>
<li class="toctree-l3"><a class="reference internal" href="other.html#xcode-users-the-apple-gui-development-system">XCode Users (The Apple GUI Development System)</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="advanced.html">Unimportant and Advanced Features of Matrices and Solvers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="advanced.html#extracting-submatrices">Extracting Submatrices</a></li>
<li class="toctree-l3"><a class="reference internal" href="advanced.html#matrix-factorization">Matrix Factorization</a></li>
<li class="toctree-l3"><a class="reference internal" href="advanced.html#unimportant-details-of-ksp">Unimportant Details of KSP</a></li>
<li class="toctree-l3"><a class="reference internal" href="advanced.html#unimportant-details-of-pc">Unimportant Details of PC</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="tests.html">Running PETSc Tests</a><ul>
<li class="toctree-l3"><a class="reference internal" href="tests.html#quick-start-with-the-tests">Quick start with the tests</a></li>
<li class="toctree-l3"><a class="reference internal" href="tests.html#understanding-test-output-and-more-information">Understanding test output and more information</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="acknowledgements.html">Acknowledgments</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="introduction.html" title="Introduction to PETSc"
>next</a> |</li>
<li class="right" >
<a href="../index.html" title="PETSc 3.14 Documentation"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">PETSc 3.14.5 documentation</a> »</li>
</ul>
</div>
<div class="footer" role="contentinfo">
© Copyright 1991-2021, UChicago Argonne, LLC and the PETSc Development Team.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.4.4.
</div>
</body>
</html>
|