deal.II链接PETSc过程记录
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/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链接PETSc过程记录相关推荐
- 使用Deal.II过程
deal.II 是一个有限元C++有限元库. 1.在官方网站http://dealii.org/download下载Virtual Machine Image. 2.安装vitualBox 3.在vi ...
- Win10 环境下安装Ubuntu 18.04过程记录
Win10 环境下安装Ubuntu 18.04过程记录 步骤1:下载镜像文件 从Ubuntu官网https://www.ubuntu.com/download/server下载系统的iso镜像文件 , ...
- Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析
Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析 一.介绍计算机网络体系结构 1.计算机的网络体系结构 在抓包分析TCP建立链接之前首先了解下计算机的网络通信的模型,我相信学习过计 ...
- Linux学习笔记-编译与链接的过程
程序的生成过程分为两步: Linux编译与链接的过程 1.编译:compile,将*.cpp->*.o 2.链接:link,将所有的*.o->executable 编译: g++ -c m ...
- 解决Linux 负载过高问题过程记录
解决问题的思路 1.top命令查看该机器的负载状况 2.cd /proc/pid 查看对应高占用程序的位置 3.进入对应程序中查看日志,根据CPU和内存这两个因素分析 4.ps -ajxf 查看进程 ...
- 戴尔新电脑笔记本桌面没有计算机,自主日常维修,更换戴尔灵越15屏幕过程记录...
自主日常维修,更换戴尔灵越15屏幕过程记录 2020-03-10 11:40:44 1点赞 6收藏 7评论 创作立场声明:我就是这个普通的手机电脑维修工,自学成才,这次分享的电脑是自己的戴尔灵越15, ...
- hexo 博客创建、部署、美化过程记录
hexo 博客创建.部署.美化过程记录 前言 作为一名信息工程专业的学生,编程语言没学多少,正规讲过的且了解比较深的是C++,也只是一些基本的编程,连数据库.数据结构还有各种算法都没学过,python ...
- VPB安装过程记录-20200310
VPB安装过程记录-20200310 内容概述 1.环境及版本 2.所需内容下载 3.总体配置路线 4.OSG安装过程 5.GDAL编译 6.VPB编译 内容概述 本文主要记录VPB配置过程及其中遇到 ...
- 一次简单的爬虫过程记录:静态网页小说下载
时间:2020年2月14日 环境:windows7 编程语言及版本:Python3.8 IDE:Sublime Text 3 工具:requests,BeautifulSoup,sys 浏览器:Fir ...
- WIN10解决蓝屏SYSTEM_THREAD_EXCEPTION_NOT_HANDLED报错过程记录
WIN10解决蓝屏SYSTEM_THREAD_EXCEPTION_NOT_HANDLED报错过程记录 夜里两点多的时候,使用着飞行堡垒8的华硕笔记本,办公.右下角跳出过一个提示框,具体内容不太记得清楚 ...
最新文章
- java 读取远程文件夹_java读取远程共享文件 | 学步园
- kubernetes学习笔记之七: Ingress-nginx 部署使用
- 163k地方门户网站系统团购定时结束限量控制
- php绑定变量,php动态绑定变量的用法
- 如何将python项目部署到服务器_部署python项目到linux服务器
- 使用vsftp虚拟用户实现安全访问控制
- ZooKeeper程序员指南--使用ZooKeeper开发分布式应用程序
- 5006.c++类中使用static变量bug
- Java中String、StringBuffer 、StringBuilder
- 【Jlink驱动无法加载解决办法】
- 通俗易懂的虚短、虚断的使用条件?
- Linux C程序实现查看文件夹大小
- MIB Browser的使用(附安装包)
- linux底层播放器,[转载]媒体播放器三大底层架构:MPC、MPLAYER、VLC
- html字体颜色代码属性,HTML文本属性颜色控制属性的实现
- SQL基础知识整理(自用)
- 让你的手机随时成为空号
- 百度云盘上传有大小限制 微信文件上传有大小限制 怎么破?
- Linux学习笔记——Nginx安装部署
- Xmanager5 Passive 图形界面安装oracle,无法使用鼠标
热门文章
- Java Android 代码片段收集
- E60的存储空间不足? NO
- php 5.6 mcrypt,mcrypt在Windows / IIS上的PHP 5.6中不起作用
- 三、K8s常见操作命令
- ELK详解(五)——Head插件简单使用
- C++ 从入门到入土(English Version)Section4: Random numbers + machine code
- kali rolling source 16.1~~18.2
- 204. Count Primes 1
- openstack 云主机关机:ournal: End of file while reading data: Input/output error
- 使用docker优雅的部署你的nuxtjs项目