转载自: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. c#的异步处理思路和vue前端中异步处理思路比较

    前语:目前工作在做的项目是前端基于vue的组件式开发,通过api接口调用,后端数据逻辑是一个c#实现的WCF服务 1.总结自己在c# .NET 4.5后的新异步方式  async搭配await来实现  ...

  2. iOS毛玻璃效果的实现方法

    ios开发中常常用到的毛玻璃效果实现方法 iOS8以后使用系统里的UIBlurEffect可以实现,UIBlurEffect继承自UIVisualEffect UIBlurEffectStyle有三个 ...

  3. SQL SERVER-Job中Operators搬迁脚本

    选中operators按F7,然后选中对象,生成脚本 USE [msdb] GO /****** Object: Operator [DB_ITDESK] Script Date: 5/30/2019 ...

  4. c# 接口实现

  5. Django中使用geetest验证

    一.geetest的使用方法 首先需要在setting中配置好文件 GEE_TEST = { "gee_test_access_id": "37ca5631edd1e88 ...

  6. Shell脚本字符串匹配及日常命令工具 - 用法总结(技巧指南)

    Shell提供了很多字符串和文件处理的命令,如awk.expr.grep.sed等命令,还有文件的排序.合并和分割等一系列的操作命令.下面重点总结下Shell字符串处理.文本处理以及各类命令及函数用法 ...

  7. PHP字符串截取,计算字符串长度

    /** * 字符串截取,支持中文和其他编码 * @param [string] $str [字符串] * @param integer $start [起始位置] * @param integer $ ...

  8. P1078 文化之旅[最短路]

    题目背景 本题是错题,后来被证明没有靠谱的多项式复杂度的做法.测试数据非常的水,各种玄学做法都可以通过(比如反着扫),不代表算法正确.因此本题题目和数据仅供参考. 题目描述 有一位使者要游历各国,他每 ...

  9. 配置ubuntu18.04

    关于Ubuntu18.04的配置: 首先在装好系统后需要配置VMware Tools,这个会在虚拟机退出全屏的时候给一个帮助链接,在帮助链接中有详细的教程. 教程链接:https://docs.vmw ...

  10. FreeMarker生成word

    FreeMarker生成word数据填充是通过,Map填充. Map dataMap = new HashMap<String, Object>(); List<User> l ...