icoFoam 解析

icoFoam 是 OpenFOAM User Guide 里面的算例用的一个计算程序。它的源程序位于 $FOAM_SOLVERS/incompressible/icoFoam, 进入到这个目录里,用 tree 会输出以下内容(注:#及其后属于注释,并不是使用该命令的输出结果):

foam-extend 社区版本的来历

很多人都有关于 OpenFOAM 及其分支版本的问题,其中有两个版本是 OpenFOAM 和 foam-extend。 在ExtendProjectPreamble 中有关于 foam-extend 社区版本来历的说明。 Henry Weller 和 Hrvoje Jasak 之间的一些通信记录显示了 OpenFOAM 版本之间的分歧。 现将其中的部分通信翻译如下,让大家了解一下 FOAM 的前世今生。


09/30/2004 01:45 PM

Dear Dr. Jasak,

我建议将 FOAM 开源并关闭 Nabla 公司,这样的话,我们都可以自由地追求我们各个希望的未来(译注:FOAM 的未来)。

Henry G. Weller
Managing Director
Nabla Ltd

controlDict 解析

controlDict 是 OpenFOAM 使用中控制计算步长、写数据频率等重要的文件。

OpenFOAM 并行计算

现在,大多数研究生使用的工作电脑或笔记本都是多核多线程的 CPU,在 OpenFOAM 中使用并行计算也非常方便。

Step 1: 拷贝一个网格分割文件到你的工作文件夹:

$ cp $FOAMRUN/tutorials/multiphase/interFoam/laminar/damBreak/system/decomposeParDict ./system/

Step 2: 根据你的 CPU 和网格的情况进行分割,需要留出一部分 CPU 资源进行系统处理或其他工作。各区块网格数尽量平均化。

blockMesh 彩蛋 -- 指定网格集合(块)

在 OpenFOAM 的运用中,时常会使用 cellSet,faceSet 等来操作网格。在网格生成后往往有诸多不变,特别是当网格的复杂度增加时,不一定能准确锁定需要操作的网格。

如果是用 blockMesh 来生成网格,则可用在 blocks(); 内直接指定 set 的名称。如:

blocks
(
    hex ( 0 1 2 3 4 5 6 7 ) set1 ( 10 20 1) simpleGrading ( 1 1 1 )
    hex ( 4 5 6 7 8 9 10 11 ) set1 ( 10 10 1) simpleGrading ( 1 1 1 )
);

表示以 0,1,2,3,4,5,6,7 为顶点,生成 10x20x1 的网格,其集合的名字为 set1;以 4,5,6,7,8,9,10,11 为顶点,生成 10x10x1 的网格,并合到上一个 set1 的集合中。 因此,set1 有 300 个网格。

Kuchemann 的故事

Kuchemann,一看这名字就知道是德国人,全名 Dietrich Küchemann。1930 年,19 岁的他进入了当时世界上最 NB 的大学 Goettingen 大学。起初,他不是学流体的,而是理论物理的,他的导师就是大牛 M. Born。如果希特勒不上台,也许他会沿着理论物理学的道路走下去。然而 1933 年希特勒上台,推行歧视犹太人政策改变了这一切,Goettingen 大学里面同犹太人沾亲带故的人纷纷远走他乡,这也包括了 Born。为此,Kuchemann 郁闷坏了,因为他找不到一个他看得上眼的大师级的导师。于是他翻开 G 大的研究生招生手册,翻来翻去,终于找到了一个没有走的大牛——近代流体力学大师 Prandtl。于是他就拜 Prandtl 为师,改学空气动力学起来。在 Prandtl 和 Tollmien(发现 T-S 波的那个大牛)的指导下,25岁就获得了博士学位。

欧一直怀疑Kuchemann是个种族主义者,即使不是,也肯定是欧洲至上主义者。这家伙特别瞧不起美国这个暴发户。二战后随着美国的崛起和欧洲的衰落,欧洲科学家纷纷踏上移民美国的之路,美国屡次三番的邀请他去,他就是不去,他说他是欧洲人,他要呆在欧洲,于是他宁可去了英国,也不去美国。他在英国一直呆到1976年去世。

blockMeshDict 文件解析及格式

blockMeshDict 文件是 OpenFOAM 生成网格的方法之一 blockMesh 所需要使用的配置文件,位于 constant/polyMesh/。 以 cavity 为例,其基本结构如下:

von Neumann的故事

von Neumann是天才里面的天才。据说他6岁能心算8位数除法,8岁时已掌握了微积分,12岁时能读波莱尔的著作《函数论》……。

有一次,冯·诺伊曼对他的朋友说:"我能背诵《双城记》"。人家就挑了几章作试验,果然他-一背诵如流。他对于圆周率π的小数位数,自然对数的底e的数值以及多位数的平方数和立方数……

Batchelor 的故事

Batchelor 是GI Taylor之后,剑桥学派的领袖。不过他其实并不是英国人,而是澳大利亚人。他从小在墨尔本长大。第二次世界大战其间,在从事了一个航空相关的课题研究中,他对湍流研究产生了浓厚的兴趣,尤其是GI Taylor三十年代关于湍流研究的工作。于是他就给Taylor写信,想做他的research student。Taylor很快同意了。Batchelor是一个很跋扈的人,说话颇有些像黑社会的老大的风范。他有一个死党和跟屁虫。他非常想让这个跟屁虫跟他一块到英国去研究湍流,省得他一个人寂寞。这个死党呢,大学学的是跟湍流八竿子打不着的核物理。这并不要紧,Batchelor充分发挥了他黑社会老大般的威严对他说,“跟我到英国找Taylor研究湍流去吧!”这个铁杆兄弟也不含糊,立刻说,好,跟老大走。不过走前,你回答我两个问题:谁是 G.I. Taylor? 湍流是什么玩艺?前一个问题好回答,后一个问题,Batchelor究竟是怎么回答的,是威逼利诱,还是晓之以理动之以情说服的,大家一直为这个问题争论了几十年。总之,最后两人都去了英国。见了Taylor呢,两人都失望了,原来Taylor已经不搞湍流了,全力搞什么水下爆炸之类的跟军事有关的课题(估计这个来钱)。好在大师就是大师,让这两个年轻人自编自导自己去折腾,在旁边指导指导。最后两人都成为大师。

van Leer的故事

Van Leer 原先同Roe关系非常的好。后来Roe发表了著名的后来用他名字命名的Roe格式,Van Leer就有点座不住了。因为他一直相信他比Roe高明那么一点点。于是他决心超过Roe。当时迎风格式在应用上有两个发展方向,一个是Roe格式为代表的通量差分分裂类型,令一个就是矢通量差分类型,典型代表就是Steger-Warming格式。很快van Leer找到了突破口,他注意到Steger-Warming格式有个不大不小的缺陷,通量分裂是不可微的,这在计算激波时候,有可能发生过冲现象。于是 van Leer对此做了一番改造,提出了一个满足可微条件的分裂。van Leer兴高采烈地投到杂志社,然而令他失望的是,杂志社把他给拒绝了。他可受不了了,于是自己掏钱,飞到西伯利亚,向Godunov求教。Godunov看过后大加赞赏。这下可乐坏van Leer。既然老大首肯了,谁还敢说不字,这篇文章顺利出版。后来这个格式就用van Leer本人的名字命名并流行起来,终于,他还是跟Roe平起平坐了。

Pages

Subscribe to rheo.works RSS