[转载]安装 deal.II 7.1.0 心得
(2013-11-19 16:07:45)
标签:
转载 |
原文地址:安装 deal.II 7.1.0 心得 作者:Myth郎君
最近需要用deal.II 写有限元程序,就沿着 deal.II 的 tutorial
学习上面的例子。例子有很多,覆盖有限元计算的各个方面,包括网格,有限元选择,解法器当然还有最重要的一块是并行程序。deal.II的并行是对PETSc进行的包装,而PETSc是使用的MPI或者OpenMP并行环境。所以要装好deal.II
能进行并行的有限元计算,MPICH2和PETSc是首先需要装好的。而且MPICH2和PETSc是很多程序包所依赖的或者可选环境,安装方法和很多,这里就不一一赘述。
1. 安装MPI环境:
下载一份mpich2的压缩包,按照./configure -> make -> make install的基本顺序安装,默认安装位置,其他设置都可以用默认的(这一步安装还比较简单)。
2. 安装PETSc:
具体下载哪个版本的一定能安装好,我也不知道,我下载的PETSc3.2-p5,安装测试这个比较麻烦,我装了好多次,才让deal.II可以用PETSc编译出来的库文件。
现在把安装时候的脚本贴在这里:
------------------------------------------------------------------------------------------------------------------------------------------
./config/configure.py PETSC_DIR=/home/masc/Documents/Software/petsc-3.2-p5 PETSC_ARCH=arch-linux2-c-debug --with-mpi-dir=/usr/local/ --with-shared-libraries=1 --with-blas-lapack-dir=/usr/lib --with-c++-support=1 --with-dynamic-loading=1 --with-debugging=1
make PETSC_DIR=/home/masc/Documents/Software/petsc-3.2-p5 PETSC_ARCH=arch-linux2-c-debug all
make PETSC_DIR=/home/masc/Documents/Software/petsc-3.2-p5 PETSC_ARCH=arch-linux2-c-debug test
------------------------------------------------------------------------------------------------------------------------------------------
主要需要说明的有 点:
<1> 设置环境变量 PETSC_DIR=/home/masc/Documents/Software/petsc-3.2-p5 PETSC export PETSC_DIR
PETSC_ARCH=arch-linux2-c-debug
export PETSC_ARCH
这两个环境变量是安装PETSc必须的,一个是指定安装目录,一个是指定安装版本的字符串(PETSc按照配置的不同指定不同字符串,分配目录,可以方便的切换版本)
<2> 指定一些安装时候的选项
比较重要的有:一定要使用MPI
--with-mpi-dir=/usr/local/
这个选项不能与指定编译器同时使用(--with-cc=mpicc --with-fc=mpif90),指定了mpi dir之后 会自动找 mpicc 和 mpif90 的编译器
指定blas和lapack库 --with-blas-lapack-dir=/usr/lib
blas和lapack的重要性不必说,这个不显式指定,configure也会去找
再就是要编译出动态链接库 --with-shared-libraries=1 会在 $PETSC_ARCH/lib下面生成一个 libpetsc.so
之前没加这个选项,deal.II编译时候会找不到函数
<3>编译结束,进入src/下面 PETSc的任何一个模块的目录下,example/tutorial下面有很多例子可以用来测试安装是否正确
3. 安装 METIS
METIS用来对于网格进行分配,是进行有限元计算必须的之一。安装比较简单,软件包也很小。按照解压之后的INSTALL文件的简单说明,make一下就可以了
4. 安装deal.II
deal.II我安装的也是最新版本7.1.0,安装速度取决于你的机器,在其官方网站上面有平台的需求。
也贴上安装脚本:
------------------------------------------------------------------------------------------------------------------------------------------
./configure --prefix=/home/masc/Documents/Software/deal.II/ --enable-mpi --disable-threads --enable-shared CC=mpicc CXX=mpicxx LDFLAGS=-L/home/masc/Documents/Software/petsc-3.2-p5/arch-linux2-c-debug/lib LIBS=-lpetsc --with-petsc=/home/masc/Documents/Software/petsc-3.2-p5/ --with-petsc-arch=arch-linux2-c-debug --with-metis=/home/masc/Documents/Software/metis-4.0.3/ --with-metis-libs=/home/masc/Documents/Software/metis-4.0.3/
make all
------------------------------------------------------------------------------------------------------------------------------------------
使用mpi,多进程在与PETSc交互时,经常会使程序崩溃,在deal.II的step-17例子里也有说明,将其关闭。编译出动态库最后供linker使用,deal.II比较大,用动态库要节省机器开销。 指定一下编译器,这里需要和PETSc编译时使用同样的编译器。这个在之后configure的时候也会自动查找的。如果不一致则会报错。
后面连上PETSC和METIS的安装路径,指定一下库文件即可。
我安装好多次没成功的原因,在于测试用PETSc写的并行模块的程序时,会找不到很多函数,原因是未指定libpetsc.so的路径,之后在链接的时候就能找到了。主要是参数 LIBS和LDFLAGS进行设置一下好。
以上安装都是可以参考 ./configure -h 给出的选项说明的,在做相应的调整得到,具体安装其他第三方软件,可以继续参考help选项。
1. 安装MPI环境:
下载一份mpich2的压缩包,按照./configure -> make -> make install的基本顺序安装,默认安装位置,其他设置都可以用默认的(这一步安装还比较简单)。
2. 安装PETSc:
具体下载哪个版本的一定能安装好,我也不知道,我下载的PETSc3.2-p5,安装测试这个比较麻烦,我装了好多次,才让deal.II可以用PETSc编译出来的库文件。
现在把安装时候的脚本贴在这里:
------------------------------------------------------------------------------------------------------------------------------------------
./config/configure.py PETSC_DIR=/home/masc/Documents/Software/petsc-3.2-p5 PETSC_ARCH=arch-linux2-c-debug --with-mpi-dir=/usr/local/ --with-shared-libraries=1 --with-blas-lapack-dir=/usr/lib --with-c++-support=1 --with-dynamic-loading=1 --with-debugging=1
make PETSC_DIR=/home/masc/Documents/Software/petsc-3.2-p5 PETSC_ARCH=arch-linux2-c-debug all
make PETSC_DIR=/home/masc/Documents/Software/petsc-3.2-p5 PETSC_ARCH=arch-linux2-c-debug test
------------------------------------------------------------------------------------------------------------------------------------------
主要需要说明的有 点:
<1> 设置环境变量 PETSC_DIR=/home/masc/Documents/Software/petsc-3.2-p5 PETSC export PETSC_DIR
这两个环境变量是安装PETSc必须的,一个是指定安装目录,一个是指定安装版本的字符串(PETSc按照配置的不同指定不同字符串,分配目录,可以方便的切换版本)
<2> 指定一些安装时候的选项
比较重要的有:一定要使用MPI
这个选项不能与指定编译器同时使用(--with-cc=mpicc --with-fc=mpif90),指定了mpi dir之后 会自动找 mpicc 和 mpif90 的编译器
指定blas和lapack库 --with-blas-lapack-dir=/usr/lib
blas和lapack的重要性不必说,这个不显式指定,configure也会去找
再就是要编译出动态链接库 --with-shared-libraries=1 会在 $PETSC_ARCH/lib下面生成一个 libpetsc.so
之前没加这个选项,deal.II编译时候会找不到函数
<3>编译结束,进入src/下面 PETSc的任何一个模块的目录下,example/tutorial下面有很多例子可以用来测试安装是否正确
3. 安装 METIS
METIS用来对于网格进行分配,是进行有限元计算必须的之一。安装比较简单,软件包也很小。按照解压之后的INSTALL文件的简单说明,make一下就可以了
4. 安装deal.II
deal.II我安装的也是最新版本7.1.0,安装速度取决于你的机器,在其官方网站上面有平台的需求。
也贴上安装脚本:
------------------------------------------------------------------------------------------------------------------------------------------
./configure --prefix=/home/masc/Documents/Software/deal.II/ --enable-mpi --disable-threads --enable-shared CC=mpicc CXX=mpicxx LDFLAGS=-L/home/masc/Documents/Software/petsc-3.2-p5/arch-linux2-c-debug/lib LIBS=-lpetsc --with-petsc=/home/masc/Documents/Software/petsc-3.2-p5/ --with-petsc-arch=arch-linux2-c-debug --with-metis=/home/masc/Documents/Software/metis-4.0.3/ --with-metis-libs=/home/masc/Documents/Software/metis-4.0.3/
make all
------------------------------------------------------------------------------------------------------------------------------------------
使用mpi,多进程在与PETSc交互时,经常会使程序崩溃,在deal.II的step-17例子里也有说明,将其关闭。编译出动态库最后供linker使用,deal.II比较大,用动态库要节省机器开销。 指定一下编译器,这里需要和PETSc编译时使用同样的编译器。这个在之后configure的时候也会自动查找的。如果不一致则会报错。
后面连上PETSC和METIS的安装路径,指定一下库文件即可。
我安装好多次没成功的原因,在于测试用PETSc写的并行模块的程序时,会找不到很多函数,原因是未指定libpetsc.so的路径,之后在链接的时候就能找到了。主要是参数 LIBS和LDFLAGS进行设置一下好。
以上安装都是可以参考 ./configure -h 给出的选项说明的,在做相应的调整得到,具体安装其他第三方软件,可以继续参考help选项。
前一篇:一些调侃

加载中…