回 帖 发 新 帖 刷新版面

主题:有没有中文版的安装arpack的过程?

[em14][em14][em14]英文的有点模糊,我用的是windows xp系统,装的ivf是studio2008+[编译器与函数库].TLF-SOFT-Intel.Visual.Fortran.Composer.XE.2011.5.221,很兴奋啊。现在就缺个arpack啦,有没有中文安装过程的啊?谁有安装过得能否指点下呢?

回复列表 (共5个回复)

沙发


自己分解下请高手指点下吧。
1. ARPACK 
1.1  Download the ARPACK source files
http://www.caam.rice.edu/software/ARPACK
首先下载,先到ARPACK的官方网站去下载程序包,我选择下载了 arpack96.tar.gz 和补丁 patch.tar.gz。
1.2  Compile ARPACK lib 
ARPACK has a" makefile" in it. However, it doesn't work for Windows System. So, Microsoft Visual Studio with Intel Fortran is used to create a static library under Windows System. 
arpack有个‘makefile’的文件在里面。然而,它对windows系统并不支持。所以,装好Microsoft Visual Studio 和Intel Fortran 以后要在windows系统下创建一个静态文库。
Step 1, open a new static library project.
Open>New>Project>Intel Fortran>Library>Static Library, name it, select OK.
第一步,打开一个新的静态文库项目。应该是创建新静态文库,我选的是:文件--新建--项目--Intel Fortran>Library>Static Library,我命名为libarpack.

Step 2, add all of the source files into the project.
Project>Add Existing Item, select all source, and add them in the project.
第二步:把所有的源文件都加到这个项目里。
项目---添加已存在项目,选择所有的项目,把他们添加到这个项目里。我的已存在项目不多,因为是刚装上的ivf,只有consle2和consle3两个项目,我把他们统统添加到libarpack下的source file里。
 问:这样添加项目对吗?不是添加arpack里带的项目吧?但是那里面好像没有项目啊

Step 3, compile and create ARPACK lib.
In debug mode, there may be something wrong with the interface of one subroutine. In this case, you should turn off the compiler diagnostics to the interface block. 
第三步:编译和创建ARPACK lib。
在调试方式下,某个子程序的接口可能会有错误。在这种情况下,你应该关掉编辑程序的诊断程序,转到接口块。
果然出错了: Visual studio cannot debug because a debug target has not been specified.!!!!!!


Project>Properties>Fortran> Diagnostics>Generate interface block, select no. It will be OK. 
然后根据他说的,打开项目--属性--fortran--Diagnostics!!奇怪,没找到Generate interface block这一项啊!!只看到一项:check routine interfaces!!是这项吗?

Please note: a lib compiled by one complier cannot be used in another compiler. For instance, a lib compiled by Compaq Fortran cannot be used in Intel Fortran compiler.
[em14]
请注意:由一个编辑器编辑的lib不能用在其他编辑系统。比如,Compaq Fortran 编辑的Lib不能用在Intel Fortran compiler下。

板凳


1.3  Use ARPACK lib
After compiling the lib, it's time to use it in a project. It's very easy. For example, if the lib is named "arpack.lib", put it in the project directory, and use the  following codes,     !dec$objcomment lib:'arpack.lib' 
1.3应用arpack。lib
编译好Lib以后,该在项目中用它了。很简单!(好像不简单啊!老兄)例如,如果把这个lib命名为"arpack.lib", 把它放在项目目录下,用下面的代码:!dec$objcomment 
lib:'arpack.lib' 


1.4  ARPACK subroutine DSAUPD
This subroutine can be used to solve a standard or a generalized eigenvalue problem. There are several modes which can be used to solve different problems. For instance, mode 3 is for the problem of K*x=lambda*M*x, in which K is symmetric and M is symmetric positive semi-definite. During the iterations, you need to provide a solver and a matrix and vector product subroutine. Several examples which can illustrate how this subroutine works can be found in the examples directory. For example, dsdrv4.f is an example to illustrate the idea of reverse communication in shift and invert mode for a generalized symmetric eigenvalue problem.
Please see the detail of this subroutine in arpack's guid.pdf.

这个子程序可以用来求解标准的或者一般的本征值问题。有几个不同的方法来求解不同的问题。例如,模式3用来解决形如K*x=lambda*M*x的问题,K,M是什么我也不知道!![em8][em8][em8][em8]。在迭代过程中,你需要提供一个求解程序,一个矩阵和一个矢积子程序。在例子目录下可以找到这项子程序是如何应用的程序。例如,dsdrv4.f是一个例子......术语有点专业了[em6][em6][em6][em6]。
请在arpack's guid.pdf里详细了解这个子程序的用法。


3 楼


2. MKL SPARSE SOLVER 
In ARPACK iteration, linear equation need to be solved again and again. So the solver is very important to computational efficiency of ARPACK. MKL is an excellent choice, especially the sparse solver in MKL. Please see the MKL help documents, mklman.pdf and userguide.pdf.
mkl稀疏矩阵求解程序
在arpack迭代里,要不停地解线性方程,所以arpack的计算效率对求解程序来说显得尤为重要。mkl无疑是一个很好的选择,尤其是在mkl下解决稀疏矩阵。请参看mkl帮助文档mklman.pdf and userguide.pdf.


2.1  Configuring the Microsoft Visual C/C++* Development System to Link with Intel MKL
配置Microsoft Visual C/C++* 开发系统用来连接intel mkl

1. Select View > Solution Explorer (and make sure this window is active).
2. Select Tools > Options > Projects > VC++ Directories > Show directories for:> Include Files. Add the directory for the Intel MKL include files, that is, <mkl directory>\include".
C:\Program Files (x86)\Intel\Compiler\11.0\061\fortran\mkl\include
3. Select Tools > Options > Projects > VC++ Directories > Show directories for:
> Library Files. Add the directory for the Intel MKL library files, for example, "<mkl directory>\ia32\lib".
C:\Program Files (x86)\Intel\Compiler\11.0\061\fortran\mkl\ia32\lib
4. Select Tools > Options > Projects > VC++ Directories > Show directories for:
> Executable Files. Add the directory for the Intel MKL executable files, for example,
"<mkl directory>\ia32\bin".
C:\Program Files (x86)\Intel\Compiler\11.0\061\fortran\mkl\ia32\bin
5. Select Project > Properties > Configuration Properties > Linker > Input >
Additional Dependencies. Add the libraries you require (for example, mkl_c.lib).
To learn how to choose the libraries, see Selecting Libraries to Link in chapter 5.
以上是操作过程。

4 楼

Project>Properties>Fortran> Diagnostics>Generate interface block, select no. It will be OK. 
然后根据他说的,打开项目--属性--fortran--Diagnostics!!奇怪,没找到Generate interface block这一项啊!!只看到一项:check routine interfaces!!是这项吗?

在这里出错了,我一直没找到Generate interface block。。再搜下,希望有些新发现。我会一直按照这个程序装下去,直到装好为止!![em19][em19][em19][em19][em10][em10][em10][em7][em7][em7]

5 楼


http://sourceforge.net/projects/fan21/files/
参考上面程序的代码,应该就行了

我来回复

您尚未登录,请登录后再回复。点此登录或注册