LAMMPS如何在windows编译步骤.doc_第1页
LAMMPS如何在windows编译步骤.doc_第2页
LAMMPS如何在windows编译步骤.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LAMMPS如何在windows编译步骤(翻译 整理 Lammps 上海大学上海市应用数学与力学研究所,版权所有,据最新版06年6月份的,原说明在SRC/MAKE/WINDOWS目录下)2004/11/20(该方法由Jin Ma(Okalahhoma State University )给出,联系Jin.M)编译环境为微软windows的VC+6.0,不带MPI(并行处理)和FFT算法。创建一个空的win32控制台工程(win32 console project),添加Src目录下所有的.h文件和.cpp文件到工程。1.变量的重定义问题代码中约有80处地方,变量出现重定义问题。大部分都出现在循环过程中,可以很容易修正。例如这样的循环: for (int i=0; i5; i+) something for (int i=0; i5 ;i+ something else 这种情况在Linux下的g编译环境中是允许的,但是在VC环境中会认为第二次循环时变量i被重定义,因此变量的范围是不同的。这在代码中有很多,因此在编译错误修正时只需要把定义整形变量i的定义放在语句中,而不是放在循环体中。2.fft问题在文件fft3d.h的开头增加#ifndef FFT_NONE#define FFT_NONE#endif取消FFT功能的编译,即不编译文件3. input文件的修改在input文件中修改下面的语句/#include unistd.h (注销)#include direct.h (增加)4. 处理MPI问题把文件mpi.h 和 mpi.cpp(在STUBS目录内)包括进工程中来,并且在mpi.cpp文件中注释掉语句/#include (和Linux系统下的取时间有关,windows不支持)同时注释调所有和时间有关的语句,即函数MPI_Wtime()中的原始代码,保持函数格式,让内容为空,并给予返回值为0(return 0;)5. 创建系统文件system.cpp的修改由于输入说明列表在linux和windows下的某些不同,在文件中system.cpp作如下修改行 83 : int iarg = 2; (修改,默认输入的问题)行 172 : inflag=1;(增加改行 不知道原因暂时)(原因:因为在dos行命令下运行程序时,给出的变量数目在G+环境和VC+环境中有所不同,也可能和MPI相关,这个不同只是其中之一,一旦上面说的修改成功,程序输入命令的个数才正确)之后2005年1月修改。4-a 输入文件问题(由Tim Lau补充, MIT, 在variable.cpp文件中进行修改头文件/#include unistd.h#include direct.h#include windows.h另外修改 usleep(100000)为 Sleep(100)修改说明:因为当Sleep发生在毫秒时而usleep发生在微妙,所以这个值被1000分开。(不明白何意思)7. 新版erfc错误新版本的LAMMPS程序会调用下列函数而报错double erfc(double),该函数属于GNU 的C库函数,在VC环境是不存在的。有三种修改方法: 一从其他的库中寻找到函数erfc() 二是因为该函数是被pair_modify 表选项调用的,我们可以在该函数的表选项中把值设为0,避免调用该函数 三是自己动手写该函数补充:在新版的目录下有这样的两个文件erfc.h, erfc.cpp已经被加入到工程中,只需要在所有使用到erfc()函数的文件头中增加调用命令#include erfc.h即可。注意这两个函数为经仔细测试,需谨慎使用。8. 重建工程,指定正确的输入文件运行程序,windows下的结果可能会和unix环境的结果有所不同,请注意。(Jin Ma Oklahoma State University March 7, 2005)最近增加:如果要增加MPI和FFT,则如下(由Timothy Lau 联系ttlMIT.EDU给出,相关步骤参考之前的说明如果你想使用FFT,先在载源码FFTW 2.1.5,然后解压(dump)全部的文件到和LAMMPS相同的目录下,然后包括所有FFTW的文件(.c文件和.h文件)到工程中,接下来修改上述第三个关于FFTW的问题。在文件fft3d.h中修改为#ifndef FFT_FFTW#define FFT_FFTW#endif你必须小心的检查visual stidoe 编译中关于 “WIN32”变量的定义,尽管visual studio可能会自动定义它,涉及到文件 fftw.h的行137处。如果你还要增加MPI功能,即在微软visual vistdo环境下的,多核处理器或者windows结点结构(cluster)并行机上运行程序。已经知道MPICH 2(至少是IA32版)在visual环境下可以和lammps编译成功。代替上述步骤中第5个问题的修改,用户可以增加MPICH2include目录(该目录在用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论