NASA PATO安装 (Anaconda)

NASA PATO 代码安装与介绍

PATO介绍

PATO[1] (Porous material Analysis Toolbox) 多孔材料分析工具箱是NASA开发的开源(GNU GPL)多相多孔反应材料模块化分析平台。它可以作为一个简单的傅立叶传热代码运行,也包括更先进的功能,如内部分解(热解、蒸发)、气-气和气-固化学相互作用(燃烧、裂化、焦化)、气体组分传输(对流、扩散)和固体形态演变(内部密度变化、表面烧蚀)。PATO同时使用冯·卡门流体动力学研究所开发的开源(GNU LGPL)热力学、传输和化学库 Mutation++。

PATO 官方网站 https://pato.ac
PATO Github仓库 https://github.com/nasa/pato

Anaconda介绍

Anaconda [2]是包含Conda的Python集成开发环境,主要用于科学计算,Conda是环境和包管理器。

Anaconda 下载安装 https://docs.anaconda.com/free/anaconda/install/index.html

Anaconda 入门教程 [3]

Anaconda安装完成后,终端命令行前出现 (base) 字样[4],取消方法:

1
conda config --set auto_activate_base False

版本环境

1
2
3
Ubuntu 22.04.4 LTS
pato-3.1
Anaconda3-2024.02-1-Linux-x86_64.sh

安装 PATO

  • Anacoda 安装完成后直接复制以下所有命令并执行即可安装 PATO 组件
1
2
3
4
conda config --add channels conda-forge
conda config --add channels pato.devel
conda config --set channel_priority strict
conda create -y --name pato -c conda-forge -c pato.devel pato
  • 执行完毕后安装了 openfoam_for_pato 和 foam-extend_for_pato 软件包,可以在 ~/anaconda3/envs/pato/src 路径下找到源码包
1
2
3
volume_foam-extend_for_pato
volume_openfoam_for_pato
volume_pato
  • PATO 依赖 conda 环境来管理其软件依赖项和环境变量,在使用 PATO 的任何功能之前都需要激活环境 (执行 conda env list 可查看当前支持的环境)
1
conda activate pato
  • 首次安装完成后,可以运行测试算例 (建议在空文件夹下运行,测试失败会生成大量log文件),测试通过代表安装成功
1
runtests
  • 以下是卸载命令
1
conda remove -y --name pato --all

运行算例

执行流程

  • 所有测试算例可在 ~/anaconda3/envs/pato/src/volume_pato/pato-3.1/tutorials 路径下找到,此处以 1D/AblationTestCase_1.0 为例介绍执行流程

  • 在该路径下打开 Terminal,更新并激活 PATO 环境

1
2
conda upgrade --all
conda activate pato
  • 算例路径下文件结构为
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.
├── Allclean
├── Allplot
├── Allrun
├── constant
│   ├── porousMat
│   │   └── porousMatProperties
│   └── regionProperties
├── data
│   └── ref
│   └── FIAT
│   ├── pyrolysisFront
│   └── T
├── origin.0
│   └── porousMat
│   ├── p
│   ├── rho_s
│   └── Ta
├── output
│   └── empty
├── plots
│   └── plot.py
└── system
├── controlDict
└── porousMat
├── blockMeshDict
├── fvSchemes
├── fvSolution
├── plotDict
└── surfacePatchDict
  • 运行 Allrun 执行算例
1
./Allrun
  • 执行后文件夹下会多出许多结果文件,此时运行 Allplot 可绘制结果图像,生成的 PDF 文件可在 plots 文件夹下找到
1
./Allplot
  • 运行 Allclean 清理图像、网格和PATO输出
1
./Allclean

问题1

  • 首次执行 ./Allplot 可能由于缺少 matplotlib 包报错
1
ImportError: No module named pylab
  • 执行 conda list 可查看已安装的包,执行以下命令安装包,两者选其一即可,此处添加了镜像源
1
conda install numpy scipy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

或者

1
pip install numpy scipy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 卸载包使用的命令与pip有所不同
1
2
conda remove matplotlib
pip uninstall matplotlib

问题2

  • 运行 ./Allplot 可能会出现以下报错
1
evince: error while loading shared libraries: libgobject-2.0.so.0: failed to map segment from shared object
  • StackOverflow[5] 给出了一个解决方案,但并未起效
1
2
sudo apt-get update
sudo apt-get install -y libglib2.0-0 libsm6 libxrender1 libxext6
  • 退出环境(打开新的Terminal)后运行 ./Allplot 可成功绘制图像,尚未清楚原因
1
conda deactivate

参考


  1. Porous material Analysis Toolbox based on OpenFoam (PATO)(ARC-16680-1A) ↩︎

  2. Anaconda介绍、安装及使用教程 - 知乎 ↩︎

  3. Anaconda完全入门指南 - 简书 ↩︎

  4. 安装 aconda 后Linux的终端界面前部出现(base)字样 - 博客园 ↩︎

  5. ImportError: libgthread-2.0.so.0… - StackOverflow ↩︎

0%