Windows下OpenFOAM开发及使用环境配置指南 (1)【转载】
转载自: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)【转载】的更多相关文章
- Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】
转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...
- 【Qt】Qt在Windows下的开发与调试环境配置
前文已经交待了从源码编译Qt自定义版本.现在可以开始配置一下开发与调试程序并写个Hello World了. 1. IDE 虽然Qt官方有VS插件使我们可以在VisualStudio中开发Qt应用,但我 ...
- Windows下的Anaconda+OpenCV的环境配置
Windows下的Anaconda+OpenCV的环境配置
- windows下安装node.js及环境配置、部署项目
windows下安装node.js及环境配置.部署项目 一.总结 一句话总结: 安装nodejs软件:就像普普通通的的软件那样安装 配置nodejs安装的全局模块的环境变量 并且安装cnpm(比如cn ...
- windows下vagrant使用及工作环境配置
环境搭建记录(2014-08-01) 操作系统: Win7旗舰版 Vagrant版本: 1.6 搭建过程 安装vagrant 右键打开安装包按照提示安装即可 安装后会自动把vagrant添加到环境变量 ...
- Windows下QT4.8.4编译环境的搭建(转载http://blog.csdn.net/bestgonghuibin/article/details/38933141)
开始使用QT了,所以第一步就是把环境搭起来,这里小记一下,以免以后忘记. 1. 下载安装文件 要使用QT功能,那么必须要下载QT的源码,还必须要一个是用QT的编译环境,可以是VS2010,也可以是专用 ...
- Windows下node.js安装及环境配置
1. 安装 官网下载node.js的安装版,一路next,中间可以自定义安装路径 完成后安装目录内容如下 cmd下检查是否安装成功 新版Node.js已自带npm,所以安装Node.js时会一起安装, ...
- windows下跑python flask,环境配置
首先声明一下,我安装的是python 2.7. 第一步:下载easy_setup.py 下载地址:https://pypi.python.org/pypi/setuptools 这个下载地址真心难找, ...
- Windows下安装Python模块时环境配置
“Win +R”打开cmd终端,如果直接在里面使用pip命令的时候,要么出现“syntax invalid”,要么出现: 'pip' is not recognized as an internal ...
随机推荐
- nodejs之express的中间件
express中间件分成三种 内置中间件 static 自定义中间件 第三方中间件 (body-parser) (拦截器) 全局自定义中间件 在请求接口时 有几个接口都要验证传来的内容是否存在或者是否 ...
- BHD钱包部署【生态池/合作池】
前序 BHD网址:https://btchd.org/#wallet 注:我这里是centos7, 所以我选linuxPC 部署 解压与配置 tar -zxf bhd-v1.3.4.0-d909c0e ...
- 如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务
Jerry 2016年在学习SAP CDS view时,曾经写过一个CDS view的自学系列,其中有一篇提到了一个很方便的注解: @OData.publish: true 加上这个注解的CDS vi ...
- unittest 运行slenium(一)---创建配置类
文章主要是创建: log : 日志文件 excel :文档的读写 ini 及 yaml :文件的读取 一:创建log日志文件 主要是对logging框架进行二次封装并输出自己需要的日志格式 1. 首先 ...
- 记录java+testng运行selenium(二)---定义元素类及浏览器
一: 元素类 整体思路: 1. 根据状态可分可见和不可见两种 2. 同一个路径可以查找单个元素或多个元素 3. 获取元素text或者指定的value值 4. selenium对元素操作有两种,一是通过 ...
- 【DevOps】在CentOS中安装DockerCE
准备 安装好CentOS7,拥有root账号密码,使用客户端登录. 安装 启动进入root用户,复制以下代码执行即可 yum install -y yum-utils device-mapper-pe ...
- FastDateFormat日期工具类
原文:https://blog.csdn.net/u013823538/article/details/80197476 public class DateUtil { public static f ...
- rabbitMq实现延时队列
原文:https://my.oschina.net/u/3266761/blog/1926588 rabbitMq是受欢迎的消息中间件之一,相比其他的消息中间件,具有高并发的特性(天生具备高并发高可用 ...
- webpack搭建组件库相关知识
1 .inquirer.js —— 一个用户与命令行交互的工具 2. existsSync 方法说明: 以同步的方法检测目录是否存在. 如果目录存在 返回 true ,如果目录不存在 返回false语 ...
- 02 Spring IOC
我们先看看我们在没有spring之前,程序间是怎么解耦的.创建一个maven工程,整体的目录结构 1.创建dao层 IAccountDao.java package com.itzn.dao; pub ...