This is petsc4py.info, produced by makeinfo version 6.7 from
petsc4py.texi.

     PETSc for Python 3.15.1, Jun 17, 2021

     Lisandro Dalcin

     Copyright © 2021, Lisandro Dalcin

INFO-DIR-SECTION Miscellaneous
START-INFO-DIR-ENTRY
* petsc4py: (petsc4py.info). PETSc for Python.
END-INFO-DIR-ENTRY


   Generated by Sphinx 3.5.4.


File: petsc4py.info,  Node: Top,  Next: Contents,  Up: (dir)

PETSc for Python
****************

     PETSc for Python 3.15.1, Jun 17, 2021

     Lisandro Dalcin

     Copyright © 2021, Lisandro Dalcin


Author: Lisandro Dalcin


Contact: <dalcinl@gmail.com>


Web Site: ‘https://gitlab.com/petsc/petsc’


Date: Jun 17, 2021

Abstract
========

This document describes petsc4py(1), a Python(2) port to the PETSc(3)
libraries.

PETSc(4) (the Portable, Extensible Toolkit for Scientific Computation)
is a suite of data structures and routines for the scalable (parallel)
solution of scientific applications modeled by partial differential
equations.  It employs the MPI(5) standard for all message-passing
communication.

This package provides an important subset of PETSc functionalities and
uses NumPy(6) to efficiently manage input and output of array data.

A `good friend' of petsc4py is:

        * mpi4py(7): Python bindings for MPI(8), the `Message Passing
          Interface'.

Other projects depends on petsc4py:

        * slepc4py(9): Python bindings for SLEPc(10), the `Scalable
          Library for Eigenvalue Problem Computations'.

* Menu:

* Contents::

 — The Detailed Node Listing —

Contents

* Overview::
* Installation::
* Tutorial::
* Citations::

Overview

* Components::

Installation

* Using pip::
* Using setuptools::
* From PETSc source::


   ---------- Footnotes ----------

   (1) http://gitlab.com/petsc/petsc4py

   (2) http://www.python.org

   (3) http://www.mcs.anl.gov/petsc/

   (4) http://www.mcs.anl.gov/petsc/

   (5) http://www.mpi-forum.org

   (6) http://www.numpy.org

   (7) http://github.com/mpi4py/mpi4py

   (8) http://www.mpi-forum.org

   (9) http://gitlab.com/slepc/slepc4py

   (10) http://slepc.upv.es


File: petsc4py.info,  Node: Contents,  Prev: Top,  Up: Top

1 Contents
**********

* Menu:

* Overview::
* Installation::
* Tutorial::
* Citations::


File: petsc4py.info,  Node: Overview,  Next: Installation,  Up: Contents

1.1 Overview
============

PETSc(1) is a suite of data structures and routines for the scalable
(parallel) solution of scientific applications modeled by partial
differential equations.  It employs the MPI(2) standard for all
message-passing communication.

PETSc is intended for use in large-scale application projects *note
[petsc-efficient]: 5, 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.

PETSc is easy to use for beginners *note [petsc-user-ref]: 6.  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.

(petsc-user-ref) 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, `PETSc
Users Manual', ANL-95/11 - Revision 3.15, 2021.
‘http://www.mcs.anl.gov/petsc/petsc-current/docs/manual.pdf’

(petsc-efficient) 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.

* Menu:

* Components::

   ---------- Footnotes ----------

   (1) http://www.mcs.anl.gov/petsc/

   (2) http://www.mpi-forum.org


File: petsc4py.info,  Node: Components,  Up: Overview

1.1.1 Components
----------------

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.

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.


Vec: 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.


Mat: 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.


PC: 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).


KSP: 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.


SNES: 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.


TS: Code for the time evolution of solutions of PDEs.  In addition,
provides pseudo-transient continuation techniques for computing
steady-state solutions.


File: petsc4py.info,  Node: Installation,  Next: Tutorial,  Prev: Overview,  Up: Contents

1.2 Installation
================

* Menu:

* Using pip::
* Using setuptools::
* From PETSc source::


File: petsc4py.info,  Node: Using pip,  Next: Using setuptools,  Up: Installation

1.2.1 Using `pip'
-----------------

You can use ‘pip’ to install ‘petsc4py’ and its dependencies (‘mpi4py’
is optional but highly recommended):

     $ python -m pip install [--user] numpy mpi4py  (or pip install [--user] numpy mpi4py)
     $ python -m pip install [--user] petsc petsc4py (or pip install [--user] petsc petsc4py)


File: petsc4py.info,  Node: Using setuptools,  Next: From PETSc source,  Prev: Using pip,  Up: Installation

1.2.2 Using `setuptools'
------------------------

You can also install dependencies manually and then invoke setuptools
from the ‘petsc4py’ source directory:

     $ python setup.py build $ python setup.py install

You may use the ‘–install-lib’ argument to the ‘install’ command to
alter the ‘site-packages’ directory where the package is to be
installed.


File: petsc4py.info,  Node: From PETSc source,  Prev: Using setuptools,  Up: Installation

1.2.3 From PETSc source
-----------------------

If you already have downloaded PETSc source and have installed the
dependencies of ‘petsc4py’, then to build the ‘petsc4py’ module along
with PETSc, add the ‘–with-petsc4py=1’ argument to the configure command
when building PETSc:

     $ ./configure –with-petsc4py=1 $ make $ make install

This will install PETSc and the ‘petsc4py’ module into the PETSc
directory under the prefix specified to the PETSc configure command.

If you wish to make the module importable without having to set the
‘PYTHONPATH’ environment variable, you may add a shortcut to the
system-wide ‘site-packages’ directory creating a special ‘.pth’ file
with exactly one line of Python code.  This can be done by the following
command, where the system-wide path is assumed to be
‘/usr/lib/pythonX/site-packages’ (replace ‘X’ with your python version):

     $ echo

          “import sys, os;” “p = os.getenv(‘PETSC_DIR’);” “a =
          os.getenv(‘PETSC_ARCH’) or ‘’;” “p = p and os.path.join(p, a,
          ‘lib’);” “p and (p in sys.path or sys.path.append(p))” >
          /usr/lib/pythonX/site-packages/petsc4py.pth


File: petsc4py.info,  Node: Tutorial,  Next: Citations,  Prev: Installation,  Up: Contents

1.3 Tutorial
============

XXX To be written … Any contribution welcome!


File: petsc4py.info,  Node: Citations,  Prev: Tutorial,  Up: Contents

1.4 Citations
=============

If PETSc for Python been significant to a project that leads to an
academic publication, please acknowledge that fact by citing the
project.

   * L. Dalcin, P. Kler, R. Paz, and A. Cosimo, `Parallel Distributed
     Computing using Python', Advances in Water Resources,
     34(9):1124-1139, 2011.
     ‘http://dx.doi.org/10.1016/j.advwatres.2011.04.013’

   * 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, `PETSc Users Manual', ANL-95/11 - Revision
     3.15, 2021.
     ‘http://www.mcs.anl.gov/petsc/petsc-current/docs/manual.pdf’



Tag Table:
Node: Top335
Ref: index doc541
Ref: 0541
Ref: Top-Footnote-11752
Ref: Top-Footnote-21793
Ref: Top-Footnote-31823
Ref: Top-Footnote-41861
Ref: Top-Footnote-51899
Ref: Top-Footnote-61932
Ref: Top-Footnote-71961
Ref: Top-Footnote-82001
Ref: Top-Footnote-92034
Ref: Top-Footnote-102075
Node: Contents2104
Ref: index contents2166
Ref: 12166
Ref: index petsc-for-python2166
Ref: 22166
Node: Overview2256
Ref: overview doc2332
Ref: 32332
Ref: overview overview2332
Ref: 42332
Ref: overview petsc-user-ref3509
Ref: 63509
Ref: overview petsc-efficient3911
Ref: 53911
Ref: Overview-Footnote-14308
Ref: Overview-Footnote-24346
Node: Components4379
Ref: overview components4436
Ref: 74436
Ref: overview slepc4py4436
Ref: 84436
Node: Installation6504
Ref: install doc6597
Ref: 96597
Ref: install installation6597
Ref: a6597
Node: Using pip6699
Ref: install petsc4py-install6784
Ref: b6784
Ref: install using-pip6784
Ref: c6784
Node: Using setuptools7128
Ref: install using-setuptools7239
Ref: d7239
Node: From PETSc source7616
Ref: install from-petsc-source7709
Ref: e7709
Node: Tutorial8932
Ref: tutorial doc9026
Ref: f9026
Ref: tutorial tutorial9026
Ref: 109026
Node: Citations9102
Ref: citing doc9175
Ref: 119175
Ref: citing citations9175
Ref: 129175

End Tag Table


Local Variables:
coding: utf-8
End:
