PoreMS 使用指南

PoreMS 是一个强大的 Python 库,用于生成具有自定义孔隙特性和表面功能化的二氧化硅模型。本指南将详细介绍如何使用 PoreMS 构建和功能化多孔二氧化硅模型。


环境准备

安装依赖

确保您已安装 PoreMS 和 Python 环境。

pip install porems

导入库

在 Python 文件中导入 PoreMS:

import porems as pms

基础操作

初始化 PoreKit

PoreKit 是 PoreMS 的核心对象,用于管理孔隙结构的生成与功能化。

pore = pms.PoreKit()

设置晶体结构

生成 Beta-Cristobalit 晶体结构并指定尺寸。

pore.structure(pms.BetaCristobalit().generate([11, 11, 10], "z"))
pore.build()

模型构建

定义外部边界

通过设置外部区域半径和羟基浓度来定义晶体边界。

pore.exterior(5, hydro=6.06)

参数说明:

  • 5: 在 z 方向上上下各增加 5 nm 的真空区域。

  • hydro=6.06: 外表面裸露氧原子的密度(单位:μmol/m²)。

添加孔隙结构

可以通过多种几何形状来定义孔隙:

圆柱孔

pore.add_shape(
    pore.shape_cylinder(2.5, 3, [5.5, 5.5, 5], central=[1, 1, 0]),
    hydro=6.06
)

锥形孔

pore.add_shape(
    pore.shape_cone(3.4, 4.1, 2, [5.5, 5.5, 21]),
    hydro=6.06
)

支持的孔隙形状

  • cylinder: 圆柱形。

  • cone: 锥形。

  • sphere: 球形。

  • cuboid: 长方体。

准备结构

调用 pore.prepare() 将裸露的氧原子羟基化,同时移除不符合规范的 Si 和 O 原子,并对表面进行平滑化处理。

pore.prepare()

表面功能化

功能化内部表面

为特定形状编号的孔内部表面进行功能化:

pore.attach(
    pms.gen.tms(),
    mount=0,
    axis=[1, 2],
    amount=6.06,
    shape="shape_00",
    site_type="in",
    inp="molar",
    scale=0.5
)

功能化外表面

pore.attach(
    pms.gen.tms(),
    mount=0,
    axis=[1, 2],
    amount=6.06,
    site_type="ex",
    inp="molar",
    scale=0.5
)

参数说明:

  • shape: 功能化的特定孔编号。

  • site_type: 功能化类型。

    • in: 孔内部表面。

    • ex: 孔外部表面。

  • amount: 功能化的目标浓度(单位:μmol/m²)。

  • scale: 功能化覆盖比例。


保存模型

完成结构生成后,将模型保存到指定路径:

pore.finalize()
pore.store("pores/shape1/")

pore.finalize() 会移除所有不符合规范的原子,并平滑化模型表面。


示例代码

import porems as pms

pore = pms.PoreKit()
pore.structure(pms.BetaCristobalit().generate([11, 11, 10], "z"))
pore.build()
pore.exterior(5, hydro=6.06)

pore.add_shape(
    pore.shape_cylinder(2.5, 3, [5.5, 5.5, 5], central=[1, 1, 0]),
    hydro=6.06
)

pore.add_shape(
    pore.shape_cone(3.4, 4.1, 2, [5.5, 5.5, 21]),
    hydro=6.06
)

pore.prepare()

pore.attach(
    pms.gen.tms(),
    mount=0,
    axis=[1, 2],
    amount=6.06,
    shape="shape_00",
    site_type="in",
    inp="molar",
    scale=0.5
)

pore.attach(
    pms.gen.tms(),
    mount=0,
    axis=[1, 2],
    amount=6.06,
    site_type="ex",
    inp="molar",
    scale=0.5
)

pore.finalize()
pore.store("pores/shape1/")

注意事项

  • 羟基浓度: 确保 hydro 参数与实验条件一致。

  • 路径设置: 保存路径应具有写权限。

  • 功能化覆盖: 调整 scale 参数以优化覆盖比例。


总结

PoreMS 是一款高效且灵活的工具,可用于生成和功能化多孔二氧化硅模型,为材料设计和模拟提供支持。