File: contributing.html

package info (click to toggle)
petsc 3.14.5%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 266,472 kB
  • sloc: ansic: 680,898; python: 33,303; cpp: 16,324; makefile: 14,022; f90: 13,731; javascript: 10,713; fortran: 9,581; sh: 1,373; xml: 619; objc: 445; csh: 192; pascal: 148; java: 13
file content (206 lines) | stat: -rw-r--r-- 12,668 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
203
204
205
206

<!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/developers/contributing.html" />
    <meta charset="utf-8" />
    <title>Contributing to PETSc &#8212; 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="PETSc Style and Usage Guide" href="style.html" />
    <link rel="prev" title="Communication Channels for PETSc Development" href="communication.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/developers/contributing.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="style.html" title="PETSc Style and Usage Guide"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="communication.html" title="Communication Channels for PETSc Development"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html">PETSc 3.14.5 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">PETSc Developer’s Documentation</a> &#187;</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>
  <h3><a href="../index.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Contributing to PETSc</a><ul>
<li><a class="reference internal" href="#how-tos">How-tos</a></li>
<li><a class="reference internal" href="#browsing-source">Browsing Source</a></li>
<li><a class="reference internal" href="#obtaining-the-development-version-of-petsc">Obtaining the development version of PETSc</a></li>
<li><a class="reference internal" href="#other-ways-to-obtain-petsc">Other ways to obtain PETSc</a><ul>
<li><a class="reference internal" href="#getting-a-tarball-of-the-git-master-branch-of-petsc">Getting a Tarball of the git master branch of PETSc</a></li>
<li><a class="reference internal" href="#getting-the-nightly-tarball-of-the-git-master-branch-of-petsc">Getting the Nightly tarball of the git master branch of PETSc</a></li>
</ul>
</li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="communication.html"
                        title="previous chapter">Communication Channels for PETSc Development</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="style.html"
                        title="next chapter">PETSc Style and Usage Guide</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/developers/contributing.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="contributing-to-petsc">
<h1>Contributing to PETSc<a class="headerlink" href="#contributing-to-petsc" title="Permalink to this headline">¶</a></h1>
<p>As you gain experience in building, using, and debugging with PETSc, you
may become able to contribute!</p>
<p>Before contributing code to PETSc, please read the <a class="reference internal" href="style.html"><span class="doc">PETSc Style and Usage Guide</span></a>. You may also
be interested to read about <a class="reference internal" href="design.html"><span class="doc">The Design of PETSc</span></a>.</p>
<p>See <a class="reference internal" href="integration.html"><span class="doc">PETSc Integration Workflows</span></a> for information on how to submit patches and pull requests to PETSc.</p>
<p>Once you have gained experience with developing PETSc source code, you
can become an active member of our development and push changes directly
to the petsc repository. Send mail to <a class="reference external" href="mailto:petsc-maint&#37;&#52;&#48;mcs&#46;anl&#46;gov">petsc-maint<span>&#64;</span>mcs<span>&#46;</span>anl<span>&#46;</span>gov</a> to
arrange it.</p>
<div class="section" id="how-tos">
<h2>How-tos<a class="headerlink" href="#how-tos" title="Permalink to this headline">¶</a></h2>
<p>Some of the source code is documented to provide direct examples/templates for common
contributions, adding new implementations for solver components:</p>
<ul class="simple">
<li><p><a class="reference external" href="https://www.mcs.anl.gov/petsc/petsc-current/src/ksp/pc/impls/jacobi/jacobi.c.html">Add a new PC type</a></p></li>
<li><p><a class="reference external" href="https://www.mcs.anl.gov/petsc/petsc-current/src/ksp/ksp/impls/cg/cg.c.html">Add a new KSP type</a></p></li>
<li><p><a class="reference external" href="https://www.mcs.anl.gov/petsc/petsc-current/src/mat/impls/aij/seq/superlu/superlu.c.html">Add a new subclass of a matrix type (implementation inheritence)</a></p></li>
</ul>
</div>
<div class="section" id="browsing-source">
<h2>Browsing Source<a class="headerlink" href="#browsing-source" title="Permalink to this headline">¶</a></h2>
<p>One can browse the development repositories at the following location</p>
<blockquote>
<div><p><a class="reference external" href="https://gitlab.com/petsc/petsc">https://gitlab.com/petsc/petsc</a></p>
</div></blockquote>
</div>
<div class="section" id="obtaining-the-development-version-of-petsc">
<h2>Obtaining the development version of PETSc<a class="headerlink" href="#obtaining-the-development-version-of-petsc" title="Permalink to this headline">¶</a></h2>
<p><a class="reference external" href="https://git-scm.com/downloads">Install Git</a> if it is not already installed on your machine, then obtain PETSc with the following:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git clone https://gitlab.com/petsc/petsc.git
<span class="nb">cd</span> petsc
</pre></div>
</div>
<p>PETSc can now be configured in the usual way, specified on the
<a class="reference external" href="https://www.mcs.anl.gov/petsc/documentation/installation.html">Installation page</a></p>
<p>To update your copy of PETSc</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git pull
</pre></div>
</div>
<p>Once updated, you will usually want to rebuild completely</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>make reconfigure all
</pre></div>
</div>
<p>This is a shorthand version of</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./<span class="nv">$PETSC_ARCH</span>/lib/petsc/conf/reconfigure-<span class="nv">$PETSC_ARCH</span>.py <span class="o">&amp;&amp;</span> make all
</pre></div>
</div>
<p>For additional help use</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">help</span></code> or <code class="docutils literal notranslate"><span class="pre">man</span> <span class="pre">git</span></code></p></li>
<li><p><a class="reference external" href="https://git-scm.com/book/en/">The Pro Git book</a></p></li>
</ul>
<p>If you absolutely cannot use git then you can access tarballs directly, as in <a class="reference internal" href="#other-ways-to-obtain"><span class="std std-ref">Other ways to obtain PETSc</span></a>.</p>
</div>
<div class="section" id="other-ways-to-obtain-petsc">
<span id="other-ways-to-obtain"></span><h2>Other ways to obtain PETSc<a class="headerlink" href="#other-ways-to-obtain-petsc" title="Permalink to this headline">¶</a></h2>
<div class="section" id="getting-a-tarball-of-the-git-master-branch-of-petsc">
<h3>Getting a Tarball of the git master branch of PETSc<a class="headerlink" href="#getting-a-tarball-of-the-git-master-branch-of-petsc" title="Permalink to this headline">¶</a></h3>
<p>Use the following URL: <a class="reference external" href="https://gitlab.com/petsc/petsc/get/master.tar.gz">https://gitlab.com/petsc/petsc/get/master.tar.gz</a></p>
<p>This mode is useful if you are on a machine where you cannot install
Git or if it has a firewall blocking http downloads.</p>
<p>After the tarballs is obtained - do the following:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>tar zxf petsc-petsc-CHANGESET.tar.gz
mv petsc-petsc-CHANGESET petsc
</pre></div>
</div>
<p>To update this copy of petsc, re-download the above tarball.
The URL above gets the latest changes immediately when they are pushed to the repository.</p>
</div>
<div class="section" id="getting-the-nightly-tarball-of-the-git-master-branch-of-petsc">
<h3>Getting the Nightly tarball of the git master branch of PETSc<a class="headerlink" href="#getting-the-nightly-tarball-of-the-git-master-branch-of-petsc" title="Permalink to this headline">¶</a></h3>
<p>The nightly tarball will be equivalent to the release
tarball - with all the documentation built. Use the following URL:</p>
<p><a class="reference external" href="http://ftp.mcs.anl.gov/pub/petsc/petsc-master.tar.gz">http://ftp.mcs.anl.gov/pub/petsc/petsc-master.tar.gz</a></p>
<p>To update your copy of petsc simply get a new copy of the tar file.
The tar file at the ftp site is updated once each night [around midnight
Chicago time] with the latest changes to the development version of PETSc.</p>
</div>
</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="style.html" title="PETSc Style and Usage Guide"
             >next</a> |</li>
        <li class="right" >
          <a href="communication.html" title="Communication Channels for PETSc Development"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html">PETSc 3.14.5 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" >PETSc Developer’s Documentation</a> &#187;</li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; 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>