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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5828958da977a24d75ad95c8a7f7ee14d6cc7239e6b343037a3fcb66673daa9
|
|
| MD5 |
4d219c8c381b8f1ec63947e7d96110bf
|
|
| BLAKE2b-256 |
197530d96101584f6c2bb0705e1c11b732f130ce29c659f8e3cfcac165d947a6
|
File details
Details for the file python_mumps-0.0.1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.
File metadata
- Download URL: python_mumps-0.0.1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
- Upload date:
- Size: 18.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c2f2870b03557846f0c802ff114c1d701d044e97214ab8a9bbc1058155d8b8e
|
|
| MD5 |
f1574bdbcc77fad6f624a730a1bbe4b6
|
|
| BLAKE2b-256 |
f7609cc38df523cacee0ff6740e517b8438c576740a44a66a27bd6515c3ea23b
|