当前位置: 首页 > 分子模拟 >【原创】lammps菜鸟经历

【原创】lammps菜鸟经历

作者 狼狼乾坤
来源: 小木虫 1100 22 举报帖子
+关注

前言:菜鸟经历,欢迎见笑
一、系统
Debian的新立得软件包经常出问题,dpkg包坏掉的解决办法:
su opt-get install  –f
还经常出的一个问题就是安装软件过程中提示某个地方少了个冒号,解决办法:gedit /var/lib/dpkg/status,这样就打开了这个文件,直接在其提示的地方把冒号删掉就正常了,对于我这样的电脑白痴来说,真是简易可行的好方法,百试不爽!
二、安装
基本按下面这个过程安装的,自己还修改了一些makefile,不是完全参照的。安装中提示很多文件不能识别,查的原因是缺少头文件,在fix_poems.cpp中添加#include<stdlib.h>,问题解决。({}内容转自网络)

{下载并解压缩源文件包以后,进入解压后路径下的src/目录,只要简单的“make debian”就可以得到可执行文件(lmp_debian)
得到lmp_debian之后,就可以运行那些例子了。但是你并没有得到lammps所支持的所有功能。lammps支持package,有系统自带的也有用户自行开发的。默认只编译"kspace", "manybody", 和"molecule"三个系统自带的包。其他还有一些“ asphere class2 colloid dipole dpd granular meam opt poems xtc”包没有编译进可执行程序,也就是说你不能使用那些额外功能。 如果需要全部编译。这可以通过先“make yes-all”然后“make clean”,"make debian"来完成。
稍微有一点麻烦的是,有两个包“meam”和“poems”是第三方开发的独立程序,源代码并没有在src目录下。你需要到../lib/中才可以看见它们的目录,需要分别编译。
先说poems,应该用用于刚体模拟的,进入lib/poems/后,直接“make Makefile.g++”
再说编译meam,这个meam是fortran写的,前面由于已经安装了gfortran,作者也给了Makefile.gfortran,所以只要“make Makefile.gfortran”即可得到libmeam.a了
到这里,我们准备好了所有的lammps附属包,可以重新编译最终的可执行文件了。为了能让编译器找到需要库和头文件,我们还需手工修改一下makefile。我这里就是修改src/MAKE/Makefile.debian。要改这三行:
CCFLAGS = -g -O -I/usr/lib/mpich/include/ -DFFT_FFTW -DLAMMPS_GZIP -I/lammps全路径/lib/poems/ -I/lammps全路径/lib/meam/
LINKFLAGS = -g -O -L/lammps全路径/lib/poems/ -L/lammps路径/lib/meam/
USRLIB = -lfftw -lmpich -lpoems -lmeam -lgfortran -lgfortranbegin
注意加粗的地方是要添加的。大致的意思就是告诉编译器哪里有额外的库文件,头文件。}


三、使用
1、in文件执行到创建原子之后就不运行了,出错提示:ERROR:interrupt  SIGSEGV
从网上查的说是内存的原因,还有说是并行环境的原因。但是之前的例子文件运行都没有问题。后来在分子模拟论坛上看到一个类似的情况,用的是amber,出现相同的错误提示,最后找出原因是键长超出范围。受此提示,我认为是自己建模不合理,修改了几次,还是不对。后来才意识到是eam势文件的问题,从网上下载的那个根本不是eam势文件。于是利用eam_generate中的程序自己生成势文件。
2、生成势文件中遇到的小问题:执行gcc  ~.c,出错,提示未定义pow.exp.log,但是我安装了math库的,重新安装了gcc也不行。后来从网上查到:执行gcc –lm ~.c,终于可以了。群里的专家给的解释:应该通知编译器,编译过程要用到那些库。
执行后生成一个a.out文件,双击之后生成需要的eam势文件。
3、继续运行in文件,出错提示:invalid mass value。原子的mass是在eam势文件中给出的,于是检查eam势文件,发现其与手册上给出的eam势文件的格式不一致,2、3行顺序颠倒了。于是修改了顺序。
4、继续运行又报错:ERROR:interrupt  SIGSEGV。继续检查eam势文件,3、4行中间多了个空行,删除了这个空行,问题解决。
5、在第25步时,报错:ERROR:interrupt  SIGSEGV,发现是温度异常。现在不晓得是eam势文件的问题还是in文件写的不对,未完待续……

结语:马上研三了才到这个程度,心急如焚~

6、使用lattice命令控制晶格方向,注意要符合右手规则
7、在第一次使用region命令之前需要指定lattice,注意第一个lattice与创建原子时第一个lattice方向的一致性,否则模型异常
8、构建界面结构时,会有一层重叠的原子,此时的计算结果中会出现nan项,计算终止。因此在构建界面时,应该删除界面上的重叠原子,命令是delete_atoms overlap 0.1 group1 group2

[ Last edited by lei0736 on 2009-11-25 at 13:22 ] 返回小木虫查看更多

今日热帖
  • 精华评论
  • lei0736

    还在做氢脆的问题吗
    H跟金属的势比较难找吧 BASKES曾经调过一个
    氢脆中科院金属所有人做过 比较早了 国外也有一些

  • 狼狼乾坤

    引用回帖:
    Originally posted by lei0736 at 2009-7-3 21:11:
    还在做氢脆的问题吗
    H跟金属的势比较难找吧 BASKES曾经调过一个
    氢脆中科院金属所有人做过 比较早了 国外也有一些

    恩呢,还是做氢脆,别的方面实在没什么想法,只能继续这个老课题

  • lei0736

    很有挑战性 BASKES在材料学报上有两篇做He脆的吧
    金属所李依依院士早期也做过一点
    有个中国人现在日本 也还在做 名字一下忘了

  • 狼狼乾坤

    引用回帖:
    Originally posted by lei0736 at 2009-7-3 22:29:
    很有挑战性 BASKES在材料学报上有两篇做He脆的吧
    金属所李依依院士早期也做过一点
    有个中国人现在日本 也还在做 名字一下忘了

    李依依?以前没关注过,惭愧~
    谢谢指点

  • 老虎大王

    lammps不是自带一个Ni Al H的势吗?
    那个EAM-generate程序只解决Zhou等人的势,还有一个Mishin的势。其他人的势,参数和势函数形式都不一样,要重新写。只有程序中的输出格式,即主程序可以参考,但也只是对于单原子系统。


    Md的初始构型也是比较重要的,搞不好会不收敛。

  • 狼狼乾坤

    引用回帖:
    Originally posted by 老虎大王 at 2009-7-4 17:23:
    lammps不是自带一个Ni Al H的势吗?
    那个EAM-generate程序只解决Zhou等人的势,还有一个Mishin的势。其他人的势,参数和势函数形式都不一样,要重新写。只有程序中的输出格式,即主程序可以参考,但也只是对于单 ...

    谢谢专家指点~
    路漫漫其修远兮……不行就放弃

  • 老虎大王

    你走到了第二十五步,说明势函数文件的格式是对的。
    至于势函数文件中内容对不对,你可以先用规则晶体结构做初始构型,再看输出文件(即log.lammps)中的总势能,它除以原子数,应该和你查到的做势函数的文献中的Ec相一致。

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓