大家好,我是小马老师。
本文介绍lammps模拟薄膜过滤相关的模拟方法,如建模、加压、薄膜空隙率影响等等相关技术。
大约用三篇文章介绍整个模拟过程,本文为第一期建模部分。
案例参考自Simon Gravelle,本文稍作修改,并对代码部分进行详细解释,供初学者参考。
模型如下图所示:
整个模拟体系一共包含5种原子,对应的类型分别为:
type 1:红色,左侧活塞墙
type 2:蓝色,中间薄膜
type 3:黄色,右侧活塞墙
type 4:紫色,溶液原子
type 5:绿色,溶质原子
(1)模型基本设置
模拟过程中,x方向需要设置活塞墙移动加压,因此,x方向为收缩边界,y和z方向为周期性边界。
单位为lj约化单位,原子类型为atomic。
boundary s p p
units lj
atom_style atomic
(2)创建模拟盒子
活塞和薄膜的晶格类型为fcc,晶格常数为1,以这个晶格参数创建box区域,设定box内含有5种原子。
lattice fcc 1
region simulation_box block -50 50 -15 15 -15 15
create_box 5 simulation_box
(3)创建5个区域
使用region block命令创建5个长方体区域,INF表示无穷大,在此可以理解为盒子边界。
region piston_left block -49 -48 INF INF INF INF
region fluid_left block -45 -2 INF INF INF INF
region membrane block -0.25 0.25 INF INF INF INF
region fluid_right block 2 45 INF INF INF INF
region piston_right block 48 49 INF INF INF INF
(4)填充原子
分别在第3步创建的区域内填充不同类型的原子,前3种按fcc晶格填充
create_atoms 1 region piston_left
create_atoms 2 region membrane
create_atoms 3 region piston_right
第4和5种原子随机填充,random后面2个数字分别表示原子个数和随机数种子seed,最后一个参数为填充区域。
随机数种子可以随便选一个正整数,不同的随机种子可产生不同的随机状态。
create_atoms 4 random 5000 654514 fluid_left
create_atoms 4 random 4500 654514 fluid_right
create_atoms 5 random 500 424514 fluid_right
(5)力场设置
力场为lj/cut,截断半径2.5。
mass * 1
pair_style lj/cut 2.5
pair_coeff 1*3 1*3 1.0 1.0 # solid-solid
pair_coeff 4 4 1.0 1.0 # solvent-solvent
增大type 5的第一个参数可增加原子间作用力,增大第二个参数可等效认为增大type 5原子半径。
pair_coeff 5 5 2.0 3.0 # solute-solute
pair_coeff 1*3 4 0.8 1 # fluid-solvent
pair_coeff 1*3 5 0.1 3.0 # fluid-solute
(6)能量最小化
dump mydmp all atom 1 dump.lammpstrj
thermo 10
minimize 1.0e-4 1.0e-6 1000 10000
write_data data.lammps pair ij
随机产生的原子容易造成原子重叠,因此,在弛豫前应该进行能量最小化,防止原子因间距过小造成模拟计算出错。
能量最小化完成后保持data文件,此data文件作为弛豫过程的输入文件。
公众号:lammps加油站