我做的是金属体系,我用的是LJ势函数,那么我在设置单位的时候,units应该设置为metal呢还是lj呢? 返回小木虫查看更多
单位统一就好了吧?
理论上哪个单位都行啊,反正是相互换算的关系。 具体对于你说的金属,lj, 用最common的 units metal就好啦~
你应该仔细阅读手册上的units章节,单位只是为了压缩数字存储的大小,不至于动不动-10次方-20次方几十位小数,在c++中会这用到长双精度类型甚至位数不够以至于运算容易出错。在我的印象中除了lj以外,就是metal和real单位最为实用,理论上,正如楼上所说的,只要单位统一,你可以用任何一种单位,但是做真实系统,转换成lj是很不方便的,常常用metal或者real。最重要的一点是,你用的势函数很有可能是带有单位的,你应该查看势函数每个参数的说明以及常用例子使用的单位,比如eam,可能有十几到二十多个参数,手册上会标明它们各自的默认单位,你如果对一个metal的势函数用了real单位,那里面的所有energy单位(因为metal和real最大的差别只是energy单位不同),软件是不会转换的,lammps会把一个kcal/mol的能量当成eV计算。所以在使用不同的单位之前,你要自己改势函数文件,把单位换算过来。不要问我怎么知道的 ,
单位统一就好了吧?
理论上哪个单位都行啊,反正是相互换算的关系。
具体对于你说的金属,lj, 用最common的 units metal就好啦~
你应该仔细阅读手册上的units章节,单位只是为了压缩数字存储的大小,不至于动不动-10次方-20次方几十位小数,在c++中会这用到长双精度类型甚至位数不够以至于运算容易出错。在我的印象中除了lj以外,就是metal和real单位最为实用,理论上,正如楼上所说的,只要单位统一,你可以用任何一种单位,但是做真实系统,转换成lj是很不方便的,常常用metal或者real。最重要的一点是,你用的势函数很有可能是带有单位的,你应该查看势函数每个参数的说明以及常用例子使用的单位,比如eam,可能有十几到二十多个参数,手册上会标明它们各自的默认单位,你如果对一个metal的势函数用了real单位,那里面的所有energy单位(因为metal和real最大的差别只是energy单位不同),软件是不会转换的,lammps会把一个kcal/mol的能量当成eV计算。所以在使用不同的单位之前,你要自己改势函数文件,把单位换算过来。不要问我怎么知道的
,