deal.II链接PETSc过程记录

Posted on 2016-09-29   |   In computational material science   |   暂无评论

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/hypre
make 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.4
export PETSC_ARCH=x86_64
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH

这样同时将PETSc的lib路径加入了全局的动态链接库路径中。

编译deal.II

解压下载的tar包,得到dealii-8.4.1文件夹,进入,然后执行以下命令:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/dealii -DDEAL_II_WITH_PETSC=ON -DDEAL_II_WITH_MPI=ON ..
sudo make install
make 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

deal.II链接PETSc过程记录相关推荐

  1. 使用Deal.II过程

    deal.II 是一个有限元C++有限元库. 1.在官方网站http://dealii.org/download下载Virtual Machine Image. 2.安装vitualBox 3.在vi ...

  2. Win10 环境下安装Ubuntu 18.04过程记录

    Win10 环境下安装Ubuntu 18.04过程记录 步骤1:下载镜像文件 从Ubuntu官网https://www.ubuntu.com/download/server下载系统的iso镜像文件 , ...

  3. Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析

    Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析 一.介绍计算机网络体系结构 1.计算机的网络体系结构 在抓包分析TCP建立链接之前首先了解下计算机的网络通信的模型,我相信学习过计 ...

  4. Linux学习笔记-编译与链接的过程

    程序的生成过程分为两步: Linux编译与链接的过程 1.编译:compile,将*.cpp->*.o 2.链接:link,将所有的*.o->executable 编译: g++ -c m ...

  5. 解决Linux 负载过高问题过程记录

    解决问题的思路 1.top命令查看该机器的负载状况 2.cd  /proc/pid 查看对应高占用程序的位置 3.进入对应程序中查看日志,根据CPU和内存这两个因素分析 4.ps -ajxf 查看进程 ...

  6. 戴尔新电脑笔记本桌面没有计算机,自主日常维修,更换戴尔灵越15屏幕过程记录...

    自主日常维修,更换戴尔灵越15屏幕过程记录 2020-03-10 11:40:44 1点赞 6收藏 7评论 创作立场声明:我就是这个普通的手机电脑维修工,自学成才,这次分享的电脑是自己的戴尔灵越15, ...

  7. hexo 博客创建、部署、美化过程记录

    hexo 博客创建.部署.美化过程记录 前言 作为一名信息工程专业的学生,编程语言没学多少,正规讲过的且了解比较深的是C++,也只是一些基本的编程,连数据库.数据结构还有各种算法都没学过,python ...

  8. VPB安装过程记录-20200310

    VPB安装过程记录-20200310 内容概述 1.环境及版本 2.所需内容下载 3.总体配置路线 4.OSG安装过程 5.GDAL编译 6.VPB编译 内容概述 本文主要记录VPB配置过程及其中遇到 ...

  9. 一次简单的爬虫过程记录:静态网页小说下载

    时间:2020年2月14日 环境:windows7 编程语言及版本:Python3.8 IDE:Sublime Text 3 工具:requests,BeautifulSoup,sys 浏览器:Fir ...

  10. WIN10解决蓝屏SYSTEM_THREAD_EXCEPTION_NOT_HANDLED报错过程记录

    WIN10解决蓝屏SYSTEM_THREAD_EXCEPTION_NOT_HANDLED报错过程记录 夜里两点多的时候,使用着飞行堡垒8的华硕笔记本,办公.右下角跳出过一个提示框,具体内容不太记得清楚 ...

最新文章

  1. java 读取远程文件夹_java读取远程共享文件 | 学步园
  2. kubernetes学习笔记之七: Ingress-nginx 部署使用
  3. 163k地方门户网站系统团购定时结束限量控制
  4. php绑定变量,php动态绑定变量的用法
  5. 如何将python项目部署到服务器_部署python项目到linux服务器
  6. 使用vsftp虚拟用户实现安全访问控制
  7. ZooKeeper程序员指南--使用ZooKeeper开发分布式应用程序
  8. 5006.c++类中使用static变量bug
  9. Java中String、StringBuffer 、StringBuilder
  10. 【Jlink驱动无法加载解决办法】
  11. 通俗易懂的虚短、虚断的使用条件?
  12. Linux C程序实现查看文件夹大小
  13. MIB Browser的使用(附安装包)
  14. linux底层播放器,[转载]媒体播放器三大底层架构:MPC、MPLAYER、VLC
  15. html字体颜色代码属性,HTML文本属性颜色控制属性的实现
  16. SQL基础知识整理(自用)
  17. 让你的手机随时成为空号
  18. 百度云盘上传有大小限制 微信文件上传有大小限制 怎么破?
  19. Linux学习笔记——Nginx安装部署
  20. Xmanager5 Passive 图形界面安装oracle,无法使用鼠标

热门文章

  1. Java Android 代码片段收集
  2. E60的存储空间不足? NO
  3. php 5.6 mcrypt,mcrypt在Windows / IIS上的PHP 5.6中不起作用
  4. 三、K8s常见操作命令
  5. ELK详解(五)——Head插件简单使用
  6. C++ 从入门到入土(English Version)Section4: Random numbers + machine code
  7. kali rolling source 16.1~~18.2
  8. 204. Count Primes 1
  9. openstack 云主机关机:ournal: End of file while reading data: Input/output error
  10. 使用docker优雅的部署你的nuxtjs项目