lammps学习总结3

  • 1、质子交换膜 当量质量(equivalent weight)如何理解?
  • 2、MS中AC模块number of configuration 是什么意思?
  • 3、LAMMPS命令pair_style table
  • 4、lammps中几何平均混合规则和算数平均计算规则
  • 5、LJ势函数的两种形式以及非标准形式向标准形式推导
  • 6、错误:ERROR on proc 20: Neighbor list overflow, boost neigh_modify one (../npair_half_bin_newton.cpp:157)
  • 7、计算区域温度时要去除质心温度,否则会导致计算的温度偏高
  • 8、compute pe/atom 与variable equal连用时出现错误Per-atom compute in equal-style variable formula
  • 9、输出单原子能量时,出现错误Thermo compute does not compute scalar或者Thermo compute does not compute vector
  • 10、MS中快捷给原子赋予力场


1、质子交换膜 当量质量(equivalent weight)如何理解?

答:用来表征全氟磺酸数值的酸浓度,其数值等于含1mol质子的干态膜质量,单位为g/mol。与IEC(离子交换容量)互为倒数。
随着EW值的升高,单位质子内的质子传输位点数下降,膜的结晶度和刚性都会增加,而膜的细水能力下降,导致离子团簇的间距增加,最终导致质子传输能力的下降。

2、MS中AC模块number of configuration 是什么意思?

回答:就是建立出来的模型数,AC混合建立起好几个模型,可以自己选择一个模型使用。

lammps的timestep_几何平均

3、LAMMPS命令pair_style table

我们在用LAMMPS做分子动力学模拟时,有时会遇到文献中只给出了相关化合物的势函数表达势,而我们却找不到势函数文件的情况。这时我们可以根据官网势函数类型pair_style中的table类型的提示,自己制作势函数table,让LAMMPS读进去就可以了。

lammps的timestep_lammps的timestep_02

4、lammps中几何平均混合规则和算数平均计算规则

命令pair_modify mix geometric

pair_modify mix arithmetic

注意:lammps中LJ用的参数是ε和σ,因此混合规则应该用算数平均。

lammps的timestep_lammps的timestep_03


lammps的timestep_ci_04

5、LJ势函数的两种形式以及非标准形式向标准形式推导

LJ12-6有两种表达方式,其实是一样的,具体可参考下图,lammps中的LJ12-6是红框中的形式,有时候我们要用到吸引项加Beta的LJ,需要转为标准形式。

2^1/6=1.1224620

lammps的timestep_scala_05

6、错误:ERROR on proc 20: Neighbor list overflow, boost neigh_modify one (…/npair_half_bin_newton.cpp:157)

出现这个错误的直接原因是体系中某些原子的近邻数超过了2000个(除非你使用neigh_modify命令增加了允许的近邻数),而导致这个错误的可能因素有:
1)初始结构有问题,比如原子分布过于密集。这种情况在一开始就会出错。
2)截断半径设置的太大了,比如大于10A。可以通过命令neighbor,减小截断半径来解决。
3)势参数设置有问题,这种情况一般是在运行一些步后才会出错。

我的case是一开始运行就出现了此错误,且截断半径和力场在别的case都验证过,因此解决方法是使用neighbor_modify one 5000 命令将最大近邻数改为5000即可。

7、计算区域温度时要去除质心温度,否则会导致计算的温度偏高

计算相对动能,就是总动能减去质心动能,之后根据相对动能计算温度。

lammps的timestep_lammps的timestep_06

8、compute pe/atom 与variable equal连用时出现错误Per-atom compute in equal-style variable formula

lammps的timestep_lammps的timestep_07

9、输出单原子能量时,出现错误Thermo compute does not compute scalar或者Thermo compute does not compute vector

在计算原子的动能后,直接使用thermo_style custom step temp press pe etotal c_peK命令输出compute的命令,但是先报错第一个,然后我改为c_peK[*]后又报错第二个。仔细阅读手册后发现有说明:对于per-atom数据可以通过dump命令输出,可以使用fix ave/atom 进行时间平均,可以使用compute reduce命令来将一个或多个向量的输入“减少”为标量值,每个列出的输入一个。

在看过这个命令后,根据需要我们需要在这里加上compute reduce sum命令,但这计算出来的就是将原子能量相加了,使用variable equal count函数,计算一下原子数,然后除一下原子数即可

lammps的timestep_lammps的timestep_08

10、MS中快捷给原子赋予力场

之前在MS中建模并导出data时,为了导出时给原子赋予力场,我一般会给个力场再直接跑个几何优化,但是有时候体系很大或者我们本来就仅需要晶胞结构时,这个过程就显得很繁琐且浪费时间。

以SiO2为例,便捷操作过程为:edit→atom selection→按照元素选中原子→forcite calculation→力场设置选择compass或者其他→more中取消aclculate automatically和list all forcefield types→选择一个点击assign。其他的元素同样方法赋予力场,之后即可导出car文件进行转换了。

lammps的timestep_lammps_09


lammps的timestep_几何平均_10