安装

TensorMesh 可在 Linux、macOS 和 Windows 上运行。唯一的硬性要求是 Python ≥ 3.10PyTorch ≥ 2.0;其余所有依赖(NumPy、SciPy、meshio、torch-sla 等)都会由 pip 自动安装。

如果你打算使用 GPU 后端,请在安装 TensorMesh 之前 先安装启用了 CUDA 的 PyTorch 版本——请按照官方的 PyTorch 安装选择器,针对你的平台/CUDA 版本获取正确的安装命令。

通过 PyPI 安装

推荐通过 PyPI 来安装 TensorMesh:

pip install tensormesh-fem             # CPU stack (SciPy + PyTorch Krylov)
pip install "tensormesh-fem[gpu]"      # + all PyPI solver backends (cuDSS + PyAMG)

如果您拥有 NVIDIA GPU 且需要最快的 CUDA 直接求解器,请使用第二种形式 —— [gpu] 额外依赖通过 torch-sla 引入 cuDSS(以及 PyAMG)。由于 [...] 是 shell 通配符,因此需要加引号;若只需其中一种后端,请参阅 Sparse solvers and GPU acceleration 了解各后端的详细说明。

两种形式都会安装所有必需的依赖,包括 torch-sla —— 这是支撑 TensorMesh 求解器的可微稀疏线性代数库。基础的 pip install tensormesh-fem 安装 CPU 稀疏栈(SciPy + 设备无关的原生 PyTorch Krylov 后端);后文 Sparse solvers and GPU acceleration 中有完整的额外依赖矩阵([cudss] / [pyamg] / [gpu])以及如何验证您的机器上哪些后端可用的说明。

从源码安装

如需进行开发工作,或获取尚未发布的最新改动,请克隆仓库并以可编辑模式安装:

git clone https://github.com/camlab-ethz/TensorMesh.git
cd TensorMesh
pip install -e .

-e(可编辑)标志意味着对源码树的修改会被自动识别,无需重新安装。若要同时安装测试依赖:

pip install -e ".[test]"

稀疏求解器与 GPU 加速

为 TensorMesh 求解器提供动力的稀疏线性代数层位于一个独立的库 torch-sla 中,这样它便能独立演进并服务于其他项目。torch-sla 是一个 硬性的、导入时即需满足 的依赖——缺少它 tensormesh.sparse 将无法导入——并且它是 CPU 和 GPU 稀疏求解的统一入口。当前和未来的所有求解器工作都会先落地到 torch-sla;我们建议保持其为最新版本。

基础的 tensormesh-fem wheel 包会拉取 CPU 栈(SciPy + 原生 PyTorch Krylov —— 后者也可直接在 CUDA/ROCm 设备上运行)。如需添加其他求解器后端,请安装以下镜像额外依赖之一:

安装命令

新增的后端

适用场景

pip install tensormesh-fem

CPU 栈

默认配置;scipy 直接/迭代求解 + 设备无关的 pytorch Krylov。

pip install "tensormesh-fem[cudss]"

cuDSS(CUDA)

最快的 GPU 直接求解器(LU / Cholesky / LDLT)。

pip install "tensormesh-fem[pyamg]"

PyAMG (CPU)

用于大型偏微分方程系统的代数多重网格 V 循环。

pip install "tensormesh-fem[gpu]"

所有 PyPI 后端

便捷额外依赖 —— 安装 torch-sla[all](cuDSS + PyAMG)。

这些镜像了上游 torch-sla 的额外依赖([cudss] / [pyamg] / [all])—— 安装 tensormesh-fem[gpu] 完全等价于 pip install tensormesh-fem torch-sla[all],只是一步完成的写法。另外两个后端 —— strumpack(可移植的多波前直接求解器,支持 CPU/CUDA/ROCm)和 amgx(NVIDIA AmgX)—— 是以预编译 wheel 包形式在 torch-sla 的 GitHub Releases 上发布的,而非 PyPI。

查看已安装的内容

安装完成后,你可以查看当前机器上有哪些后端可用——对于尚不可用的后端,还会给出一行安装提示:

>>> import torch_sla
>>> torch_sla.show_backends()
torch-sla backend status (CUDA: available)
  scipy      [CPU]           available
  pytorch    [CPU/CUDA]      available
  cudss      [CUDA]          available
  pyamg      [CPU]           available
  amgx       [CUDA]          not available — pip install torch-sla[amgx]
  strumpack  [CPU/CUDA/ROCm] not available — pip install torch-strumpack

完整的后端/方法矩阵,以及如何在求解时选择非默认后端,请参阅 稀疏求解器

其他 extras

另有几个用于可选功能的较小 extras:

Extra

安装命令

用于示例 notebook 的 Plotly

pip install "tensormesh-fem[example]"

测试套件(pytest、pytest-cov)

pip install "tensormesh-fem[test]"

另有两个包通常也很有用,但 被声明为 extras——需要时请直接安装它们:

pip install gmsh       # external mesh generation / .msh I/O
pip install pyvista    # interactive 3D visualization

后续步骤

安装完成后,前往 验证安装 运行一个冒烟测试,或者直接进入 快速开始 体验二维泊松问题的完整演练。