跳转到主要内容

MUMPS稀疏求解器的绑定和Python接口

项目描述

Python-MUMPS

Python绑定MUMPS:一个并行稀疏直接求解器。

范围

本包针对由conda-forge包装的MUMPS,使用Cython绑定。它旨在提供MUMPS顺序API的完整封装。其主要目标是Linux操作系统。

下一步包括

  • 支持Windows和OSX
  • 支持分布式(MPI)MUMPS

安装

python-mumps在Linux、Windows和Mac上与Python 3.10及更高版本兼容。

安装python-mumps的推荐方法是使用mamba/conda

mamba install -c conda-forge python-mumps

python-mumps也可以从PyPI安装,但这是一个更复杂的流程,需要单独安装MUMPS库和C编译器。

使用示例

以下示例展示了如何使用Python-MUMPS与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)

开发

python-mumps推荐Spin。获取spin

pip install spin

然后构建、测试和安装python-mumps

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

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

python_mumps-0.0.2.tar.gz (19.4 kB 查看哈希值)

上传时间 源代码

构建分发

python_mumps-0.0.2-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (18.4 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.12+ x86-64

由以下提供支持