OpenFOAM
二
03
11月
2009
进退维谷?
OpenFOAM发生一点事,弄得其实不是很愉快。
似乎是开发者跟社区的一些理念上的争执,我跟一些朋友和关键人物讨论过,也觉得蛮难办的。
预感,这件事不会短期内很好的解决。这其实有些伤社区的和气,多少让人有些沮丧,而且现在的能帮助他人的社区高手团队之间,都不是那么顺畅,这其实实在是不愿意看到的。社区有些消沉,高手不愿意发言。
其实,我的立场没那么鲜明,我只是希望在Documentation这一点上,能给予社区更多的宽容,因为Documentation实在是太需要了,可是公司,似乎认定这点有损其核心利益。
能够理解,但实在是感觉遗憾。
三
03
6月
2009
大牛的形成
一看湍流,心里就湍了起来,心中琢磨,这些大牛们,怎么有这么多的知识量,后来一看人家出道历史,也就颇感欣慰了,像Moin,Moser,Adrain,Spalart都早在八十年代就出名了,哎,没法比啊。还有像Jimenz,人家名震江湖的时候,俺还在爬树吃榆树钱儿呢。
如果可能的话,你现在作出优秀的成绩,需要至少二十年后才能有可能确立你在学术上的权威地位啊。
当上权威之后,究竟好不好呢,呵呵。咱还是不说了吧
三
27
5月
2009
哥们儿们,是哪个难,您可想过?
我一直以来,在学习湍流,并琢磨其数值模拟的思路。
许多哥们都说OpenFOAM难,但其实比起湍流研究,那个更难呢。我想还是湍流更难一些。
那天,Z君说,超低雷诺数的问题,我觉得,也不容易,S君也在说两相流的问题,也不简单,这些都是比简单的看代码和安装更难的问题。
如果,国内的诸多讨论,比例上能有至少50%以上的讨论涉及到的是非程序上的基本问题,那就好了,斯美事哉!
倘若,大家能容忍我,给出一点点我的建议的话:
1 请您尽力思考,不要总问怎么安装,为什么安装错的问题,学而不思则罔么,多思考,仔细琢磨,你不会比高手差的;说真话,仔细琢磨UserGuide,对于绝大多数的安装和使用已经应付的绰绰有余了。
2 请您尽力先去广泛搜索对一个问题的解答,Google等是极好的助手,基本上可以肯定的是,你能碰到的问题,基本上80%其他人都遇见过,并有答案,多搜索!否则就会被老外们回复RTFM——一个带脏字的短语,意思是叫你去读手册,少来问低劣问题。
3 请您不要畏惧英文,我自己还是觉得英文的流体论坛档次高些,大家要努力去挖掘,讨论,会受益匪浅的。
二
28
4月
2009
OpenFOAM不是最重要的
对不起大家,一直没有时间更新我的主页,大概等我毕业后,那时才有空更新吧。
1 关于筹建中文的OpenFOAM社区,其实,我已经认识了几位OpenFOAM的使用者了,还有很多人联系我之后就再也无消息了,大概都很忙吧。不过,虽然我期待能有OpenFOAM中国社区,但是需要有人进行经济上支持才行。而且,筹建的目的对我来说也很简单,那就是是为了CFD在中国更扎实的增长,而不是一个代码,这么来说OpenFOAM不是最重要的;(注意,在CFD-Online上已经有专门的板块为OpenFOAM了,可见OpenFOAM在业内的影响力,已经极其非同小可了,我没看见中文流体网上有这么个平台还)
2 OpenFOAM不是最重要的,许多自称为学者研究生的用OpenFOAM,但是仍存心不良,但我算谁呢,怎能管着这样的事呢?同胞们,OpenFOAM的使用,最美好的期待,不仅仅是给盗版的Fluent找替代品,而是要明白CFD的核心。我看高校中用ANSYS成泛滥趋势,极其泛滥,(武大校长的十条建议,我觉得实在是紧迫,中国教育赶紧改革,杀出一条血路吧,太乱了),但是总感觉怪怪的,人家公司的东西,你是在给人家ANSYS公司做软件测试报告么?这,十分影响中国的核心技术能力的发展——应该坚决打击盗版,用盗版的难免是贪心、急功近利、胆小附势的体现。
3 OpenFOAM不是最重要的,不是终极目的,而是CFD,OpenFOAM只是一个手段,要努力专研湍流理论,数值思想,和流体力学等,C++的展现再怎么难,也绝对难不过湍流的难,那可是navier-stokes啊!
4 OpenFOAM不是最重要的,有限差分法,显示过滤技术,读读文章就会发现,到现在仍然有极其重要的支持社群,愿OpenFOAM的应用,在中国对CFD理论的研究,能点燃热情,而不是误导热情!
怎么感觉写的这么乱,看来现在的汉语水平越来越差了,大家容忍点吧。
祝兄弟们一切顺利。
二
14
4月
2009
Building on ssc, an error
http://www.cfd-online.com/cgi-bin/OpenFOAM_Discus/show.cgi?tpc=1&post=8988#POST8988
Try replacing uint64_t with 'unsigned long long' (or anything else which is 64 bit unsigned integer)
二
14
4月
2009
Build Gcc 4.4.0
Though no provision from the ftp servers, I used svn to download the new version 4.4.0 with fresh expectation. For OpenFOAM,
----------------------------------------------------------------------------tar xzf gcc-4.4.0.tgz
mkdir gcc-4.4.0-obj
cd gcc-4.4.0-obj
../gcc-4.4.0/configure --prefix=$HOME/tmp/gcc/okay/gcc-4.4.0 --exec-prefix=$HOME/tmp/gcc/okay/gcc-4.4.0 --enable-languages=c,c++ --enable-shared --with-gmp=/usr --with-mpfr=$HOME/OpenFOAM/ThirdParty/mpfr-2.4.1
gmake bootstrap
gmake install
tar cvzf gcc-4.4.0.bin.tgz gcc-4.4.0
and install it in ~/OpenFOAM/ThirdParty
mv gcc-4.4.0.bin.tgz ~/OpenFOAM/ThirdParty
cd ~/OpenFOAM/ThirdParty
tar xzf gcc-4.4.0.bin.tgz
----------------------------------------------------------------------------
Note a new platform dir should be made b4 using it of cause.
关于OpenFOAM推荐链接(Links of OpenFOAM)
关于OpenFOAM,学了也有一段时间了,突然发现,学习他的人越来越多。
希望国内做CFD和湍流的人能越来越掌握这门核心技术本质。
下面是几个网站,我时常去逛去学习的,附有一些我的粗见,不当之处,请众同行指教。
1. http://openfoam.cfd-online.com/forum/
推荐级别:* * * * *
推荐理由:这个是最有用的,A good Community是十分重要的,OpenFOAM在这方面做的还不是很成熟,照看的人也的确不是很多,毕竟是开源的么,也没有人给钱,:),但是抱怨不能阻挡交流的热情和需要,每个学OpenFOAM的人基本上都在那上面混。要多发言啊,不过,不要总问傻问题,大牛们累得时候基本上都懒得理这些问题哈
2. http://sourceforge.net/projects/foam
推荐级别:* * * *
推荐理由:下载OpenFOAM各大版本用的,不过基本上许多人都用最新版本,当然也有例外,见下面一个链接。
3. http://openfoam-extend.wiki.sourceforge.net/
推荐级别:* * * *
推荐理 由:这个是Extend版本,这个版本有许多好处,相当于某种开发版,当然都是牛人们在开发啊,所以里面有许多东西很好用,实在稳定版中你可能找不到的,不过用不用看你,但是你至少了解一下这里有个OpenFOAM仓库。:)
推荐级别:* * * * *
推荐理由:这个类似,一对学生学习OpenFOAM的课堂笔记,当然啦,有的学生学的特别好,所以网站主管,就把这些精华品,收录整理在这,你说你能不看么?比如说你什么编译不会啊,通不过啊,大家都是现在这顶上搜索的!
5. http://www.h.jasak.dial.pipex.com/
推荐级别:* *
推荐理由:这是Jasak老大的个人主页,“Jasak是谁?”呵呵,做OpenFOAM连他都不认得,那就别做啦。OpenFOAM开发团队的元老是这么几个:
Henry Weller, Hrvoje Jasak, Eugene de Villier, Mattijs Janssens, Gavin Tabor ...
当然了,Gosman他老人家咱就不算啦哈。
6. http://powerlab.fsb.hr/ped/kturbo/OpenFOAM/
推荐级别:* * * *
推荐理由:你若真想研究OpenFOAM,这么重要的同行和伙伴,怎能忽视?
推荐级别:* * * * *
推荐理由:OpenFOAM毕竟是CFD的一种产品,这个网站是CFD全球最牛的了吧,怎能忽视呢?我不是瞧不起中文流体网,不过觉得那个网站跟这个还是远远没法比拚。大家有不会的,可以上来问问。
Some thoughts on LES (Roadmap toward learning CFD)
Since my thesis is about LES, with tears and bloods I have spent 2 years on it.
Unfortunately, my department is not a place well done in Fluid Dynamics, though our major is wind Resistence of structures (Actually Bridge Stuctures).
That was really a hard time for me, and now too!
If you let me say sth if there is any word for the new beginners, I would say "yes"!
You know, through pain and suffering, how much I hope that all you guys who will be engaged in this subject won't go a curved line any longer as I was, may the Lord bless u, and trust in him!
Here's the roadmap and some thoughts of mine.
- Make it clear what you are really looking for! So that you can make a good energy and time planning. Remember, LES is more energetic on "turbulence", solution to turbulence is her strength! So
that you will know which should i select, LES or RANS, OpenSource or Commercial Codes, parallel or not.
- Prepare at least one season to learn C++, it will be of great help if you know what is OOP.
- Spent one season on fluid Dynamics and at the end of the season dont forget to get a big picture of turbulence flow! It is above all to say the knowledge of flow and turbulence flow is the basis
of successful LES, I strongly doubt those who don't understand what is Kolmogorov's law, and meanwhile say he is performing turbulence modeling, it's funny!
- Ask experts! (I mean CFD experts) "which testcase is better for your subject! KEY!!!"
- Practice these testcases now, reproduce them (this means you need to download the benchmarks of these cases from internet)
- After 1 year, you see, this 1 year including your increasement of knowledge in CFD codes, say, OpenFOAM. (Do remember, it is indeeeeeeed in this year you will turn books' knowledge about
turbulence flow simulation into yours!)
- Here, you are ready to do some good job! And I wish you a good success in your field!
关于OpenFOAM的安装问题
或许大家注意到,我没有写关于OpenFOAM的安装的问题。原因是这样的,
- 赶紧扔掉windows,cygwin那玩意……哎,除非你精力比我高三倍,或者你是微软的小弟弟。使用linux!
- OpenFOAM在linux下的安装的确很简单。
-
如果你还是觉得难得话,多半是因为你的linux知识太缺乏,不要着急,不要气馁,慢慢熟悉linux环境就好了。linux并不神秘,现在许多linux都有想Desktop开发的趋势,也就是说越来越好上手了,哈哈。我常看见新手没设置环境变量就用啊,或者不知道怎么设置啊,bashrc读不懂啊之类的,其实这些基本的linux功夫,是逃不掉的,慢慢学吧,两三个星期就好了。连这也觉得难,那之后你就别做了,嗬嗬。
- 记住如果不玩什么美化桌面之类的,我,(我是说我)推荐使用openSUSE,嘿嘿,多好啊。你也省去许多麻烦,据说开发者们就用的这个系统啊。
- 32位63位都无所谓,不过如果你需要从头编译的话话,64位的有点会不大顺畅,哈哈。
- 记住,调整好心态,要记住,shell模式的不是次等的,而是更优秀的。什么是shell呢,就是说命令行模式,微软下叫做命令行,*nux下叫做shell操作,shell语言等等,什么bash shell, csh, tsch,等等一堆,我喜欢bash,哈哈
- 安装真的很简单,去OpenFOAM主页上,或者UG(UserGuide)上都可以看到那几步。
- 其实即使debug调试重新编译也不是很难,难是难在非linux平台,难在并行调试等。
一点前车之鉴
最近有些同行来询问一些关于OpenFOAM的事。
其实坦白的讲,我觉得IC的这些人是很厉害的,人家也是花了好久的时间弄出来的,大概,我猜,又经过商业化那几年的包装,所以其实软件包实在是不简单的,指望一口吞下个胖子我觉得未免太难了些。
我说这话,并不是想打击初学者,只是从学术角度,希望(如果不冒昧的话)初学者,先定位自己的情况才是,你究竟有几年作论文的时间,你究竟是想:
1. 用的好就行,还是
2. 作CFD学问?
对于想用得好的人,我觉得,Fluent比OpenFOAM自然强大许多,为什么不用商业软件呢?
想做CFD的,那可真要静下心来了,哈哈。
OpenFOAM简介
1. 名词解释
CFD: Computational Fluid Dynamics
OpenFOAM: Open Source Field Operation and Manipulation
OpenFOAM可以说是现今CFD开源代码中最为出色的一个!
现今是指到目前为止2008-5-1,以后能否有更出色的,我觉得,难!
2. 语言角度欣赏
语言角度,想学习OpenFOAM,一定要学好C++,而且市场是那些C++的书多半都远远不够,那些书,都帮助不了你作大事!
OpenFOAM完全的dev版,其原始代码未编译前,多达100M,可见其工程之巨、涉足面之广。
准确点来讲,OpenFOAM是一个C++库,这个使用C++ STL的人都明白这点。它动用到C++最顶端的使用方法,OpenFOAM的历史比C++都早,许多C++用法,让人叹为观止,让人知道,为什么学语言,工程角度来讲,为什么要学C++,为什么C++是做大事的!
我观察下来:
C++的这些思想,是OpenFOAM用的极为频繁的,也是用的极其的令人赏心悦目的,也是想学的人一定要了解的。
- 类
- 函数及运算符重载
- 继承、虚函数、模板
- 异常处理
- 文件的输入和输出
- STL(容器,张量,场,算法)
- 动态内存分配
另外,初学的人,也一再想为什么不在windows下作,我想这也是人们被微软奴役的太久了,不当奴隶也难了。一句话,*nux的文件系统是区分大小写的,而windows的文件系统不行!
有人曾批评说,为什么一定要区分大小写?我想对这些朋友的劝勉是,在没看过代码,没接触过软件大工程,先不要随意评断人家做事的能力,区分大小写是有绝对理由的,以及很好的目的的。
除了语言之外,为了OpenFOAM,我们还需要掌握其它一些计算机知识点,这包括:
- *nux
- Shell Programming
- Vi or Emacs
- Parallel Programming including MPI...
这些知识点,我很想接下来的文章中逐步描述我的的一些学习经验。不知到时有没有这个可能。
3. CFD赏析
代码的思想其实传承的是Ferziger的"Computational Methods for Fluid Dynamics"一书因此,这本书,实在是经典之经典,想入门者,Highly Recommended!
这次先写到这。
OpenFOAM的杰出的两大类库
继续尝试看OpenFOAM的源代码,发现
src目录下一共有两个最重要的文件夹,
一个是src/OpenFOAM
另一个是src/finiteVolume
前者是OpenFOAM为通用CFD搭建的最底层的必需品,
多为一些基础类,容器,算法,等类似于STL一般的“标准”库,
我更喜欢称之为“CFDTL"!
后者是OpenFOAM所采用的有限体积法框架下的铺展。
这个库,我更喜欢称之为“FVTL"!
我希望日后的教材书上采用我的这两个命名。:)
值得注意的是,最底层的显然没有有限体积法的代码大,
后者编译出来多达300M,
而前者相对就少了许多——100M左右。
而这两个在实际编译的时候,也最容易出问题,
那么探测的手段,就是test文件夹。
当然,这些探测文件,显然需要明白代码内部的人才可以去探测。
OpenFOAM-1.5 出炉
8 评论
-
#1
你好!看了你写的文章,收获不少!很感谢你能给我们分享你的心得!
我想请问你个关于openFOAM问题,我试着安装过,几次都没编译成功
你能否给我的点建议!我用的是redflag 6.0桌面版的,对了你是用
那个版本LINUX编译成功的?期待你的回复!
MY Email:dengbin07@163.com
qq:253383193
tks!
Dean -
#2
对这句话深有同感:
OpenFOAM像个很深的洞,消耗了我许多的精力。 -
#3
呵呵,说得好,说得好
继续啊~ -
#4
老魏,您的博客我看了好几遍。作为OpenFOAM的前辈,您给我们这些后来的FOAM-er们的建议非常宝贵。也很感谢您在我安装OpenFOAM过程中的无私指点。同时期待着分享您更多的经验和科研成果。最后,祝您一切顺利!
-
#5
支持中文的OpenFOAM社区,发现国内用OpenFOAM还处于起步阶段,相关的配套网站确实甚为欠缺。随着国内用户的快速增加,迫切需要建立一个社区供大家交流讨论。
如果哪方面需要我帮忙的,请随时给我发邮件。 -
#6
Hi, Chiven, your email?
-
#7
chiven77那个email就是我了。chiven是我上英文课时取英文名字而已。
-
#8
老魏,加油!
期盼您早日毕业! 
老魏
For God so loved the world, that he gave his only Son,
that whoever believes in him should not perish but have eternal life!

