欢迎来到天天文库
浏览记录
ID:10547582
大小:39.50 KB
页数:3页
时间:2018-07-07
《lammps如何在windows编译步骤》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、LAMMPS如何在windows编译步骤(翻译整理Lammps上海大学上海市应用数学与力学研究所,版权所有,据最新版06年6月份的,原说明在SRC/MAKE/WINDOWS目录下)2004/11/20(该方法由JinMa(OkalahhomaStateUniversity)给出,联系Jin.Ma@okstate.edu)编译环境为微软windows的VC++6.0,不带MPI(并行处理)和FFT算法。创建一个空的win32控制台工程(win32consoleproject),添加Src目录下所有的.h文件和.cpp文件到工程。1.变量的重定义问题代码中约有8
2、0处地方,变量出现重定义问题。大部分都出现在循环过程中,可以很容易修正。例如这样的循环:for(inti=0;i<5;i++){something}for(inti=0;i<5;i++{somethingelse}这种情况在Linux下的g++编译环境中是允许的,但是在VC环境中会认为第二次循环时变量i被重定义,因此变量的范围是不同的。这在代码中有很多,因此在编译错误修正时只需要把定义整形变量i的定义放在语句中,而不是放在循环体中。2.fft问题在文件fft3d.h的开头增加#ifndefFFT_NONE#defineFFT_NONE#endif取消FFT功
3、能的编译,即不编译文件3.input文件的修改在input文件中修改下面的语句//#include"unistd.h"(注销)#include"direct.h"(增加)4.处理MPI问题把文件mpi.h和mpi.cpp(在STUBS目录内)包括进工程中来,并且在mpi.cpp文件中注释掉语句//#include(和Linux系统下的取时间有关,windows不支持)同时注释调所有和时间有关的语句,即函数MPI_Wtime()中的原始代码,保持函数格式,让内容为空,并给予返回值为0(return0;)5.创建系统文件system.cp
4、p的修改由于输入说明列表在linux和windows下的某些不同,在文件中system.cpp作如下修改行83:intiarg=2;(修改,默认输入的问题)行172:inflag=1;(增加改行不知道原因暂时)(原因:因为在dos行命令下运行程序时,给出的变量数目在G++环境和VC++环境中有所不同,也可能和MPI相关,这个不同只是其中之一,一旦上面说的修改成功,程序输入命令的个数才正确)之后2005年1月修改。4-a.输入文件问题(由TimLau补充,MIT,ttl@mit.edu在variable.cpp文件中进行修改头文件//#include"unis
5、td.h"#include"direct.h"#include"windows.h"另外修改usleep(100000)为Sleep(100)修改说明:因为当Sleep发生在毫秒时而usleep发生在微妙,所以这个值被1000分开。(不明白何意思)7.新版erfc错误新版本的LAMMPS程序会调用下列函数而报错doubleerfc(double),该函数属于GNU的C库函数,在VC环境是不存在的。有三种修改方法:一从其他的库中寻找到函数erfc()二是因为该函数是被pair_modify表选项调用的,我们可以在该函数的表选项中把值设为0,避免调用该函数三是自
6、己动手写该函数补充:在新版的目录下有这样的两个文件erfc.h,erfc.cpp已经被加入到工程中,只需要在所有使用到erfc()函数的文件头中增加调用命令#include"erfc.h"即可。注意这两个函数为经仔细测试,需谨慎使用。8.重建工程,指定正确的输入文件运行程序,windows下的结果可能会和unix环境的结果有所不同,请注意。(JinMajin.ma@okstate.eduOklahomaStateUniversityMarch7,2005)最近增加:如果要增加MPI和FFT,则如下(由TimothyLau联系ttl@MIT.EDU给出,相关步
7、骤参考之前的说明如果你想使用FFT,先在载源码FFTW2.1.5,然后解压(dump)全部的文件到和LAMMPS相同的目录下,然后包括所有FFTW的文件(.c文件和.h文件)到工程中,接下来修改上述第三个关于FFTW的问题。在文件fft3d.h中修改为#ifndefFFT_FFTW#defineFFT_FFTW#endif你必须小心的检查visualstidoe编译中关于“WIN32”变量的定义,尽管visualstudio可能会自动定义它,涉及到文件fftw.h的行137处。如果你还要增加MPI功能,即在微软visualvistdo环境下的,多核处理器或者
8、windows结点结构(cluster)并行机上运行
此文档下载收益归作者所有