【原创】lammps菜鸟经历
前言:菜鸟经历,欢迎见笑
一、系统
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 ]
返回小木虫查看更多
京公网安备 11010802022153号
支持原创
顶
我只修改了那个eam势生成程序的几个参数,按您说的,势函数形式不对,那结果肯定错了……这还是个大任务……
谢谢专家指点!否则我就一直错下去了
,
谢谢支持
many thanks
谢谢楼主
写得好!!!
谢谢支持