File: overview.html

package info (click to toggle)
petsc4py 3.14.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 22,504 kB
  • sloc: javascript: 8,795; python: 8,131; ansic: 1,531; f90: 322; makefile: 316; sh: 10
file content (202 lines) | stat: -rw-r--r-- 9,347 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
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

<!DOCTYPE html>

<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Overview &#8212; PETSc for Python 3.14.1 documentation</title>
    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/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>
    
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="Installation" href="install.html" />
    <link rel="prev" title="PETSc for Python" href="index.html" /> 
  </head><body>
    <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="install.html" title="Installation"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="index.html" title="PETSc for Python"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="index.html">PETSc for Python 3.14.1 documentation</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">Overview</a></li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="overview">
<h1>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h1>
<p><a class="reference external" href="http://www.mcs.anl.gov/petsc/">PETSc</a> is a suite of data structures and routines for the
scalable (parallel) solution of scientific applications modeled by
partial differential equations. It employs the <a class="reference external" href="http://www.mpi-forum.org">MPI</a> standard for all
message-passing communication.</p>
<p>PETSc is intended for use in large-scale application projects
<a class="reference internal" href="#petsc-efficient" id="id1"><span>[petsc-efficient]</span></a>, and several ongoing computational science projects
are built around the PETSc libraries. With strict attention to
component interoperability, PETSc facilitates the integration of
independently developed application modules, which often most
naturally employ different coding styles and data structures.</p>
<p>PETSc is easy to use for beginners <a class="reference internal" href="#petsc-user-ref" id="id2"><span>[petsc-user-ref]</span></a>. Moreover, its
careful design allows advanced users to have detailed control over the
solution process. PETSc includes an expanding suite of parallel linear
and nonlinear equation solvers that are easily used in application
codes written in C, C++, and Fortran. PETSc provides many of the
mechanisms needed within parallel application codes, such as simple
parallel matrix and vector assembly routines that allow the overlap of
communication and computation.</p>
<dl class="citation">
<dt class="label" id="petsc-user-ref"><span class="brackets"><a class="fn-backref" href="#id2">petsc-user-ref</a></span></dt>
<dd><p>S. Balay, S. Abhyankar, M. Adams,
J. Brown, P. Brune, K. Buschelman,
L. Dalcin, A. Dener, V. Eijkhout, W. Gropp,
D. Karpeyev, D. Kaushik, M. Knepley,
D. May, L. Curfman McInnes, R. Mills, T. Munson,
K. Rupp, P. Sanan, B. Smith,
S. Zampini, H. Zhang, and H. Zhang,
<em>PETSc Users Manual</em>, ANL-95/11 - Revision 3.14, 2020.
<a class="reference external" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manual.pdf">http://www.mcs.anl.gov/petsc/petsc-current/docs/manual.pdf</a></p>
</dd>
<dt class="label" id="petsc-efficient"><span class="brackets"><a class="fn-backref" href="#id1">petsc-efficient</a></span></dt>
<dd><p>Satish Balay, Victor Eijkhout, William D. Gropp,
Lois Curfman McInnes and Barry F. Smith. Efficient Management of
Parallelism in Object Oriented Numerical Software Libraries. Modern
Software Tools in Scientific Computing. E. Arge, A. M. Bruaset and
H. P. Langtangen, editors. 163–202. Birkhauser Press. 1997.</p>
</dd>
</dl>
<div class="section" id="components">
<h2>Components<a class="headerlink" href="#components" title="Permalink to this headline">¶</a></h2>
<p>PETSc is designed with an object-oriented style. Almost all
user-visible types are abstract interfaces with implementations that
may be chosen at runtime. Those objects are managed through handles to
opaque data structures which are created, accessed and destroyed by
calling appropriate library routines.</p>
<p>PETSc consists of a variety of components. Each component manipulates
a particular family of objects and the operations one would like to
perform on these objects. These components provide the functionality
required for many parallel solutions of PDEs.</p>
<dl class="field-list simple">
<dt class="field-odd">Vec</dt>
<dd class="field-odd"><p>Provides the vector operations required for setting up and
solving large-scale linear and nonlinear problems. Includes
easy-to-use parallel scatter and gather operations, as well as
special-purpose code for handling ghost points for regular data
structures.</p>
</dd>
<dt class="field-even">Mat</dt>
<dd class="field-even"><p>A large suite of data structures and code for the manipulation
of parallel sparse matrices. Includes four different parallel
matrix data structures, each appropriate for a different class
of problems.</p>
</dd>
<dt class="field-odd">PC</dt>
<dd class="field-odd"><p>A collection of sequential and parallel preconditioners,
including (sequential) ILU(k), LU, and (both sequential and
parallel) block Jacobi, overlapping additive Schwarz methods
and (through BlockSolve95) ILU(0) and ICC(0).</p>
</dd>
<dt class="field-even">KSP</dt>
<dd class="field-even"><p>Parallel implementations of many popular Krylov subspace
iterative methods, including GMRES, CG, CGS, Bi-CG-Stab, two
variants of TFQMR, CR, and LSQR. All are coded so that they are
immediately usable with any preconditioners and any matrix data
structures, including matrix-free methods.</p>
</dd>
<dt class="field-odd">SNES</dt>
<dd class="field-odd"><p>Data-structure-neutral implementations of Newton-like methods
for nonlinear systems. Includes both line search and trust
region techniques with a single interface. Employs by default
the above data structures and linear solvers. Users can set
custom monitoring routines, convergence criteria, etc.</p>
</dd>
<dt class="field-even">TS</dt>
<dd class="field-even"><p>Code for the time evolution of solutions of PDEs. In addition,
provides pseudo-transient continuation techniques for computing
steady-state solutions.</p>
</dd>
</dl>
</div>
</div>


            <div class="clearer"></div>
          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="index.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Overview</a><ul>
<li><a class="reference internal" href="#components">Components</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="index.html"
                        title="previous chapter">PETSc for Python</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="install.html"
                        title="next chapter">Installation</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="_sources/overview.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="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="install.html" title="Installation"
             >next</a> |</li>
        <li class="right" >
          <a href="index.html" title="PETSc for Python"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="index.html">PETSc for Python 3.14.1 documentation</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">Overview</a></li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright 2021, Lisandro Dalcin.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
    </div>
  </body>
</html>