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}")

代码解析

  • 导入 poremsitertools 库。

  • 设置孔径、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 文件格式会受到限制。

  • 解决方案:将原子序号从十进制转换为十六进制,使用其他支持更大原子数的格式。