Skip to main content

Bindings and Python interface for the MUMPS sparse solver

Project description

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.10 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

python-mumps recommends Spin. Get spin with:

pip install spin

Then to build, test and install python-mumps:

spin build
spin test -- --lf  # (Pytest arguments go after --)
spin install

Project details


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.1.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

python_mumps-0.0.1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (18.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.12+ x86-64

File details

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

File metadata

  • Download URL: python_mumps-0.0.1.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for python_mumps-0.0.1.tar.gz
Algorithm Hash digest
SHA256 f5828958da977a24d75ad95c8a7f7ee14d6cc7239e6b343037a3fcb66673daa9
MD5 4d219c8c381b8f1ec63947e7d96110bf
BLAKE2b-256 197530d96101584f6c2bb0705e1c11b732f130ce29c659f8e3cfcac165d947a6

See more details on using hashes here.

File details

Details for the file python_mumps-0.0.1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for python_mumps-0.0.1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4c2f2870b03557846f0c802ff114c1d701d044e97214ab8a9bbc1058155d8b8e
MD5 f1574bdbcc77fad6f624a730a1bbe4b6
BLAKE2b-256 f7609cc38df523cacee0ff6740e517b8438c576740a44a66a27bd6515c3ea23b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page