苏军伟老师的博客
作者:莎士比如
链接:www.zhihu/question/27185834/answer/171200880
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
我谈谈自己的学习过程
1.从看OpenFOAM的顶层求解器开始
得益于C++面向对象的编程理念,OpenFOAM的顶层求解器简单明了。在源文件application文件目录下面挑几个简单的求解器先看起来,里面各个变量的命名方式也非常规范,代表的意思一目了然。多看几个到感觉之后就能修改控制方程,实现自己想要的功能。这一阶段可以看一下Prof. Jasak的博士论文,了解一下OpenFOAM的求解算法。先从这一步开始会让你很快到使用OpenFOAM编程的良好感觉,自信心爆棚并爱上OpenFOAM这样一个简单的像matlab的CFD语言。
2. 弄懂他的底层实现,也就是源文件src文件夹里的内容,包括了OpenFOAM
所有类的声明和定义文件。
一开始来到这里你会感到无能为力,OpenFOAM为了维持代码的简介性,使用了大量的继承,派生和模板,而且继承层数之多令人绝望,有的时候为了查到某一个子类的成员函数的定义,要向上五六层。这时候建议使用
的C++ guide网页进行查,doxygen生成的代码能够减轻你的迷茫。Src文件很多可以挑几个比较重要的先感觉。
欧拉linux系统OpenFoam多面体网格:包括mesh和field,非常重要,是数据结构的核心部分。
梯度计算: gauss leastsqure等
snGrad计算:较简单
fvc:容易看懂,处理一些进源项的部分
fvm:有点难度,处理进系数矩阵和源项
sufaceInterpolate:对流项格式,比较重要,但不难。
边界:编写新的边界条件,比较简单。
湍流模型:比较简单。
要实现新功能时,最偷懒的办法是一个功能相似的class进行修改。修改的时候要注意一下继承关系,一般情况下子类要重写基类中所有的虚函数和纯虚函数,这些虚函数就你需要修改的地方。这一阶段之前提到的The Finite Volume Method in Computational Fluid Dynamics: An Advanced Introduction with OpenFOAM and Matlab和OpenFOAM Technolgy Primer会派上用场。
做到以上两步,只要你足够勤奋,足够耐心你就成为了一个OpenFOAM的合格开发者。
3. 使用OpenFOAM进行计算。
OpenFOAM没有推荐设置,附带教程中的默认设置都只保证计算的稳定性。基本
上需要靠尝试和一点运气才能的到好的结果。这时候你需要多参考一下论文中成功的算例,多逛一下OpenFOAM的各大论坛。
最后的最后一定要be nice 手动微笑
OpenFOAM入门建议
(2015-08-30 14:38:18)
转载▼
分类:OpenFOAM-实用技术
标签:
openfoam
sph
lbm
“Two weeks of playing with a CFD code will save you one afternoon of reading”
什么是OpenFOAM(力荐)
OpenFOAM History
OpenFOAM® Release History
注意,下面列的资料都在不断更新,本站博文也不断更新。
OpenFOAM国内使用情况调查
在大家眼里OpenFOAM难点在哪?
不断有新人加入OpenFOAM的学习和使用中来,因此一些问题反复被提起,比如:刚开始怎么学openfoam?
因此这里花一点时间稍微总结一些入门的建议,首先通读本文可以事半功倍。
先学操作。需要自己写求解器再学求解器。需要自己写C++代码了再看C++。当然如果你时间充分的话,随意。
第一课:
按照《用户指南》,运行一遍cavity的算例,顺一遍就行。《OpenFOAM用户指南》《OpenFOAM编程指南》的中文版可以在东岳流体到。
第二课:
The big picture for beginners. 阅读《OpenFOAM-FAQ version - 0.1beta》,此FAQ 由北航田超博士QQ387210626-TCH多物理场整理。可以去该QQ此文档:OpenFOAM 千人(139297966)。不到也可在此留言。
通过这次学习,对OF有一个“整体”的把握。
同时以debug和opt模式安装:
www.cfd-online/Forums/openfoam-installation/75662-debug-version-openfoam-1-6-a.html#post257204
第三课:
瑞典查尔姆斯理工大学的OF课程,MSc/PhD course in CFD with OpenSource software。把所有的ppt从头到尾看一遍,有时间的话可以跟着操作一下。
注意,将网址www.tfd.chalmers.se/~hani/kurser/OS_CFD_2014/ 中的年份更改后可进入相应年份的课程页面,可以看到往届课件和学生的report,都是非常有价值的参考资料,当然,此时不需要仔细看这些报告。
第四课:
顺一遍《OpenFOAM的程序开发初步》和《计算力学OpenFOAM讲座-基础篇(陈丽萍)》。看不懂的地方可以参照《OpenFOAM研究博文集》或苏军伟的博客。
注意,到目前为止,你可能已经学习了如何运行OF的算例、添加湍流模型、自定义边界条件,但是仍然不要纠结于求解器的具体实现,不要纠结于求解器中的每一行代码的意思,比如这样:CFD软件工程——OpenFOAM。这完全没必要,即便你要实现自己的求解器也未必需要(但是,对于高级用户和未来的高级用户,看懂这些基本代码还是必要的)。
第五课:
经过之前的学习,你已经可以使用OF,并且做一些简单的修改了。现在你希望增进对CFD 和OF的理解,可以看UNIGE Introductory OpenFOAM course-training。
通读一遍即可,不感兴趣的地方自行跳过。(里面关于边界条件的组合,网格划分工具等均有较多讲授)