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 — 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> »</li>
<li class="nav-item nav-item-1"><a href="index.html" accesskey="U">PETSc Developer’s 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>
<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%40mcs.anl.gov">petsc-maint<span>@</span>mcs<span>.</span>anl<span>.</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">&&</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> »</li>
<li class="nav-item nav-item-1"><a href="index.html" >PETSc Developer’s 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>
|