lammps教程:薄膜渗透模拟(3)–不同孔隙率对过滤效果的影响

lammps教程:薄膜渗透模拟(3)–不同孔隙率对过滤效果的影响本文是薄膜渗透过滤的最后一篇文章:不同孔隙率薄膜建模。孔隙或空位缺陷的建模原理比较简单:删除一定数量的原子就可以。lammps自带delete_atoms可以随机删除一定比例的原子,如果对孔隙或空位的形状、尺寸等有特殊需求,需要用编程的方法删除原子。delete_atomsporosity命令可随时产生设定比例的原子,如删除50%的原子:delete_atomsporositymembrane0.5482793membrane为原子组0.5为删除原子的比例482793为随机数种子

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

本文是薄膜渗透过滤的最后一篇文章:不同孔隙率薄膜建模。
孔隙或空位缺陷的建模原理比较简单:删除一定数量的原子就可以。
lammps自带delete_atoms可以随机删除一定比例的原子,如果对孔隙或空位的形状、尺寸等有特殊需求,需要用编程的方法删除原子。
delete_atoms porosity命令可随时产生设定比例的原子,如删除50%的原子:

delete_atoms porosity membrane 0.5 482793
  • membrane为原子组
    0.5为删除原子的比例 482793为随机数种子,取任一正整数即可。

初始模型和删除50%原子后的薄膜对比:
在这里插入图片描述
在这里插入图片描述

模拟结果为:
在这里插入图片描述

模拟in文件为:

#编写:Simon Gravelle
boundary	s p p
pair_style	lj/cut 2.5
neigh_modify 	every 1 delay 5 check yes
#读取模型文件
read_data	data.lammps
region		right block 0 INF INF INF INF INF
#原子分组
group		solid type 1 2 3
group		piston_right type 3
group		membrane type 2
group		piston_left type 1
group		fluid type 4 5
group		solvent type 4
group		solute type 5
#排除墙原子之间的作用力
neigh_modify 	exclude group solid solid
#按比例删除薄膜原子
region        membrane block -0.25 0.25 INF INF INF INF
delete_atoms     porosity membrane 0.5 482793
#温度初始化
velocity 	fluid create 1.0 4928459 mom yes rot yes dist gaussian
fix        mynve all nve
compute        temperature_fluid fluid temp
fix        mylgv fluid langevin 1.0 1.0 0.1 1530917 zero yes
fix_modify    mylgv temp temperature_fluid
thermo_modify    temp temperature_fluid
#固定薄膜
fix        mysf1 membrane setforce 0 0 0
fix        mysf2 piston_left setforce NULL 0 0
fix        mysf3 piston_right setforce NULL 0 0
#两侧施加压力
variable    F equal 0.01
fix        myaf1 piston_left aveforce ${ 
   F} NULL NULL
fix        myaf2 piston_right aveforce -${ 
   F} NULL NULL
#统计过滤后的溶质和溶剂原子数量
variable    solvent_right equal count(solvent,right)
variable    solute_right equal count(solute,right)
variable    position_piston_left equal xcm(piston_left,x)
variable    position_piston_right equal xcm(piston_right,x)
#输出统计记过
fix        myat1 all ave/time 10000 1 10000 v_solvent_right file solvent_right.dat
fix        myat2 all ave/time 10000 1 10000 v_solute_right file solute_right.dat
fix        myat3 all ave/time 10000 1 10000 v_position_piston_left file position_piston_left.dat
fix        myat4 all ave/time 10000 1 10000 v_position_piston_right file position_piston_right.dat
fix        myat5 all ave/time 10 1000 10000 f_mysf1[1] file force_membrane.dat
#输出轨迹文件
dump        mydmp all atom 10000 dump.xyz
thermo        10000
run        5000000

公众号:lammps加油站

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197630.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号