转载自:http://openfoam.blog.sohu.com/158614863.html
*********************************************************************************

Windows下OpenFOAM开发及使用环境配置指南 (1)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

本文献给那些对CFD具有浓厚兴趣, 且致力于源码级CFD研究的人们.

王智勇 <wang-zy@mails.thu.edu.cn>
@ THU

写在前面:

~~~~~~~~

OpenFOAM是一款优秀的开源CFD软件, 其实更应该称作是一个程序库, 用户可以在其平台

上进行源码级开发. 目前OpenFOAM已经拥有大量的CFD求解器可供使用. 更重要的是, 它

是完全免费的. 更更重要的是, 我们可以在其提供的CFD类库(网格, 场, 离散算法)基础

上任意进行二次开发, 从而配置出适用于自己的CFD程序. 更更更重要的是, 我们可以在

不违背 GPL协议的前提下任意分发软件, 不存在使用其他盗版商业软件的违法问题(虽然

这每时每刻都在发生, 也许你的 Windows就是盗版...). Anyway, 无论从哪个角度来讲,

OpenFOAM都是 "FREE" 的. 尤其对于科学研究来讲, OpenFOAM 非常适合开发CFD模型,在

面向对象的设计体系下, 代码重用和模型扩充会为你的科研积累增色不少.

OpenFOAM 的开发源于Linux, 这对只熟悉Windows的用户来说是个噩耗, 尤其在中国更多

的人习惯于使用 Windows. 作为研究人员, 可以花上几个星期去钻研Linux, 从而适应在

Linux下的OpenFOAM开发及使用. 然而如果你把自己的程序交付给别人使用时, 让他在早

已习惯于Windows的情况下去重新学习另一个操作系统, 恐怕还是太费劲儿了点儿. 即便

是自己研究之用, 有时一些前后处理软件我们已经习惯了使用Windows版本, 在不同系统

之间切换还是一件烦人的事情(有朝一日在学界TeX取代了MS
Word时或许就不用切换了).

另外更多的情况是, 你的实验室里大多数机器跑的都是Windows, 如果你要把OpenFOAM程

序放到上面运行, 那麻烦也来了...总而言之, 我们还需要一个Windows版本的OpenFOAM.

一些人在这方面做了工作. 早在OpenFOAM还处于1.2版本时, 便有人将其通过Cygwin移植

到Windows下. 到今天发展到1.7版本, 虽然断断续续, 但总有人在做.
Cygwin是Windows

下的模拟Linux环境, 可以进行程序开发, 但得到的程序需要依赖于Cygwin环境运行, 当

然也可以脱离Cygwin环境, 将程序(exe,
dll)打包然后移植到其他计算机上,但必须带上

cygwin1.dll, 因为程序对Windows的一些调用都是通过cygwin1.dll实现的, 这也就加大

了计算的开销, 对讲求效率的CFDer来说, 绝不是一个好消息. 但Cygwin的一个好处是可

以在Windows下进行程序开发, 这对使用Windows从事科研工作的人是个好消息.

另一套解决方案是在Linux下通过交叉编译得到 Windows下可执行的OpenFOAM程序, 交叉

编译环境采用MinGW. MinGW可以看做一个平台, 也可以看做gcc的一个版本, 它可以使你

在 A 操作系统上编译得到 B 操作系统的程序.
Symscape (http://www.symscape.com)

和 blueCAPE (http://www.bluecape.com.pt)
公司在这方面做了大量的 port工作,他们

的产品分别是 OpenFlow 和 blueCFD. 他们在提供有偿服务的同时,也公开了其port方案

和相应的的 patch, 尤其是 blueCAPE 的 Bruno
Santos 还在OpenFOAMWiki 上维护了一

个相当全面详细的页面(见后参考链接). 这种采用交叉编译得到的 OpenFOAM由于不存在

Cygwin这一层的调用,因此其运行速度较之前一种解决方案会有所提升. 但是这种方案下

的缺点是显而易见的, 开发过程还只能在Linux下进行, 系统切换仍然是个问题.

如果能在Windows下利用Cygwin环境进行开发, 同时编译的程序又能脱离Cygwin运行, 那

是再好不过了. 这样可以在一个操作系统下同时进行开发/调试和运行, 就像 Windows的

native程序一样, 不失为在Windows下使用OpenFOAM的最理想目标了.
Cygwin + MinGW为

这种目标的实现提供了可能. 在Wyldckat(Bruno Santos
@blueCAPE的OpenFOAMWiki ID)

的wiki页面上描述了该解决方案, 但对于OpenFOAM的编译过程, 主要还是针对在Linux下

利用MinGW进行交叉编译的情况. 对于Cygwin下的MinGW编译, 需要有一些修改的地方,本

文把这些实现的细节做一总结描述, 作为该wiki的补充, 主要目的还是给中国的用户/同

行做些参考, 尤其是对于年轻的研究生/博士生, 作为科研的主力军, 深入到OpenFOAM这

样的专业软件中做些扎实的研究还是有益的, 能让你在方法层面更加深刻地理解CFD, 至

少比拿Fluent算点东西就发 paper, 凑合着混毕业要好得多.

需要说明的是, 这种配置/开发/运行方案也有一个不足, 就是编译出来的程序在 Cygwin

环境下无法运行, 而需要在Windows的命令行(或bat文件)来使用. 对习惯了使用Cygwin/

Linux的人来说有点不爽, 好在MinGW的开发者提供了MSYS环境, 经过简单的配置,我们可

以在Windows下按Linux的习惯来运行程序. 这样,
Cygwin+MinGW做开发,
MSYS 作运行环

境,打造出一个 Windows 下开发及使用 OpenFOAM 的 CFD 环境.

本文致力于讲清过程,思路, 写得有些梗概. 对于初次接触以上工具的人来说, 参考一些

相关的文章是必要的, Google是最好的老师.

*********************************************************************************

参考链接:

~~~~~~~~

http://openfoamwiki.net/index.php/Tip_Using_Cygwin_for_cross-compiling_OpenFOAM

http://openfoamwiki.net/index.php/Tip_Cross_Compiling_OpenFOAM_1.6_in_Linux_For_Windows_with_MinGW

https://trac.handbrake.fr/wiki/CygWin

http://www.bluecape.com.pt/
(blueCAPE)

http://www.symscape.com/
(OpenFlow)

http://ftp.twaren.net/Unix/GNU/gnu/

http://heanet.dl.sourceforge.net/sourceforge/mingw

注意事项:

~~~~~~~~

*** 如格式不齐, 请拷贝到txt文档中用等宽字体查看本文档

Windows下OpenFOAM开发及使用环境配置指南 (1)【转载】的更多相关文章

  1. Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】

    转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...

  2. 【Qt】Qt在Windows下的开发与调试环境配置

    前文已经交待了从源码编译Qt自定义版本.现在可以开始配置一下开发与调试程序并写个Hello World了. 1. IDE 虽然Qt官方有VS插件使我们可以在VisualStudio中开发Qt应用,但我 ...

  3. Windows下的Anaconda+OpenCV的环境配置

    Windows下的Anaconda+OpenCV的环境配置

  4. windows下安装node.js及环境配置、部署项目

    windows下安装node.js及环境配置.部署项目 一.总结 一句话总结: 安装nodejs软件:就像普普通通的的软件那样安装 配置nodejs安装的全局模块的环境变量 并且安装cnpm(比如cn ...

  5. windows下vagrant使用及工作环境配置

    环境搭建记录(2014-08-01) 操作系统: Win7旗舰版 Vagrant版本: 1.6 搭建过程 安装vagrant 右键打开安装包按照提示安装即可 安装后会自动把vagrant添加到环境变量 ...

  6. Windows下QT4.8.4编译环境的搭建(转载http://blog.csdn.net/bestgonghuibin/article/details/38933141)

    开始使用QT了,所以第一步就是把环境搭起来,这里小记一下,以免以后忘记. 1. 下载安装文件 要使用QT功能,那么必须要下载QT的源码,还必须要一个是用QT的编译环境,可以是VS2010,也可以是专用 ...

  7. Windows下node.js安装及环境配置

    1. 安装 官网下载node.js的安装版,一路next,中间可以自定义安装路径 完成后安装目录内容如下 cmd下检查是否安装成功 新版Node.js已自带npm,所以安装Node.js时会一起安装, ...

  8. windows下跑python flask,环境配置

    首先声明一下,我安装的是python 2.7. 第一步:下载easy_setup.py 下载地址:https://pypi.python.org/pypi/setuptools 这个下载地址真心难找, ...

  9. Windows下安装Python模块时环境配置

    “Win +R”打开cmd终端,如果直接在里面使用pip命令的时候,要么出现“syntax invalid”,要么出现: 'pip' is not recognized as an internal ...

随机推荐

  1. php中需要注意的函数(持续更新)

    explode 函数 $a = null; explode("#",$a); //不会报错会返回一个只包含空字符串的数组

  2. node.js 调用mysql 数据库

    1.在package.json中添加mysql依赖 命令:npm install mysql --save 2.项目中添加mysql文件夹 > 文件夹下创建config文件夹,并在config下 ...

  3. git pull 的时候 把本地的修改 覆盖远程端

    首先,git pull 可以分成两步,git fetch 和git merge 使用git branch -a可以看出来    git merge 相当于当前分支  和 origin/master分支 ...

  4. 【DRF框架】序列化组件——字段验证

    单个字段的验证 1.在序列化器里定义校验字段的钩子方法   validate_字段 2.获取字段的数据 3.验证不通过,抛出异常  raise serializers.ValidationError( ...

  5. CEIWEI CommTone串口调试精灵7.1 串口调试 串口工具

    CEIWEI CommTone串口调试精灵   是一款功能强大的串行端口通信调试软件,内嵌超过100种标准的CRC校验功能,并支校验结果高低位字节前导转换:支持批量协议调试,并支持文件.16进制.UN ...

  6. Bash基础——Shell脚本内部常用环境变量

    $@和$*区别 不加引号的时候没区别 #! /usr/bin/bash function print_args_at { printf "%s\n" $@ echo $@ } fu ...

  7. Windows10 临时将线程绑定至指定CPU的方法

    本文首发:https://www.somata.work/2019/WindowsThreadBind.html 将线程绑定至指定CPU,这个应该时很多管理员需要了解认知的操作了吧,这样可以在一定程度 ...

  8. Java学习笔记——第3篇

    面向对象 结构化程序的任何一个结构都具有唯一的入口和唯一的出口,并且程序不会出现死循环. 虽然Java是面向对象的,但Java的方法里则是一种结构化的程序流. 面向对象的基本思想:类.对象.继承.封装 ...

  9. Java锁--CountDownLatch

    转载请注明出处:http://www.cnblogs.com/skywang12345/p/3533887.html CountDownLatch简介 CountDownLatch是一个同步辅助类,在 ...

  10. postgresql学习笔记--基础篇

    1. 客户端程序和服务器端程序 1.1 客户端程序 Command Example Describe clusterdb clusterdb -h pghost1 -p 1921 -d mydb Cl ...