deal.II链接PETSc过程记录
来源:互联网 发布:火影忍者抄袭知乎 编辑:程序博客网 时间:2024/06/06 16:25
deal.II链接PETSc过程记录
2016-11-16 Update
p4est与deal.II的链接注意事项:
- p4est安装时需要开启mpi,即configure时加上–enable-mpi选项。
- 链接时增添:
-DP4EST_DIR=/path/to/installation -DDEAL_II_WITH_P4EST=ON -DDEAL_II_WITH_MPI=ON
简介
在学习deal.II的Step17和18时,需要用到PETSc。
PETSc,全称Portable-Extensible-Toolkit-for-Scientific-Computation,是美国能源部ODE2000支持开发的20多个ACTS工具箱之一,由Argonne国家实验室开发的可移植可扩展科学计算工具箱,主要用于在分布式存储环境高效求解偏微分方程组及相关问题。PETSc所有消息传递通信均采用MPI标准实现,见百度百科介绍。
默认安装deal.II时没有与PETSc集成,那么就需要重新编译。
注:这里链接PETSc的过程也同样适用于Trilinos、SLEPc等第三方软件。
提前准备
这里链接的是deal.II的8.4.1版本和PETSc的3.5.4版本。
还额外需要MPI库,这里用的是Open MPI的1.6.3版本。还需要hypre,用的是2.9.0版本。
openmpi和hypre之前都安装过,分别安装在/usr/local/openmpi和/usr/local/hypre。这两个的具体安装过程不再详述。
安装过程
编译PETSc
解压下载的安装包,得到petsc-3.5.4文件夹,然后进入,执行以下命令:
export PETSC_DIR=`pwd`export PETSC_ARCH=x86_64 # or any other identifying text for your machine./config/configure.py --with-shared-libararies=1 --with-x=0 --with-mpi=1 --with-mpi-dir=/usr/local/openmpi --with-hypre=1 --with-hypre-dir=/usr/local/hypremake all test
要点:
- 这里没有指定prefix路径,也就是在当前安装文件夹下编译。
- 环境变量PETSC_DIR是指定PETSc的安装文件位置,环境变量PETSC_ARCH是指定配置名字,比如x86_64或gnu_intel等等,这样可以生成不同名字的目录,方便切换版本。
- configure的第一个参数是生成动态链接库,这样在lib下就能生成libpetsc.so。
- 一定要使用MPI,并且指定好它的路径,否则跟deal.II不对应也不行。这里务必注意!
- 一定使用hypre,并且指定好路径。否则step17还是不能编译。
编译好PETSc后,将那两个环境变量写入.bashrc中,让其能够始终有效:
export PETSC_DIR=/home/qixinbo/program/petsc-3.5.4export PETSC_ARCH=x86_64export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH
这样同时将PETSc的lib路径加入了全局的动态链接库路径中。
编译deal.II
解压下载的tar包,得到dealii-8.4.1文件夹,进入,然后执行以下命令:
mkdir buildcd buildcmake -DCMAKE_INSTALL_PREFIX=/opt/dealii -DDEAL_II_WITH_PETSC=ON -DDEAL_II_WITH_MPI=ON ..sudo make installmake test
要点:
- 用-DDEAL_II_WITH_PETSC=ON来指明链接PETSC
- 一定要指明用MPI,与前面的PETSc相对应
Step17编译运行成功
最后附上一张Step17编译运行成功的靓照:
参考文献
Interfacing deal.II to PETSc
Installation instructions and further information on deal.II
PETSc:Documentation: Installation
安装 deal.II 7.1.0 心得
- deal.II链接PETSc过程记录
- 使用Deal.II过程
- PetSc学习记录
- 压测长链接过程记录
- PETsc安装
- petsc toy
- 链接II
- 链接记录
- 链接记录
- 链接记录
- 链接过程
- 链接过程
- 链接过程
- 成功安装deal.ii-8.1.0经验分享(包括各种接口程序)
- 求解偏微分方程开源有限元软件deal.II学习--Step 1
- 求解偏微分方程开源有限元软件deal.II学习--Step 2
- 求解偏微分方程开源有限元软件deal.II学习--Step 3
- 求解偏微分方程开源有限元软件deal.II学习--Step 4
- Json原生解析
- [JAVA]定时任务之-Quartz使用篇
- 第13周项目4-Floyd算法的验证
- 如何去设计一个自适应的网页设计或HTMl5
- MIPS 大端序和小端序的问题
- deal.II链接PETSc过程记录
- RecyclerView+OkHttp加载刷新
- C/C++中用va_start/va_arg/va_end实现可变参数函数的原理与实例详解 .
- PAT 甲级:1108. Finding Average
- 优酷hadoop mapred 面试题[find friends]
- android 桌面小部件
- 非常详细的 Docker 学习笔记
- POJ 3268 - Shortest Path Dijstra+ SPFA
- jquery判断checkbox是否选中及改变checkbox状态