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
File details
Details for the file python_mumps-0.0.1a1.tar.gz
.
File metadata
- Download URL: python_mumps-0.0.1a1.tar.gz
- Upload date:
- Size: 19.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56e2d9b3c0d7ed1c785e1c544617ed76d7ee250fc8d46e098928dbf531819881 |
|
MD5 | f9550aa9afc29876d363ede07bf73741 |
|
BLAKE2b-256 | 6cc68b9e0869015ed8425a54fbafd360e363ed0c25886c5d4a25a1550a18eb85 |
File details
Details for the file python_mumps-0.0.1a1-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
.
File metadata
- Download URL: python_mumps-0.0.1a1-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 | 099b96fbec40a7f66f08aff7f4acc37b95f0a36d0273861522af6bfc86212a3d |
|
MD5 | d6355ae102efec557da14b032dd1d136 |
|
BLAKE2b-256 | 4c4ddc155bb022bd0abda4bfbb79211575a536966e4ee048f249fa8299a5eca3 |