lammps计算区域压力的两种方法

学术   科技   2024-09-23 14:28   山东  
大家好,我是小马老师。
本文介绍lammps计算区域压力的两种方法。
在lammps模拟中,计算某一个固定区域内气体或者液态的压力,可以先计算该区域内所有单个原子的应力,然后把区域内原子的应力值求和再除以体积。
只有处于该区域内的原子参与压力的计算,当原子移动出该区域后,就不再计算该原子的应力。

本文提供两种计算方法。
方法1:使用分块命令计算区域压力
下面代码,把整个x方向平均分成3块,计算完成后会输出这三块的全部压力值,根据最终输出结果,提取需要的数据即可。
variable nbins index 3variable fraction equal 1.0/v_nbinscompute cchunk all chunk/atom bin/1d x lower ${fraction} units reducedcompute stress all stress/atom NULLvariable press atom -(c_stress[1]+c_stress[2]+c_stress[3])/(3.0*vol*${fraction})compute binpress all reduce/chunk cchunk sum v_pressfix avg all ave/time 1 100 100 c_binpress mode vector file ave_stress.txt
方法2:使用compute reduce/region命令
lammps提供了compute reduce/region命令,可以计算某一个特定区域的值。
如下面代码,在x方向划分了坐标为[20,40]的一个区域,计算完成后,会之间输出该区域的压力值。
region H2O block 20 40 INF INF INF INF units boxcompute 1 all reduce/region H2O sum c_stress[1] c_stress[2] c_stress[3]    variable press2 equal -(c_1[1]+c_1[2]+c_1[3])/(3*20*20*20)fix 2 all ave/time 1 100 100 v_press2  file stress2.txt
两个方法都可以实现区域压力的计算,第一个方法可以计算区域压力的分布,如果需要同时计算多个区域,可以采用第一个方法,如果只需要计算一个特定区域,第二个方法更灵活一些。

---------- End -----------

报名一对一培训课程可领完整版《lammps中文教程》,配套学习更轻松!

自编lammps教程第3版发布,600页,上册免费领

扫码领取粉丝专属优惠券↓↓↓

免费试听:Cu融化模拟代码编写及启动运算方法
课程介绍:lammps一对一入门与进阶课程
lammps科研合作、培训、咨询请加:
微信:lammps365
QQ群:236862503

lammps加油站
免费分享lammps教程和lammps案例代码,专属一对一lammps培训
 最新文章