一、基本模拟参数设置
bash
# 设置单位制为金属单位制
#(常用千电子伏特、埃、皮秒)
units metal
#设置原子样式为"full",
#包含原子ID、分子ID、类型、电荷和坐标
atom_style full
dimension 3
#周期性边界条件
boundary p p p
#邻域列表的截断半径为0.2埃
neighbor 0.2 bin
#邻域列表的更新规则:延迟0步,每1步检查并更新
neigh_modify delay 0 every 1 check yess
二、创建模拟盒子并定义区域
bash
# ==================== 创建模拟盒子并定义区域 ====================
# 定义名为"box"的矩形模拟区域,范围:x方向0-900埃,y和z方向均为-125到125埃
region box block 0 900 -125 125 -125 125
# 在"box"区域内创建模拟盒子
# 盒子内预设包含2种原子类型,2种键类型,1种角类型
# 并为每个原子预留额外的键、角和特殊邻接关系存储空间
create_box 2 box &
bond/types 2 &
angle/types 1 &
extra/bond/per/atom 2 &
extra/angle/per/atom 1 &
extra/special/per/atom 2
三、设置管道外部气体
bash
# ==================== 区域1:管道外部气体 (氢气H2) ====================
# 定义一个名为"cylinder0"的圆柱形排除区域(side out)
# 圆柱轴线沿x方向,中心在(0,0),半径80埃,从x=0延伸到x=450埃
region cylinder0 cylinder x 0 0 80 0 450 side out units box
# 从文件"H2.txt"中读入氢气(H2)分子的模板信息(应包含键和角信息)
molecule H2 H2.txt
# 定义区域"Gas"为"box"区域与"cylinder0"区域的交集
# 即:整个盒子减去轴线附近的圆柱空间,用于放置管道外的气体
region Gas intersect 2 box cylinder0
# 在"Gas"区域内随机创建原子
# 创建类型为2的原子(应为氢气)共1080个(即540个H2分子)
# 使用随机种子12345,以H2分子模板为单位创建
create_atoms 1 random 1080 12345 Gas mol H2 12345 units box
四、设置金属管壁
bash
==================== 区域2:金属管道壁 (金Au) ====================
# 定义两个同轴圆柱区域,通过差集构建管壁
region cylinder1 cylinder x 0 0 80 0 450 units box # 外圆柱,半径80埃
region cylinder2 cylinder x 0 0 60 0 450 side out units box # 内圆柱(排除内部),半径60埃
# 定义区域"Au1"为上述两区域的交集,得到一个径向60-80埃的圆管壁
region Au1 intersect 2 cylinder1 cylinder2
# 设置金的晶格类型为面心立方(fcc),晶格常数为4.08埃
lattice fcc 4.08
# 在"Au1"定义的管壁区域内创建类型1的原子(金原子)
create_atoms 1 region Au1
五、设置管道内部气体
bash
# 定义管道内部圆柱区域"cylinder3",半径为60埃
region cylinder3 cylinder x 0 0 60 0 450 units box
# 在管道内部随机创建氢气分子
# 同样创建1080个类型2的原子(540个H2分子),使用不同的随机种子
create_atoms 1 random 1080 12345 cylinder3 mol H2 12345 units box
六、设置原子质量并导出数据
bash
# ==================== 原子质量设置与数据输出 ====================
# 设置原子类型1(金)的质量为196.97 amu(原子质量单位)
mass 1 196.97
# 设置原子类型2(氢)的质量为1 amu
mass 2 1
# 将当前构建好的原子系统写入文件"Model.data",作为后续模拟的初始构型
write_data Model.data
最终结果:
