24小时热门版块排行榜    

查看: 6070  |  回复: 22
【奖励】 本帖被评价10次,作者lmylmy增加金币 8
本帖产生 1 个 模拟EPI ,点击这里进行查看

lmylmy

木虫 (小有名气)


[资源] Windows下编译安装MuSic code

最近学习了版主ghcacj关于Music的帖子,受益良多,终于成功的在Linux下重复了Tina主页提供的IRMOF1吸附甲烷的例子,在此对版主ghcacj的无私奉献表示感谢。

安装过程中发现,最新的Intel Fortran XE用了编译Music是有点问题的,不可避免的出现了“段错误”,所以不推荐使用,我最终是用来11.0的版本才解决了“段错误”的问题。

我最初曾经尝试过在windows下编译安装Music code,那时候经验不多,后来放弃了。但是经过此次在linux下的安装经验,终于解决了原先的一些问题。现在可以正常的在Windows7操作系统下编译运行Music了,也成功的重复了IRMOF1吸附甲烷的例子。

现将在windows下安装的一些经验分享给大家,这也是对版主ghcacj帖子的一个小小补充。这对于一些不熟悉linux的网友还是有可取之处的。Music中的每个文件的具体内容和含义,请参见版主ghcacj的帖子,这里只描述具体的安装编译过程。

1. 所需程序
(1)Visual Studio 2008: 只需要安装其中的C++组件即可(如果你不需要其他的应用,完全安装需要很大的磁盘空间)。VS2008可以用学校的邮箱在微软网页上申请到免费的版本,目前应该是VS2010了,具体的可以在网上查找一下;
(2)Intel Visual FORTRAN Complier 11.0.072:最新的XE版有点小问题,会出现段错误,不建议使用。11.0这个版本网上也很容易找到;
(3)Windows下的perl:strawberry-perl-5.12.3.0,用来运行makemake,生产编译用的makefile文件。可以从其官方网页下载,是免费的 (http://strawberryperl.com/ );
(4)Windows下的Make:GNUwin32 Make-3.81,用了执行makefile文件,可以从其官方网页下载,也是免费的  (http://gnuwin32.sourceforge.net/packages.html )。
GNUMake和perl都是很小的软件,安装之后,可以在系统环境变量中path中添加C:\strawberry\perl\bin;C:\Program Files\GnuWin32\bin这两条路径,注意用分号与原先的项隔开,这样可以避免运行的时候输入完整的路径。这里给的路径是默认安装的路径,如果选择了其他路径,要做相应的修改。

2. 编译  (编译过程和版主ghcacj介绍的在linux下的方法类似,只是稍有不同。)
(1)MuSic源代码的获取:直接从Snurr Research Group的主页下载,下载之前先需要先给Snurr教授发封邮件。http://zeolites.cqe.northwestern.edu/software.php
(2)将MuSic源代码解压到D:\music目录下,(或者你喜欢的工作目录),解压之后其中应该包含[ctrlfiles], [drivers], [src], [tests]和[utils] 5个目录以及GPL和license 2个文件;
(3)编辑makemake文件
     首先需要修改 [scr]目录中的makemake文件,修改项如下(假设你用的是UltraEdit编辑器,可以显示行号,此处的行号指的是修改之前的行号):
   第120行: FC = defaultCompiler  >>>   FC = ifort                  (! 设定ifort为默认编译器)
   第149行:F90FLAGS = -g -debug all -check all # -O3 # -DSPME # untested options   >>>  
                  F90FLAGS = /heap-arrays:64 /fpp /fpe:3 /fast /debug:full /check:noarg_temp_created /O3 # -DSPME # untested options   
   第150行:F77FLAGS =  # -O3   >>>     F77FLAGS = /heap-arrays:64 /fpp /fpe:3 /fast /debug:full /check:noarg_temp_created /O3     (!添加适当的编译选项)
   第209行:%.o : %.F90    >>>   %.obj : %.F90       (!windows下编译过程中的目标文件为*.obj,linux下的为*.o)
   第211行:%.o : %.F      >>>   %.obj : %.F
   第221行:$objectfile =~ s/(.*?\.)F90/$1o/i;    >>>     $objectfile =~ s/(.*?\.)F90/$1obj/i;
   第222行:$objectfile =~ s/(.*?\.)F/$1o/;       >>>     $objectfile =~ s/(.*?\.)F/$1obj/;
   第235行:$(FC) $(DEBUG_FLAGS) $(OFLAGS) $(LINKERFLAGS) $(OBJECTS)  -o ../$(CMD)    >>>
                  $(FC) $(DEBUG_FLAGS) $(OFLAGS) $(LINKERFLAGS) $(OBJECTS)  /o ../$(CMD)
   第238行:$(FC) $(DEBUG_FLAGS) $(OFLAGS) $(OBJECTS) -o ../$(CMD)         >>>
                  $(FC) $(DEBUG_FLAGS) $(OFLAGS) $(OBJECTS) /o ../$(CMD)
   第241行:/bin/rm -f *.o *.i *.il *.mod a.out make.log    >>>    /bin/rm -f *.obj *.i *.il *.mod a.out make.log
   第244行:rm -f *.o *.i           >>>      rm -f *.obj *.i
   第266行:$objfile    = $rootname.".o";   >>>  $objfile    = $rootname.".obj";
   第270行:print OUTFILE (" $$sortedfiles[$f]{modarray}[$i].o";   >>>
                  print OUTFILE (" $$sortedfiles[$f]{modarray}[$i].obj";   
   另外从第157至199行的内容可以删除,对我们没什么用处,保留也可以,没有影响。
(4)编译  (编译了tinu网页上给出的5个代码:music_mapmaker.F90, music_mapdisplay.F90, music_md.F90, music_gcmc.F90, music_post.F90)
     以music_mapmaker.F90为例:
     从[drivers]中将music_mapmaker.F90复制到[src]中,将文件名改为music.F90,网页上说明F必须大写,这可能与linux下实施区分字母大小有关。
     从开始--程序--intel fortran的目录中进入带fortran编译环境的命令提示符窗口(cmd窗口),我用的是IA-32模式。
     在此cmd窗口中进入工作目录,比如 d:\music\src
     输入 perl makemake   回车 (!生产一个新的makefile文件)
     输入 make 回车,编译开始
     编译结束后在music目录中会生成一个post.exe文件,将其重新命名为mapmaker.exe。至此,完成一个完整的编译过程。
     将[src]目录中的music.F90以及编译过程中生存*.obj *.mod文件全部删除,按照以上的步骤编译下一个代码。
     最终得到mapmaker.exe,mapdisplay.exe,md.exe,gcmc.exe和post.exe 这5个可执行文件。

3. 运行
   首先从tinu的主页上下载IRMOF1吸附CH4的例子
   Pmap make : http://www.see.ed.ac.uk/~tduren/ ... orial/make_pmap.tar
   gcmc     : http://www.see.ed.ac.uk/~tduren/research/music/Tutorial/gcmc.tar
   
(1)将make_pmap.tar解压到 d:\make_pmap, 在其中发现4个文件夹[atoms], [molecules], [pmaps]和 [run],
   新开一个cmd窗口,进入 d:\make_pmap\run
   设置环境变量 windows下与linux少有不同,就是将set_path中的内容稍加修改:

   set ATOMSDIR=d:\make_pmap\atoms   回车
   set MOLSDIR=d:\make_pmap\molecules 回车
   set PMAPDIR=d:\make_pmap\pmaps  回车
   
   如果不想逐条输入,也可以建一个*.bat的批处理文件将上面的内容写进去,然后执行。

   环境变量设定好之后,就可以开始运行,生产Pmap文件,将mapmaker.exe复制到[run],然后在cmd中执行:
   mapmaker.exe ctr.map.IRMOF1.CH4 > pmap.log                (!> pmap.log 会生成一个记录文件,其中包含了一些有用的信息,不加也行,建议加上)
   运行结束后会生成IRMOF1.CH4.UFF.pmap文件,~50M,备用。
   
(2)将gcmc.tar解压到 d:\gcmc, 其中也包含4个文件夹[atoms], [molecules], [pmaps]和 [run],
     将先前得到的IRMOF1.CH4.UFF.pmap文件复制到 [pmaps]中,将gcmc.exe和post.exe复制到[run]中。

   新开一个cmd窗口,进入 d:\gcmc\run
   设置环境变量:
   set ATOMSDIR=d:\gcmc\atoms   回车
   set MOLSDIR=d:\gcmc\molecules 回车
   set PMAPDIR=d:\gcmc\pmaps  回车   

   然后执行gcmc.exe gcmc.Methane.IRMOF1 > gcmc.log
   运行结束后,生产各15个*.res和*.con文件。
(3)继续进行post得到isotherm数据
    d:\gcmc\run 中的post.ctr文件有个小错误,要修改一下
    第8行:IRMOF.Methane.con         # basename for config files       >>>
               IRMOF1.Methane.con         # basename for config files   
    继续在先前的cmd窗口中执行(若新开cmd窗口,要再次设定环境变量)
    post.exe post.ctr > post.log
   
    运行结束后会得到isotherm.Methane文件,其中包含了isotherm的信息。
   
    至此全部运行结束,至于将吸附数值由total转换成excess,可以在excel中完成,可参见版主ghcacj的相关帖子。
**************************   
欢迎讨论!

[ Last edited by lmylmy on 2011-7-14 at 01:25 ]
回复此楼

» 收录本帖的淘帖专辑推荐

材料计算模拟实用技巧 多孔材料 有机场效应晶体管及有机太阳能电池 MS & VASP
condensed matter physics 感兴趣的问题 xp经典收藏

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

★★★★★ 五星级,优秀推荐

顶一下,LZ的探索精神值得敬佩啊。
最新的ifort XE版是不行,编译后的执行文件会出现段错误,这个我也发现了,比如gcmc.exe在计算等温线时会报错,而且无法解决该问题,但是一旦换回11或者10的ifort就OK了。
2楼2011-07-14 10:04:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lmylmy

木虫 (小有名气)


★ ★ ★
zh1987hs(金币+3): 谢谢 2011-07-21 07:32:15
还有个意外的发现,gcmc在windows下居然跑的比在Linux下快,真是出乎意料!

用IRMOF1吸附甲烷的例子做了对照,结果如下:

运行时间           Windows7               ubuntu11.04
mapmaker        1.7368 min              6.9479 min  
gcmc                6.7658 min             18.430 min
3楼2011-07-14 11:25:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
引用回帖:
Originally posted by lmylmy at 2011-07-14 11:25:58:
还有个意外的发现,gcmc在windows下居然跑的比在Linux下快,真是出乎意料!

用IRMOF1吸附甲烷的例子做了对照,结果如下:

运行时间           Windows7               ubuntu11.04
mapmaker        1.7368 ...

还真是出人意料啊,有没有试过更大点的计算,比如CO2?
4楼2011-07-14 11:50:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lmylmy

木虫 (小有名气)


★ ★ ★
zh1987hs(金币+3): 谢谢 2011-07-21 07:32:22
用版主ghcacj 提供的MFI吸附CO2例子,对在win下和linux下的计算时间做了进一步比较
比较的结果:
系统(原生):   Windows7 SP1               Ubuntu 11.04
         CPU:   AMD Athlon 64 X2 5000+ 2.6 GHz
  计算体系:   MFICO2
         时间:   2.5 h                              7.5 h

好像还是Win下快些,个人猜测win下的intel fortran对代码进行了优化,linux下的免费版可能没做优化。
5楼2011-07-20 22:12:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
这个已经不是快一些了,快了好多啊,Linux这次悲摧了。
不过为了Linux下使用的其他程序,只好将就了。
6楼2011-07-21 08:46:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

youzhizhe

荣誉版主 (职业作家)


帖子真精彩!
已经收录到淘贴专辑《材料计算模拟实用技巧
8楼2011-09-01 15:18:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

honglyn

木虫 (正式写手)


★★★★★ 五星级,优秀推荐

分享,学习
10楼2012-04-27 17:46:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

singlefly

新虫 (小有名气)


★★★★★ 五星级,优秀推荐

生成的ctr.map.IRMOF1.CH4.UFF.pmap文件大小为0,请问是什么原因?运行过程中没有提示错误。
--------------------------------------
环境变量设定好之后,就可以开始运行,生产Pmap文件,将mapmaker.exe复制到[run],然后在cmd中执行:
   mapmaker.exe ctr.map.IRMOF1.CH4 > pmap.log                (!> pmap.log 会生成一个记录文件,其中包含了一些有用的信息,不加也行,建议加上)
   运行结束后会生成IRMOF1.CH4.UFF.pmap文件,~50M,备用。

--------------------------------
11楼2012-06-12 01:15:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hjlyyc

木虫 (知名作家)


★★★★★ 五星级,优秀推荐

多谢楼主分享!
刚试了一下,最新的2013 XE是可以编译的,但奇怪的是,我在编译mapdisplay的时候出现错误,不知何故啊,其他四个程序都是好的。
出现这样的错误;
ipo: error #11023: Not all components required for linking are present on command line

Untitled.jpg

[ Last edited by hjlyyc on 2013-2-21 at 07:01 ]
12楼2013-02-21 02:58:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hjlyyc

木虫 (知名作家)


奇怪的是,今天编译有成功啦,试试计算再说啦,多谢!
可惜进行gcmc时出现错误,
Beginning GCMC simulation number 1 of 15   (1000000 steps)

进行了两个Simulation Number,就不行啦,不知为什么

[ Last edited by hjlyyc on 2013-2-21 at 22:13 ]
13楼2013-02-21 20:20:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liuxinhitny

木虫 (小有名气)


★★★★★ 五星级,优秀推荐

顶一下 在WIN下确实方便多了 MS什么的 装的都是WIN版 感谢分享 谢谢老师
14楼2013-05-05 15:27:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

visualization

金虫 (小有名气)


★★★★★ 五星级,优秀推荐

请问楼主,编译出的exe文件,怎样做才能放到另一台电脑上也能使用
15楼2013-06-05 18:18:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lmylmy

木虫 (小有名气)


主要和CPU和操作系统的位数(32 or 64)有关。一般配置低的电脑上编译出的exe,拿到配置高的电脑上是可以用的,但是这个需要自己试一下。
16楼2013-06-06 08:43:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

king1986kong

新虫 (初入文坛)


17楼2013-07-29 17:35:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

engcorp

银虫 (初入文坛)


按照lmylmy的说明,在win8 x64环境下安装了MS Visual Studio 2008、Intel Visual Fortran 11.1.038、perl和GnuWin32 make,之后修改src目录下makemake文件,将drivers目录中的music_mapmaker.F90重命名为music.F90并将其剪切到src目录,在ifort IA-32终端输入perl makemake和make后,出现如图错误。
打算在CentOS 6.5条件下再试一试,准备下载Intel Fortran Composer XE 2013 sp1 for Linux。
Windows下编译安装MuSic code
ifort_error.JPG

18楼2014-05-22 09:51:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

engcorp

银虫 (初入文坛)


将昨晚遇到的问题发贴求助后,刚刚又重新运行了一遍,担心贴中所述有误,结果发现运行通过,太好了。
在想,是不是昨晚安装那么多程序后,没有重启电脑。
继续学习lmylmy和ghcacj的贴子,随时汇报学习进展。
Windows下编译安装MuSic code-1
ifort_pass.jpg

19楼2014-05-22 09:59:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

engcorp

银虫 (初入文坛)


在编译music_mapmaker.F90、music_mapdisplay.F90、music_md.F90、music_gcmc.F90和music_post.F90的过程中,除了music_gcmc.F90之外,其余的都成功地生成了对应的.exe文件。
Windows下编译安装MuSic code-2
make music_gcmc.F90.jpg

20楼2014-05-22 10:58:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bjdl

新虫 (初入文坛)


引用回帖:
20楼: Originally posted by engcorp at 2014-05-22 10:58:55
在编译music_mapmaker.F90、music_mapdisplay.F90、music_md.F90、music_gcmc.F90和music_post.F90的过程中,除了music_gcmc.F90之外,其余的都成功地生成了对应的.exe文件。

make music_gcmc.F90.jpg
...

问题解决了吗,是什么问题啊
21楼2015-04-05 00:30:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunny11223

铁杆木虫 (著名写手)


★★★★★ 五星级,优秀推荐

LZ能不能把最后模拟的这个例子发我一下,prof. Duren的网页链接有变化,没有下载到这个例子。谢谢前辈了。
22楼2015-07-03 21:59:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhixiaol

铁虫 (小有名气)


★★★★★ 五星级,优秀推荐

请问在编译过程中出现如下错误该怎么解决呢?还有我电脑是win7系统 64 位,但用的是32位的perl, 因为看到GNUMake是win32,所以perl也选了32位的,应该不会出问题吧?谢谢~
Windows下编译安装MuSic code-3
QQ截图20151202001037.png

23楼2015-12-02 00:14:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
xiaowu7597楼
2011-07-21 15:57   回复  
五星好评  谢谢分享
niliu9楼
2011-12-04 22:36   回复  
五星好评   感谢分享!!
相关版块跳转 我要订阅楼主 lmylmy 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见