声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2553|回复: 0

[其它软件] 汪洋博士:如何通过自己的努力学习OpenFOAM?

[复制链接]
发表于 2021-3-31 16:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
导读:本文由武汉理工大学汪博士根据自学OpenFOAM的亲身经历,总结了学习OpenFOAM最有价值的资料和个人经验。诚邀各位OpenFOAM学习者报名4月1日汪老师的公开课《走近自由、开源计算流体软件—我的OpenFOAM启蒙课》,支持永久反复回看,详情见后文。

一、引言

由于在群里,经常看到小白们天天问一些问题,回想起自己在入门的时候,也是在很多大神的帮助下,才有所进展,所以想写点东西帮助下小白怎么入门。但是本文并不是写几个流程,跑几个算例来教小白,这种粗浅的案例式教程比比皆是。本文主要集中在如何通过自己的努力学习OpenFOAM。
1.png
图片源自网络

二、入门准备

1. 思想准备

在学习OpenFOAM过程中,一定要避免完美主义倾向,切记!因为OpenFOAM涉及的内容特别多,你点点滴滴都想搞懂,一定会陷入细节的黑洞不能自拔。所以在很多时候,当个漂亮的名词挺好。一定要认识到挫败感很强,这个感觉一直贯穿我的学习过程中。所以错了就弥补。
2.gif
图片源自网络

2. Linux相关知识准备

首先最好有一台干净的电脑装Linux,最好装Ubuntu18.04LTS版本。然后找几个视频教程,越短越好,适应下Linux命令行。强烈推荐学习下面这门课,对于今后使用OpenFOAM会有极大帮助,需要做作业,反复练习。
3.png

网址:
https://missing-semester-cn.github.io/

https://www.bilibili.com/video/B ... 7407778522322643506

https://www.bilibili.com/video/BV11T4y1G73e

3. 安装OpenFOAM

很多人不知道选择哪个版本,用什么。实际上都差不多。选择最容易安装的版本,安装链接如下。由于是Ubuntu,所以按照下面三步就可以安装上OpenFOAM8,命令行中输入。如果不了解命令行可以查询一下官网。
https://openfoam.org/download/8-ubuntu/openfoam.org


  • Step1

sudo sh -c "wget -O - https://dl.openfoam.org/gpg.key | apt-key add -"sudo add-apt-repository http://dl.openfoam.org/ubuntu
  • Step2


sudo apt-get update
  • Step3

sudo apt-get -y install openfoam8相信学到一定程度之后,你的安装水平会提高的。以至于可以多版本共存。

三、正式入门
入门这个环节,推荐大家系统耐心的去学习。不要觉得太花时间,应该直入科研主题,这样做反而会浪费时间。从目前学过的资料中,排序如下

1. wolfDy相关课程

我推崇热那亚大学的培训。这个页面是个巨大的宝库,要特别重视。里面有PPT和对应的算例资料。甚至连C++和linux都有入门教程。实际上按照这个资料走一遍,就入门了。
4.png
网址:
http://www.wolfdynamics.com/tutorials.html?layout=edit&id=50

2. OpenFOAM.com版本

这是com版的官方给的入门资料,也是相当详实和丰富。尤其是三周课程,非常值得一学。
5.png
网址:
https://wiki.openfoam.com/%22first_glimpse%22_series

https://wiki.openfoam.com/%223_weeks%22_series

3. 研发埠的课程

推荐DTK大学,陈昊大神的课,他研究对象应该是波浪。
6.png

4. József Nagy

他是上述三周课程的编委之一,其中部分内容会在三周课程中出现,有所重复。首先看basic基础视频,讲的非常清晰;其次看intermediate中级视频。
7.png
网址:
https://www.youtube.com/watch?v= ... TS-ALl&index=14

5. Development - Holzmann CFD

哥们是德国人,网站上很有一些宝贝。尤其是想学好SnappyHexMesh的人。唯一的缺点是要收费,但是还是挺值得的。免费内容也相当精致。
8.png
网址:
https://www.youtube.com/channel/UCLMLJc3tV_tNRlWoVFaSRGw

6. 瑞典Chalmers大学博士课程

授课内容较难,PPT图片不多,文字描述操作步骤,总体来说没有什么问题,都可以实现。由于是博士生课程,所以这门课更偏向编程一点,不过也还好,不是特别难。往年很多学生都要自己写求解器的。所以,有兴趣的朋友可以认真看一下历年相关的课件和作品集。
9.png
网址:
http://www.tfd.chalmers.se/~hani/kurser/OS_CFD/

7. C++入门课程

认为是很不错的C++入门教程,这个课程有很多优点,我是编程小白,就不一一说明了。绝对值得跟一下。
10.png
网址:
https://www.bilibili.com/video/av68697716?p=11

8. CFD理论补充

① 快速入门CFD教材

唯一一本,推荐看下安德森的那么薄薄的计算流体力学作为完整框架性学习。那些从入门到放弃的CFD就再说吧。

② CFD理论基础课-Dr Aidan Wimshurst
11.png
12.png
分为三门课程,可能后续还要出。涵盖的内容,主要是一维、二维扩散方程,扩散对流方程,三类边界条件的实现 (Dirichlet, Von Nuemann),集中常见的离散格式,非结构化网格,网格质量评价标准等内容。内容娓娓道来,推导相当清晰,例题相当细致,每一步都不省略,并且提供了Excel,Python两种实现方式。非常推荐,唯一的缺点,有点贵。
网址:
https://www.udemy.com/course/com ... undamentals-course/

③ FluidMechanics 101课程

这是Dr Aidan Wimshurst的专栏,没有固定的逻辑和顺序,讲解过程逻辑清晰,英式口音。重要的是,授课逻辑偏向OpenFOAM,内容以湍流模型,PISO,SIMPLE等算法实现,也会扣一些细节比如网格的非正交修正等。由于OF的很多算法与教科书的是有一定区别的,所以理论还是得扣一下的。视频下方给出相关参考文献,也省去收集经典文献的麻烦,这是快速入门CFD的捷径。补充一下,作者对OF主要开发人员Jasak教授的博士论文相当有研究。
13.png
网址:
https://www.youtube.com/channel/UCjdgpuxuAxH9BqheyE82Vvw

④ ME702 + 12步入门CFD (Python)

这个版本是github上的版本,会多一些内容,直接看官网的也行。配合ME702课程系统学习一边CFD也是非常推荐的。
14.png
网址:
https://github.com/barbagroup/CFDPython

https://www.bilibili.com/video/B ... 1824432106004864112

四、学习建议

无论是视频教程和文字教程,学习过程尽量专心。如果不能专心,由于资料大多是英文,所以会导致理解偏差。

碰到问题或者计算结果与教程不同,不是打开QQ,拍照上传到群里,此方式很糟糕。应该自己先思考下,为什么?是自己操作的问题,还是因为版本的问题,还是老师故意为之设置好不同让你改,还是其他什么原因。如果分析不出原因,可以将错误,抛到google上搜索一番,也许你的问题有人曾经也发生过。一般都会在Cfd-Online上找到,实在不行再问。

OpenFOAM分支特别多,不太可能有人什么都知道,所以问问题一定要精确。起码大概知道是OpenFOAM的问题还是Linux还是C++。这里额外提醒一下,不用花太多时间学习C++,学几个月一样解决不了OpenFOAM出现的问题。这里强调的是,不要把C++作为学习OpenFOAM的主要方向。

大部分与OpenFOAM有关的问题:

  · 操作问题,例如:不在正确的目录下输入icoFoam,然后报错了不看错误信息。

  · 设置问题,例如:没有0文件夹或者没有改名字,就开始算,结果报错。

  · 发散问题,例如:Co设置不合理,网格划分不合理等都会导致。求解器设置不合理,这个就得提升CFD内功。

  · 学习路径。应用:学Nagy老师的基础和中级课程->3.1->3.2->3.3->3.6。编程:3.4->3.1>3.2(最后5天)->3.6->3.5的编程课程,同时学习3.7。

CFD理论,找到特别合适的Crash课程,认真学习3.8.2,最详细,最基础的CFD入门动手课,大一数学功底就可以跟下来。3.8.1可以在系统学完3.8.2同时展开。3.8.4给出了另外一条路,就是上课动手实操。这一关,逃不掉。

五、结论

首先,学习OpenFOAM就几个月时间,上面推荐的内容,我都看过。只有反复才能提高,不要为畏难此为其一。

其二,就是必须努力提高内功,光会设置一些基本参数,那与用fluent 这些商软差别不大,一定要明白fvSchemes和fvSolution 这些设置的内涵,这样才能在前人的工作基础上有所创新。

第三,对CFD本身的功底的提高,千万别忽视计算流体力学功底的提高,这方面我也是看了不少书和视频的,对一些算法格式都有认识。

总之学习就是个螺旋向上的过程,充满挫败感,希望不放弃,与诸君共勉!

OpenFoam版本更新日历:

  · 第一版本:2019-10-03
  · 第二版本:2019-11-21
  · 第三版本:2019-12-16 增加3.8节相关内容,牛津大学博士研究生的视频教程。
  · 第四版本:2020-04-28 大幅修改了3.8节内容,推荐更为完善Dr Aidan Wimshurst的工作。增加了波士顿大学芭芭拉教授的CFD课程,ME702,并将有名的12步入门CFD(是ME702的配套课程)增加进来。大幅度对文字内容进行修改。
  · 第五版本:2020-04-30增加Linux相关内容,非常值得用来Linux入门。
  · 第六版本:2020-08-31修改了学习路径中微小细节,官方3.2节内容已经更新。
  · 第七版本:2020-12-05将MIT的讲计算机教育缺失的一课正式加入进来,非常好的Linux相关生产力学习课程,修改了一些语言描述和错别字。

来源:仿真秀App微信公众号(ID:fangzhenxiu2018),作者:汪老师。

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-4-19 07:23 , Processed in 0.055466 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表