找回密码
 注册
查看: 10939|回复: 3

paraview 3.8.0 含Python和batch模式以及mpi的编译安装

[复制链接]
发表于 2010-8-8 13:26:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
OpenFOAM里自带的Paraview是不支持python脚本的,不易于做一些重复性的后处理工作,实际上paraview是支持python的,如果熟悉python的朋友可以借鉴paraview的相关资料写出python程序, 不太熟悉的也没关系,paraview3.8.0 可以支持记录宏的方式把你的操作记录下来变成python脚本,这样下次在做类似的工作时,只需要简单调整一下脚本就好用咯! 此外paraview 还支持mpi并行方式进行后处理.但这些功能在OpenFOAM所带的包里并包含.那么可以通过下载paraview官方预编译包,以及自己编译的方式增加这些功能.

1) 使用预编译包(最大并行数未知)
1 在终端中检查,并删除原有paraview安装
  ls $ParaView_DIR
  rm -rf $ParaView_DIR
2 建立paraview的安装目录
mkdir  $ParaView_DIR
3 下载预编译包
  wget http://www.paraview.org/files/v3.8/ParaView-3.8.0-Linux-i686.tar.gz
  64 位的是:
get http://www.paraview.org/files/v3.8/ParaView-3.8.0-Linux-x86_64.tar.gz
4 解压缩安装
   cd $ParaView_DIR
  tar -xzf $HOME/OpenFOAM/ParaView-3.8.0-Linux-i686.tar.gz
   mv ParaView-3.8.0-Linux-i686 paraview-3.8.0
    64 位的是:
  tar -xzf $HOME/OpenFOAM/ParaView-3.8.0-Linux-x86_64.tar.gz
  mv ParaView-3.8.0-Linux-x86_64/ paraview-3.8.0
  参考: Using the official pre-built ParaView 3.8.0 version with OpenFOAM...

2) 利用第三方包直接编译
2.1)在第三方包文件夹下执行
./makeParaview -mesa -python -mpi
为了更快的编译paraview。也可以利用并行的方式编译paraview 方式是在makeParaview文件中加入
export WM_NCOMPPROCS=n
export WM_HOSTS=n
其中n为并发数


2.2)如果你没有使用系统自带的 Mesa 或者 Python的话,则需要编辑makeParaview文件,
# MPI support:
withMPI=true
MPI_MAX_PROCS=32

# Python support:
# note: script will try to determine the appropriate python library.
#       If it fails, specify the path using the PYTHON_LIBRARY variable
withPYTHON= true
#PYTHON_LIBRARY=""  //注解掉这行
PYTHON_LIBRARY="你的Pythong安装文件夹/lib(或lib64)/libpython版本号.so"

# MESA graphics support:
withMESA= true
MESA_INCLUDE="你的Mesa安装文件夹/include/GL"
MESA_LIBRARY="你的Mesa安装文件夹/lib(或lib64)/libOSMesa.so"

# extra QT gui support (useful for some third party apps)
withQT=true

# Set the path to the Qt-4.5 (or later) qmake if the system Qt is older
QMAKE_PATH=""你的Qt安装文件夹/bin/qmake"

如果你不使用系统在带的Python的话,完成编辑后需要注意的是在$WM_THIRD_PARTY_DIR/tools/文件夹下的makeParaViewFunctions得第212行改为
pythonInclude=你的Pythong安装文件夹/include/python$pythonMajor

修改完毕后,在控制台下执行./makeParaview

3) 自行编译安装paraview
3.1 在网站上下载paraview3.8.0的压缩包 并解压缩
wget http://www.paraview.org/files/v3.8/ParaView-3.8.0.tar.gz
tar -zxf ParaView-3.8.0.tar.gz

3.2 交叉编译的设置
ccmake ParaView-3.8.0
此时会打开ccmake的设置界面,
ccmake 界面说明: 
  a)当光标在某个选项位置时,通过回车键可以进入设置状态,如果是ON/OFF类型的选项,回车后会切换,如果是文本类型的选项回车后可以用del或者backspace删除原有,并重新输入,
  b)按t键可以打开折叠,看到所有的设置
  c)按c键可以在第一次打开或者更新的时候完成跟新设置
  d)在设置完毕,并且ccmake自动检查成功时, 可以按下g键生成设置文件。
参数设置(主要是mpi  / osmesa / ) 
BUILD_SHARED_LIBS    ON, use shared libraries.
PARAVIEW_USE_MPI    ON, To enable MPI. Other MPI options will not be available until you turn this on.
*MPI_LIBRARY    Path to the MPI library (such as /usr/lib/libmpi.so).
*MPI_EXTRA_LIBRARY    Path to extra MPI library (such as /usr/lib/libmpi++.so).
*MPI_INCLUDE_PATH    Path to MPI includes (such as /usr/include/mpi).
*以上选项需要将PARAVIEW_USE_MPI  设为  ON,后并使用c键更新设置完毕时才会出现
PARAVIEW_ENABLE_PYTHON    ON Makes python client scripting and the python programmable filter available.
PARAVIEW_BUILD_QT_GUI       ON
QT_QMAKE_EXECUTABLE    ON Path to Qt's qmake executable (such as /usr/local/Trolltech/Qt-4.2.2/bin/qmake).
MPIEXEC_MAX_NUMPROCS      32  MPI最大并发数,可以根据自己机器的情况定义
VTK_MPI_MAX_NUMPROCS      32  VTK MPI最大并发数,可以根据自己机器的情况定义
PYTHON_EXECUTABLE               Python的可执行文件(你的Python 安装位置/bin/python版本号)
PYTHON_INCLUDE_DIR               Python的头文件位置(你的Python安装位置/include/python版本号)
PYTHON_EXECUTABLE               Python的库文件(你的Python安装位置/lib(或者lib64)/python版本号.so)
OPENGL_INCLUDE_DIR              Mesa的头文件位置(你的Mesa安装位置/include/GL)
OPENGL_gl_LIBRARY                   Mesa的库文件(你的Mesa安装位置/lib(或者lib64)/libGL.so)
OPENGL_glu_LIBRARY                 Mesa的 工具库文件(你的Mesa安装位置/lib(或者lib64)/libGLU.so)
VTK_OPENGL_HAS_OSMESA       ON
**OSMESA_INCLUDE_DIR               Mesa的头文件位置(你的Mesa安装位置/include/)
**OSMESA_LIBRARY                       Mesa的 工具库文件(你的Mesa安装位置/lib(或者lib64)/libOSMesa32.so)
**VTK_USE_OFFSCREEN        ON
**以上选项需要将VTK_OPENGL_HAS_OSMESA  设为  ON,后并使用c键更新设置完毕时才会出现
***VTK_USE_DISPLAY   OFF
*** ?尚不明确是否该选项有作用,知情者请根贴,根据paraview mailist应该可以选择默认

3.3 编译
 在生成完毕后再控制台下输入 
  make
   如果需要并行编译
  make -j N
  其中N为并发数,编译时间较长,本人并发数为8的情况编译耗时20分钟
3.4 指定到OpenFOAM指定的安装位置上
ln -s 你的paraview安装位置 $Paraview_DIR

参考 1) ParaView:Build And Install
   2) Setting up a ParaView Server

4)说明
安装完毕后,要加入环境变量:
export PYTHONPATH=$PYTHONPATH:/home/doriad/bin/ParaView/Utilities/VTKPythonWrapping
export PYTHONPATH=$PYTHONPATH:/home/doriad/bin/ParaView/bin


使用python脚本处理数据的方式:
pvpython  <你的python脚本>
如果后台方式使CPU渲染则
pvbatch --use-offscreen-rendering <你的python脚本>
并可以并行化:
mpirun -np N -machinefile  <你的节点名文件> pvbatch --use-offscreen-rendering <你的python脚本>
注:如果使用rsh 方式需要参数 --mca plm_rsh_agent rsh(1.3版本的是--mca pls_rsh_agent rsh)
       使用离线方式渲染时,请不要在终端启动选项中增加X功能,对Linux终端连接就是不需要参数X ,对putty而言则在X11选项卡中不要enableX11



5) 相关软件说明
5.1 有关Qt
尽管3.8.0版本的ParaView声称需要Qt .4..6.0以上版本,但经本人测试Qt.4.5.0以上可以编译通过,因此在3.2)节的设置中遇到警告版本不足时,可根据你的情况忽略版本问题。
Qt的安装经常会缺少库。最典型的有Qt的文档库,OpenSUSE 的用户可以通过yast下载安装libqt4-devel-doc。自己编译Qt的用户可以到Qt安装位置下的lib文件夹下查看是否有相关的库文件
RedHat 企业版 AS4 安装Qt-4.5.0以及Qt-4.6.0安装会报错跳出,而Qt4.5.3时随不跳出,但会报错,不过在Qt安装位置下的lib文件夹下会缺少libQtHelp.so如果缺少这个文件paraview也编译无法通过。
一般报错信息是openssl以及webkit有关,可以在Qt安装时,通过对configure 追加参数-no-openssl -no-webkit 则可以编译通过。

5.2 有关Mesa
Mesa是一种OpenGL的API 通过CPU 来进行渲染,使用该功能后,可以进行离线渲染,即无需显示设备,就可以做图勒。
安装前 通过
rpm -qa|grep mesa
检查Mesa是否安装
以及rpm -ql mesa-libOSMesa
检查Mesa库文件的安装位置
如没有安装,在可以到Mesa主页下载编译安装,Mesa的发行版不多见,一般需要编译安装
!!安装注意:在RHEL 4 版本安装最好安装Mesa之前不要加载OpenFOAM环境变量.

6) ParaView的远程及并行使用
前面提到pvbatch可以用mpich并行处理,除此之外按上述方式编译完毕后paraview还提供一种server/client的连接方式,主要分为远程主机的服务端设置和本地客户端设置
6.1)远程主机服务端配置
利用ssh工具登录远程主机后,执行
pvserver
如需要并行化则是
mpi -np N pv server
使用参数
--use-offscreen-rendering 在远程无硬件显示设备或者不支持X连接服务的情况下,可建立连接
--reverse-connection --client-host=本地主机网络名 可以使用逆向方式连接(注,逆向方式连接时,在本地paraview中,也要对应的选择逆向方式,)该模式在远程主机装有防火墙不能连入时,有很大的意义
6.2)本地客户端GUI设置
在工具栏中的connect工具后会跳出一个连接工具面板

                               
登录/注册后可看大图

选择增加server

                               
登录/注册后可看大图

根据不同的情况选择连接方式,填写远程主机IP地址或者域名,以及端口号。
连接后就可以通过本地客户端操作远程的后处理了! 
参考:Setting up a ParaView Server
    Starting the server

应该用不着D版的TECPLOT了吧?

本文内容得到了法国第六大学徐辉博士的帮助。可以参见他的blog http://blog.sina.com.cn/s/blog_6a40fba10100ld76.html

[ 本帖最后由 OpenFOAM 于 2010-8-11 02:09 编辑 ]
发表于 2010-8-8 18:52:07 | 显示全部楼层
以后就用paraview了
 楼主| 发表于 2010-8-9 18:26:45 | 显示全部楼层
发表于 2010-8-11 02:20:16 | 显示全部楼层
狂顶,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表