Installation#

Install from PyPI using pip#

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

$ python -m pip install mpi4py petsc petsc4py

Install from the PETSc source tree#

First build PETSc. Next cd to the top of the PETSc source tree and set the PETSC_DIR and PETSC_ARCH environment variables. Run:

$ python -m pip install src/binding/petsc4py

The installation of petsc4py supports multiple PETSC_ARCH in the form of colon separated list:

$ PETSC_ARCH='arch-0:...:arch-N' python -m pip install src/binding/petsc4py

If you are cross-compiling, and the numpy module cannot be loaded on your build host, then before invoking pip, set the NUMPY_INCLUDE environment variable to the path that would be returned by import numpy; numpy.get_include():

$ export NUMPY_INCLUDE=/usr/lib/pythonX/site-packages/numpy/core/include

Running the testing suite#

When installing from source, the petsc4py complete testsuite can be run as:

$ cd src/binding/petsc4py
$ python test/runtests.py

or via the makefile rule test:

$ make test -C src/binding/petsc4py

Specific tests can be run using the command-line option -k, e.g.:

$ python test/runtests.py -k test_optdb

to run all the tests provided in tests/test_optdb.py.

For other command-line options, run:

$ python test/runtests.py --help

If not otherwise specified, all tests will be run in sequential mode. To run all the tests with the same number of MPI processes, for example 4, run:

$ mpiexec -n 4 python test/runtests.py

or:

$ make test-4 -C src/binding/petsc4py

Building the documentation#

Install the documentation dependencies:

$ python -m pip install -r ${PETSC_DIR/doc/requirements.txt

Then:

$ cd src/binding/petsc4py/docs/source
$ make html

The resulting HTML files will be in _build/html.

Note

Building the documentation requires Python 3.11 or later.