使用PoreMS进行创建多种类孔隙的研究过程笔记
PoreMS 基本介绍
PoreMS 是一个专为催化化学领域设计的开源库,用于构建具有各种形状的石英孔隙结构的分子模型。它的强大之处在于能够对表面进行多种类型的修饰,在石油工程中,通过不同的修饰,可以实现对不同亲和力的分析。此外,PoreMS 还能创建复杂的分子隧道构型。
模型构建框架
以下是一个使用 PoreMS 构建模型的Python脚本示例:
Python
import porems as pms
import itertools
# 定义参数组合
diameters = [5, 7, 9] # 孔径(nm)
tms_amounts = [6.06, 3.03, 0] # TMS修饰量(对应OH覆盖度 oh0, oh0.5, oh1)
oh_labels = ['oh0', 'oh0.5', 'oh1'] # 文件夹命名
# 外层循环:遍历所有孔径
for diameter in diameters:
# 内层循环:遍历与 TMS 修饰量、oh_label 绑定好的组合
for tms_amount, oh_label in zip(tms_amounts, oh_labels):
# Set pore kit
pore = pms.PoreKit()
# Set Beta-Cristobalit block
pore.structure(pms.BetaCristobalit().generate([11, 11, 20], "z"))
pore.build()
# Set reservoir
# 外圈修饰固定为 6.06(可根据需要自行调整)
pore.exterior(diameter, hydro=6.06)
# Drill cylinder
pore.add_shape(
pore.shape_cylinder(diameter, 20, [5.5, 5.5, 10]),
section={"x": [], "y": [], "z": [0, 20]},
hydro=6.06
)
pore.prepare()
# Attach TMS - 外表面(ex)修饰量可固定为 3.03
pore.attach(
pms.gen.tms(),
mount=0,
axis=[1, 2],
amount=3.03,
site_type="ex",
inp="molar",
scale=0.5
)
# Attach TMS - 内表面(in)的修饰量根据 tms_amount 动态变化
pore.attach(
pms.gen.tms(),
mount=0,
axis=[1, 2],
amount=tms_amount,
shape="shape_00",
site_type="in",
inp="molar",
scale=0.5
)
# Finalize and save
pore.finalize()
pore.store(f"pores/stright/{diameter}/{oh_label}")
代码解析
导入
porems
和itertools
库。设置孔径、TMS 修饰量和标签等参数。
通过嵌套循环,创建不同孔径和表面修饰度的模型。
使用
PoreKit
初始化模型,设置基础结构,构建孔道,并进行表面修饰。保存生成的模型。
拓扑结构解释
生成的模型文件包括:
grid.itp
:骨架结构的.itp
文件。pore.gro
:整个系统的结构文件。pore.top
:整个系统的拓扑文件。
其中,pore.top
文件包含残基名称:OM SI SLX TMS TMSG SL SLG。grid.itp
文件缺少 TMS 和 TMSG 的力场信息。
TMS 指的是硅烷烃。
TMSG 指的是接一个羟基的硅烷。
PoreMS 仅提供骨架结构的力场信息,其余力场参数需要自行寻找。一个合理的力场组合是:CVFF 的硅、OPLS-AA(调整)的有机物。
最小化问题及解决方案
在模拟过程中,使用共轭梯度(sg)方法进行最小化时,容易出现化学键断裂的问题。
当前版本的 Gromacs 能量最小化处理较为复杂。
解决方案:
调整为 Clayff 力场,去除键角影响。
降低骨架力场的强度。
取消固定,观察体系膨胀或者收缩的趋势。
最后解决方案:使用Clayff力场,去掉Si-O键和相关的角信息,帮助能量最小化。
力场设计更新
石英骨架和硅醇使用 Clayff 力场。
油相使用 GAFF2 力场。
CO2使用EPM2力场。
TMS和TMSG使用GAFF2作为基底,并且调整电荷,使得电中性。
对于Si-O没有键相连的问题,使用PoreMS的原始文献中的实例中的力场参数作为no-bonded 部分,对于LJ部分也直接引用原始材料。
对电荷使用原始的材料,但是调整部分Si的电荷(这部分离官能团较远),使得电中性。
原子数量问题
当原子数量超过 5 位数时,.pdb
或 .gro
文件格式会受到限制。
解决方案:将原子序号从十进制转换为十六进制,使用其他支持更大原子数的格式。