Skip to main content

Python-MUMPS

Python bindings for the MUMPS: a parallel sparse direct solver.

Scope

This package targets MUMPS packaged by conda-forge using Cython bindings. It aims to provide a full wrapper of the MUMPS sequential API. Its primary target OS is Linux.

Next steps include:

  • Support for Windows and OSX
  • Support for distributed (MPI) MUMPS

Installation

python-mumps works with Python 3.12 and higher on Linux, Windows and Mac.

The recommended way to install python-mumps is using mamba/conda.

mamba install -c conda-forge python-mumps

python-mumps can also be installed from PyPI, however this is a more involved procedure that requires separately installing the MUMPS library and a C compiler.

Usage example

The following example shows how Python-MUMPS can be used to implement sparse diagonalization with Scipy.

import scipy.sparse.linalg as sla
from scipy.sparse import identity
import mumps


def sparse_diag(matrix, k, sigma, **kwargs):
    """Call sla.eigsh with mumps support.

    See scipy.sparse.linalg.eigsh for documentation.
    """
    class LuInv(sla.LinearOperator):
        def __init__(self, A):
            inst = mumps.Context()
            inst.analyze(A, ordering='pord')
            inst.factor(A)
            self.solve = inst.solve
            sla.LinearOperator.__init__(self, A.dtype, A.shape)

        def _matvec(self, x):
            return self.solve(x.astype(self.dtype))

    opinv = LuInv(matrix - sigma * identity(matrix.shape[0]))
    return sla.eigsh(matrix, k, sigma=sigma, OPinv=opinv, **kwargs)

Development

Pixi

python-mumps recommends pixi.

After installing pixi, use

pixi run test -v  # (Pytest arguments go after test)

This will also install the necessary dependencies.

pre-commit

python-mumps uses pre-commit to enforce code style. After installing it, run

pre-commit install

or if you want to use pre-commit provided by pixi, run

pixi run pre-commit install

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python_mumps-0.0.6.tar.gz (58.3 kB view details)

Uploaded Source

File details

Details for the file python_mumps-0.0.6.tar.gz.

File metadata

  • Download URL: python_mumps-0.0.6.tar.gz
  • Upload date:
  • Size: 58.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for python_mumps-0.0.6.tar.gz
Algorithm Hash digest
SHA256 58c33104f77c448e127e9e6da316f71dfb1a17719ecf022634669d513306b1fa
MD5 4a7bf25e73380b2580100f2125c3255b
BLAKE2b-256 d372bc0e855f424877e54eb665b1c59e27146d56b37546b4acd49daff804a543

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.6 This release

1 file

0.0.5

1 file

0.0.4

1 file

0.0.3

1 file

0.0.2

2 files

0.0.1.post1

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page