lammps教程:平均值输出fix ave/time命令详解

lammps模拟输出方式有很多,前面几篇文章也介绍过,对于模拟总体系的值一般使用thermo命令输出,而单个原子的变量值使用dump命令输出。
今天主要讨论一下体系量值的输出,使用thermo命令有两个缺点:
其一,默认情况下,thermo输出的结果存储在log.lammps文件中,在进行数据处理的时需在log.lammps中找到数据部分,复制粘贴到Origin进行绘图。
其二,对于一些波动比较大的值,thermo命令不能进行均值输出。比如摩擦力曲线,波动比较大,使用平均值输出能够得到更平滑的曲线。
1. fix ave/time语法
本文介绍另外一种数据输出命令:fix ave/time,可有效解决以上问题。
fix ave/time命令的功能是按照设定的步数对输出变量求平均值,并将平均值保存到设定文件中。
语法规则为:

fix ID group-ID ave/time Nevery Nrepeat Nfreq value1 value2 ... keyword args ...

这个命令的语法相对复杂,设置的参数也较多,本文只介绍一种用法。
2.fix ave/time使用方法
以输出摩擦过程中摩擦球的受力为例:

compute fx0 ball reduce sum fx
compute	fy0 ball reduce sum fy
compute	fz0 ball reduce sum fz
variable step0 equal step
fix 1 all ave/time 10 5 100 v_step0 c_fx0 c_fy0 c_fz0 file friction.txt

前三行分别计算xyz方向的力,第四行代码获取当前模拟步数。
fix命令中10 5 100的意思是每100步保存1次数据,保存的数据为v_step0 c_fx0 c_fy0 c_fz0变量的平均值。
file friction.txt值把数据保存到friction.txt文件中。
最难理解的可能就是10 5 100这三个数的设置。
10 5 100表示每100步计算或者保存1次数据(平均值),“10 5”参数表示以100步为基准向前每隔10步采1个样,共采5个样。
所以,计算第一个平均值采的样为:60、70、80、90、100,对这5步的受力值取平均即为friction.txt中的第一组数据。
同理,如手册中的例子为“2 6 100”,采样为:90,92,94,96,98,100。
学会了fix ave/time,曲线平滑就是如此简单!

更多lammps教程,请关注微信公众号:lammps加油站
在这里插入图片描述

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lammps加油站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值