NASA PATO 代码安装与介绍
PATO介绍
PATO (Porous material Analysis Toolbox) 多孔材料分析工具箱是NASA开发的开源(GNU GPL)多相多孔反应材料模块化分析平台。它可以作为一个简单的傅立叶传热代码运行,也包括更先进的功能,如内部分解(热解、蒸发)、气-气和气-固化学相互作用(燃烧、裂化、焦化)、气体组分传输(对流、扩散)和固体形态演变(内部密度变化、表面烧蚀)。PATO同时使用冯·卡门流体动力学研究所开发的开源(GNU LGPL)热力学、传输和化学库 Mutation++。
PATO 官方网站 https://pato.ac
PATO Github仓库 https://github.com/nasa/pato
Anaconda介绍
Anaconda 是包含Conda的Python集成开发环境,主要用于科学计算,Conda是环境和包管理器。
Anaconda 下载安装 https://docs.anaconda.com/free/anaconda/install/index.html
Anaconda 入门教程
Anaconda安装完成后,终端命令行前出现 (base) 字样,取消方法:
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
可查看当前支持的环境)
- 首次安装完成后,可以运行测试算例 (建议在空文件夹下运行,测试失败会生成大量log文件),测试通过代表安装成功
1
| conda remove -y --name pato --all
|
运行算例
执行流程
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
|
- 执行后文件夹下会多出许多结果文件,此时运行 Allplot 可绘制结果图像,生成的 PDF 文件可在
plots
文件夹下找到
- 运行 Allclean 清理图像、网格和PATO输出
问题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
|
1 2
| conda remove matplotlib pip uninstall matplotlib
|
问题2
1
| evince: error while loading shared libraries: libgobject-2.0.so.0: failed to map segment from shared object
|
- StackOverflow 给出了一个解决方案,但并未起效
1 2
| sudo apt-get update sudo apt-get install -y libglib2.0-0 libsm6 libxrender1 libxext6
|
- 退出环境(打开新的Terminal)后运行
./Allplot
可成功绘制图像,尚未清楚原因
参考