跳转到主要内容

使用 Python 构建模型降阶应用库

项目描述

pyMOR Logo

PyPI PyPI Docs DOI GitLab Pipeline Conda Tests codecov pre-commit.ci status

pyMOR - 使用Python进行模型降阶

pyMOR是一个用于使用Python编程语言构建模型降阶应用的软件库。pyMOR中的所有算法均以抽象接口的形式表达,允许通用的实现与不同的后端协同工作,从NumPy/SciPy到外部的偏微分方程求解器包。

特性

  • 参数化线性和非线性问题的降阶基方法。
  • 线性时不变系统的系统理论方法。
  • 基于神经网络的参数化问题方法。
  • 正交分解。
  • 动态模态分解。
  • 数据的有理插值(Loewner,AAA)。
  • 数值线性代数(Gram-Schmidt,时间步进,...)。
  • 使用NumPy/SciPy科学计算堆栈的纯Python实现有限元和有限体积离散化。

许可证

pyMOR采用BSD-2条款授权。请参阅LICENSE.txt

引用

如果您在学术工作中使用了pyMOR,请考虑引用我们的出版物

R. Milk, S. Rave, F. Schindler
pyMOR - Generic Algorithms and Interfaces for Model Order Reduction
SIAM J. Sci. Comput., 38(5), pp. S194--S216, 2016

通过pip安装

我们建议在虚拟环境中安装pyMOR。

您可以使用pip命令轻松安装pyMOR。请注意,pip版本低于21.1可能会在解析所有依赖项时出现问题,因此建议先运行以下命令

pip install --upgrade pip

如果您不在虚拟环境中操作,可以将可选的--user参数传递给pip。然后pyMOR将只为您本地用户安装,不需要管理员权限。

最新版本(不带可选依赖项)

对于具有最小依赖项的安装,请运行

pip install pymor

请注意,大多数包含的演示脚本还需要Qt绑定,如pyside2才能正常工作。因此,我们建议使用带有gui额外组件安装pyMOR

pip install pymor[gui]  # 2023.1 and later

最新版本(带所有可选依赖项)

以下命令将在您的系统上安装pyMOR的最新版本,并包含大多数可选依赖项

pip install pymor[full]

由于需要系统上的额外设置,因此某些可选包不包括在pymor[full]

  • mpi4py:支持MPI分布式模型和贪婪算法的并行化(需要MPI开发头文件和C编译器)

    pip install mpi4py
    
  • Slycot:系统理论方法和H-infinity范数计算的稠密矩阵方程求解器(需要OpenBLAS头文件和Fortran编译器)

    pip install slycot
    

最新开发版本

要安装pyMOR的最新开发版本,请执行

pip install 'pymor[full] @ git+https://github.com/pymor/pymor'

这要求您的系统上已安装git版本控制系统。

当前发布分支版本

有时,pyMOR的主分支会经历重大变化,并且可能会出现问题(这通常会在我们的讨论论坛中宣布),因此您可能更喜欢从当前发布分支安装pyMOR

pip install 'pymor[full] @ git+https://github.com/pymor/pymor@2024.1.x'

发布分支将始终保持稳定,并且只有在发布相应的版本之后才会接收错误修复提交。

通过conda安装

我们建议在conda环境中安装pyMOR。

您可以使用conda运行以下命令来安装pyMOR

conda install -c conda-forge pymor

文档

文档可在线上找到。我们建议从入门教程技术概述开始。

要从pyMOR源代码树的根目录本地构建文档,请运行以下命令

make docs

这将在docs/_build/html中生成HTML文档。

外部PDE求解器

pyMOR的设计考虑了与外部偏微分方程求解器的轻松集成。

我们为以下求解器库提供绑定:

  • FEniCS

    pyMOR附带dolfin线性代数数据结构的MPI兼容包装类(pymor.bindings.fenics)。例如,请参阅pymordemos.thermalblockpymordemos.thermalblock_simple。它使用FEniCS版本2019.1.0进行测试。

  • deal.II

    Python绑定和pyMOR包装类可在此处找到。

  • NGSolve

    pyMOR附带NGSolve有限元库的包装类(pymor.bindings.ngsolve)。例如,请参阅pymordemos.thermalblock_simple。它使用NGSolve版本v6.2.2104进行测试。

pymordemos.minimal_cpp_demo中可以找到一个将pyMOR与自定义求解器直接集成的简单示例。

另一种方法是导入系统矩阵文件,并使用基于scipy.sparse的求解器。

pyMOR开发和测试环境

请参阅开发者文档

联系方式

如果您对pyMOR有任何疑问或希望做出贡献,请随时发送电子邮件至

main.developers@pymor.org

项目详情


下载文件

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

源分布

pymor-2024.1.2.tar.gz (843.8 kB 查看哈希值)

上传时间

构建分布

pymor-2024.1.2-py3-none-any.whl (603.6 kB 查看哈希值)

上传时间 Python 3

由以下支持