PFLOTRAN 模拟多相、多组分、反应性流动与传输过程的高性能并行数值模拟软件
文章目录
- 一、PFLOTRAN 项目简介
- 1. 项目背景
- 2. 核心功能
- 3. 技术特点
- 4. 应用领域
- 二、PFLOTRAN 安装与配置
- 1. 系统要求
- 2. 安装步骤(简要)
- 3. 获取 PETSc
- 三、PFLOTRAN 使用方法
- 1. 输入文件格式
- 2. 示例输入片段(简单饱和流动)
- 3. 运行命令
- 4. 输出结果
- 四、学习资源与社区支持
- 1. 官方网站与文档
- 2. 教程与示例
- 3. 社区与邮件列表
- 五、优缺点总结
- 六、推荐使用流程
- 结语
PFLOTRAN 是一个用于模拟多相、多组分、反应性流动与传输过程的高性能并行数值模拟软件,广泛应用于地球科学、环境工程、地质碳封存、地下水污染修复、地热能开发等领域。它基于物理守恒定律,能够处理复杂的地质介质中的流体流动、溶质传输、化学反应和热传递过程。
一、PFLOTRAN 项目简介
1. 项目背景
PFLOTRAN 最初由美国能源部(DOE)资助,由洛斯阿拉莫斯国家实验室(Los Alamos National Laboratory, LANL)主导开发。其目标是为大规模地下系统提供高保真、可扩展的数值模拟工具,尤其适用于涉及复杂物理化学过程的场景。
2. 核心功能
PFLOTRAN 能够模拟以下过程:
- 单相/多相流动:水、气、非水相液体(NAPL)等。
- 多组分传输:多种溶质在液相和气相中的迁移。
- 反应性地球化学:水-岩相互作用、矿物溶解/沉淀、表面络合、氧化还原反应等。
- 热传递:热传导与对流耦合。
- 非饱和带流动:Richards 方程模拟包气带水分运动。
- 裂缝介质流动:可处理离散裂缝网络(DFN)或等效连续介质模型。
3. 技术特点
- 并行计算:基于 PETSc(Portable, Extensible Toolkit for Scientific Computation)框架,支持大规模并行计算(MPI),可运行在超级计算机上。
- 非结构化网格支持:支持结构化和非结构化网格(通过 SEACAS/Exodus II 格式输入)。
- 模块化设计:便于扩展和耦合其他物理过程。
- 开源免费:遵循开源协议(BSD 许可证),代码托管于 GitHub。
4. 应用领域
- 地质碳封存(CO₂ 地下储存)
- 核废料地质处置
- 地下水污染迁移与修复
- 地热系统模拟
- 油气藏开发(特别是 EOR 和 CO₂ 驱油)
- 水文地质与流域尺度建模
二、PFLOTRAN 安装与配置
1. 系统要求
- Linux 操作系统(推荐 CentOS、Ubuntu 等)
- Fortran 和 C 编译器(如 GCC、Intel Fortran)
- MPI 库(如 OpenMPI、MPICH)
- PETSc 库(必须预先编译安装)
- HDF5、NetCDF(可选,用于输出)
2. 安装步骤(简要)
# 1. 克隆代码
git clone https://github.com/pflotran/pflotran.git
cd pflotran# 2. 设置环境变量(假设 PETSc 已安装)
export PETSC_DIR=/path/to/petsc
export PETSC_ARCH=arch-linux2-c-opt# 3. 编译
make -j 4
注意:编译前需确保 PETSc 正确安装,并支持 Fortran 和 MPI。
3. 获取 PETSc
PFLOTRAN 依赖 PETSc,建议使用与 PFLOTRAN 兼容的版本(参考官方文档)。可通过以下方式安装:
wget http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-x.x.x.tar.gz
tar -xzf petsc-lite-x.x.x.tar.gz
cd petsc-x.x.x
./configure --with-cc=mpicc --with-fc=mpif90 --with-cxx=mpicxx \--download-hypre --download-parmetis --download-metis \--download-suitesparse --download-triangle --with-debugging=0
make all
三、PFLOTRAN 使用方法
1. 输入文件格式
PFLOTRAN 使用 用户友好的输入文件(.in),采用关键字驱动的文本格式。主要部分包括:
- SIMULATION:模拟类型(如 SUBSURFACE)
- SUBSURFACE:子表面流动与传输设置
- MATERIAL_PROPERTY:定义多孔介质属性(孔隙度、渗透率等)
- FLUID_PROPERTY:流体属性(密度、粘度等)
- BOUNDARY_CONDITION:边界条件(压力、浓度、通量等)
- INITIAL_CONDITION:初始条件
- TIME_STEP:时间步长控制
- OUTPUT:输出选项(HDF5、VTK 等)
2. 示例输入片段(简单饱和流动)
&SIMULATIONSIMULATION_TYPE SUBSURFACEPROCESS_SUBTYPE FLOW
/&SUBSURFACEDIMENSION 3 3 3DELTA_X 1.0 1.0 1.0DELTA_Y 1.0 1.0 1.0DELTA_Z 1.0 1.0 1.0
/&MATERIAL_PROPERTYNAME mat1POROSITY 0.2PERMEABILITY 1e-12 1e-12 1e-12
/&BOUNDARY_CONDITIONNAME bc_leftFACE WESTTYPE DIRICHLETWATER_PRESSURE 1.0e5
/&BOUNDARY_CONDITIONNAME bc_rightFACE EASTTYPE DIRICHLETWATER_PRESSURE 0.0
/&TIME_STEPMAXIMUM 86400INITIAL 1000
/&OUTPUTFORMAT HDF5OUTPUT_SOLIDS yes
/
3. 运行命令
mpirun -n 4 pflotran -input_prefix tutorial
假设输入文件为
tutorial.in
4. 输出结果
- HDF5 文件(
.h5
):包含压力、饱和度、浓度等场变量。 - 可使用 ParaView、VisIt 或 Python(h5py)进行后处理可视化。
- 支持 VTK 输出以便直接在 ParaView 中打开。
四、学习资源与社区支持
1. 官方网站与文档
- GitHub 仓库:https://github.com/pflotran/pflotran
- 官方文档:https://www.pflotran.org/documentation/
- 用户手册(PDF)和教程示例丰富。
2. 教程与示例
PFLOTRAN 提供大量测试用例(位于 pflotran/regression_tests/
目录下),涵盖:
- 单相流
- 多相流(CO₂ + 水)
- 反应性传输
- 热-水-力-化(THMC)耦合
3. 社区与邮件列表
- 用户邮件列表:pflotran-users@googlegroups.com
- 开发者活跃,问题响应较快。
五、优缺点总结
优点 | 缺点 |
---|---|
开源免费,可定制性强 | 学习曲线较陡 |
支持大规模并行计算 | 安装依赖复杂(PETSc) |
强大的反应性地球化学模块 | 前处理需借助第三方工具(如 MeshTool) |
输出格式标准(HDF5/VTK) | 缺少图形用户界面(GUI) |
六、推荐使用流程
- 学习基础理论:了解地下水流、溶质传输、化学反应建模基础。
- 安装 PETSc 和 PFLOTRAN:建议在 Linux 集群或虚拟机中操作。
- 运行示例案例:从简单的一维流动开始。
- 构建自己的模型:定义网格、材料、边界条件。
- 后处理与可视化:使用 ParaView 分析结果。
- 逐步增加复杂性:加入化学反应、多相流等。
结语
PFLOTRAN 是当前地球系统模拟领域最先进的开源工具之一,特别适合科研和工程中对高精度、大规模地下过程模拟的需求。虽然入门有一定门槛,但其强大的功能和活跃的社区支持使其成为相关领域研究者的首选工具之一。
如需进一步帮助,可提供具体应用场景(如 CO₂ 封存、地下水污染等),我可以给出更详细的建模建议和输入文件模板。