您好,欢迎来到年旅网。
搜索
您的当前位置:首页AFEPack安装手册

AFEPack安装手册

来源:年旅网
1. 安装包准备

boost_1_33_1.tar.gz

deal.nodoc-6.0.0.tar.gz AFEPack-snapshot.tar.gz mpich2-1.4.1p1.tar easymesh.c.gz

gmsh-2.5.0-linux.tgz

2. 安装 boost 头文件

将boost_1_33_1.tar.gz解压缩,解压缩了以后会得到一个目录,请将这个目录下的名为 boost 的子目录拷贝到 /usr/local/include 下去;

3. 安装 deal.II 的 base 和 lac 部分

请将deal.nodoc-6.0.0.tar.gz解压缩到 /usr/local 下,然后进入得到的子目录,运行 ./configure make base lac

进行编译,编译过后,请将相应的头文件和库 文件链接到位: 链接头文件: cd /usr/local/include ln -sf ../deal.II/base/include/base . ln -sf ../deal.II/lac/include/lac .

链接库文件: cd /usr/local/lib ln -sf ../deal.II/lib/lib* .

记得要将 /usr/local/lib 加入到缺省的共享库搜索路径中,就是在文件 /etc/ld.so.conf

文件中,加入一行 /usr/local/lib ,然后运行 /sbin/ldconfig

即可。另外,deal.II 的随机文档可以通过在 /usr/local/deal.II 目录下运行 make doc

来获得。

4. 安装MPICH2

4.1. 解压mpich2-1.4.1p1.tar tar xzf mpich2-1.4.1p1.tar.gz

cd mpich2-1.4.1p1 4.2. 选择安装目录

$MPIHOME,我们选的是MPIHOME =/usr/local/mpich2 4.3. 编译MPICH2

对于csh 和 tcsh内核:

./configure --prefix= $MPIHOME |& tee c.txt

对于bash 和sh内核:

./configure --prefix= $MPIHOME 2>&1 | tee c.txt

编译中出现的大多数错误,都容易解决,如提示错误如下:

\"No Fortran 77 compiler found. If you don't need to build any Fortran programs, you can disable Fortran support using --disable-f77 and --disable-fc. If you do want to build

Fortran programs, you need to install a Fortran compiler such as gfortran or ifort before you can proceed.\"

意思是说你的系统中没有安装Fortran编译器,你可以安装一个或者利用-disable-f77 和 -disable-fc,去除fortran支持。 4.4. Build MPICH2:

对于csh 和 tcsh内核: make |& tee m.txt 对于bash 和sh内核: make 2>&1 | tee m.txt 4.5 安装 MPICH2

对于csh 和 tcsh内核:

make install |& tee mi.txt

对于bash 和sh内核:

make install 2>&1 | tee mi.txt 4.6. 修改.bashrc文件,加入bin路径 对于csh 和 tcsh内核:

setenv PATH $MPIHOME /bin:$PATH 对于bash 和sh内核:

PATH= $MPIHOME /bin:$PATH ; export PATH 4.7. 检查安装是否成功,输入 which mpicc which mpiexec 将会显示你的bin路径

5. 安装AFEPack

请将AFEPack-snapshot.tar.gz解压缩到 /usr/local 下,得到子目录 AFEPack,然后运行 cd /usr/local/AFEPack aclocal autoconf automake ./configure Make Make时会出现错误:

src/MPI.cpp:12:17: 错误:mpi.h:没有那个文件或目录 src/MPI.cpp:20: 错误:'MPI_Comm' 在此作用域中尚未声明 src/MPI.cpp:20: 错误:expected ',' or ';' before '{' token src/MPI.cpp:43: 错误:expected `}' at end of input gmake[4]: *** [obj/MPI.o] 错误 1

gmake[4]: Leaving directory `/usr/local/AFEPack/library/mpi' make[3]: *** [all] 错误 2

make[3]: Leaving directory `/usr/local/AFEPack/library/mpi'

gmake[2]: *** [all] 错误 2

gmake[2]: Leaving directory `/usr/local/AFEPack/library' gmake[1]: *** [all-recursive] 错误 1

gmake[1]: Leaving directory `/usr/local/AFEPack' make: *** [all] 错误 2

这是MPI配置错误。需要做一下工作

将AFEPack/library/mpi中的 Makefile.1 文件第13行 MPICC=g++ -I/$(MPIHOME)/include 设置为你的 mpi 安装头文件目录 我们这里设置如下

MPICC=g++ -I/usr/local/mpich2/include 然后 做如下的链接:

ln -s /usr/local/AFEPack/library/include /usr/include/AFEPack

ln -s /usr/local/AFEPack/library/mpi/include /usr/local/AFEPack/library/include/mpi 有了这两个链接,就可以编译MPI/src中的其他文件了。

然后重新make一下。这时候,可能在编译example文件夹时还是会出现错误,则做如下链接

ln -s /usr/local/AFEPack/library/lib/lib* /usr/lib/ 重新make,成功!!!

最后,然后将头文件和库文件进行链接:

cd /usr/local/include

ln -sf ../AFEPack/library/include AFEPack // 前面链接过了 这个也许可以不要

cd /usr/local/lib

ln -sf ../AFEPack/library/lib/libAFEPack.so .

ln -sf ../AFEPack/library/lib/libAFEPack_mpi.so . // 以上两个库,可以用 lib* 代替同时链接

ln -sf ../AFEPack/library/lib/libAFEPack.so libAFEPack.g.so 请记得在这以后再运行一次 /sbin/ldconfig 更新 ld 的缓冲。

在目录 /usr/local/AFEPack/example/tools 下有一系列非常有用的小工具,您 可以将这些工具拷贝到可执行路径中,如果您 的 shell 是 bash,您可以参考下 面的命令: cd /usr/local/AFEPack/example/tools

for i in `ls`; do if [ -x $i ]; then cp $i /usr/local/bin; fi; done 这样这些小工具都会放在 /usr/local/bin 下了。

6. Easymesh和Gmsh的安装

6.1 安装easymesh

解压easymesh.c.gz,例如放在/home/目录下 gunzip easymesh.c.gz 会得到一个文件easymesh.c

gcc -o easymesh easymesh.c -O3 -lm

编译生成可执行程序 easymesh,将这个可执行程序链接到/usr/local/bin即可 cd /usr/local/bin

ln –sf /home/easymesh .

6.2 安装gmsh

解压 文件gmsh-2.5.0-linux.tgz

gunzip gmsh-2.5.0-linux.tgz  gmsh-2.5.0-linux.tar

tar xvf gmsh-2.5.0-linux.tar  gmsh-2.5.0-linux文件夹

将gmsh-2.5.0-linux/bin中的应用程序gmsh链接到/usr/local/bin即可

cd /usr/local/bin

ln –sf gmsh-2.5.0-linux/bin/gmsh .

7. 头文件和类

头文件:

#include /// 代数多重网格求解器

#include /// 双线性算子 #include /// EasyMesh 接口 #include /// 有限元空间 #include /// 泛函 #include /// 参考单元 #inlcude /// 算子 类:

TeplateGeometry 参考单元的几何信息

CoordTransform 参考单元到网格中的单元的坐标变换 TemplateDOF 参考单元上的自由度分布 BasisFunctionAdmin 单元上的基函数

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务