我个人的观点:就算不做CFD算法开发,学习OpenFOAM的使用也是有用的。
事实上学习自己不曾掌握的任何知识和技能都是有用的,我觉得此道友问的并不是学习OpenFOAM有没有用,而是问:在付出了大量的学习成本之后,所获得的收益是否划算。
当今社会,人都活的比较浮躁,恨不得今天学的东西明天就能带来大量的收益。然而这等美事儿怎么可能会轻易发生,任何的知识都必须经过积淀才可能形成技术,熟练的技能才能带来收益,多么简单的道理。我总是想起大学时候一个数学老师的话,学微积分有什么用,数钱的时候用得上么,疯狂购物的时候用得上么?好像都用不上,但是你能说学微积分没有用么?不能,因为你不学就得挂科,挂科就得补考,补考就得交钱,看吧,学微积分的直接经济效益就这么产生了。
就我个人看来,就算你不开发算法,学习OpenFOAM至少有这些作用:
-
替代商用CFD软件解决工程问题。虽然说这方面难度有点儿大,但是对于一些买不起商用软件的企业来说也不失为一种方案。天朝和谐版猖獗,但不代表你使用和谐版有理,之所以苦主没有找上门,是因为人家看不上你家企业的规模罢了。人家真要想弄,绝对一弄一个准。(我这里说的是企业,个人用户不用担心)。OpenFOAM预编译的求解器足以解决大多数常规工程问题,只是因为差了个友好的前处理器而已。其实利用预置求解器解决工程问题,学习成本也并不是特别高,当然肯定是要比商用软件的学习成本高一些,这也可以理解,商用软件是花钱买时间嘛。
-
帮助理解CFD运作原理。OpenFOAM相对于商用软件来说更接近CFD底层,在使用的过程中能够更好地理解CFD的运作方式。有人说我开个车还需要去学一下汽车原理么?虽然说没有必要了解非常清楚,但是如果能够对运作原理有深入的了解,这对于更好的应用CFD绝对是有百益而无一害的。我用了十多年的商用CFD软件,也深入学习过计算流体力学,但是仅靠自己用c语言编写的那几行FVM代码根本无法从全局上了解CFD的工作原理。OpenFOAM提供了一个帮助学习CFD工作原理的绝佳平台,我们不仅可以通过其源代码了解计算过程,还可以利用这平台试验自己的一些新的想法,这对于提升自己CFD应用能力非常有帮助。你可以不编程,但你不能不了解CFD的工作原理,如果你想要从事CFD相关的职业的话。
-
学习C++语言。作为工科人士,掌握至少一门编程语言是基本要求。OpenFOAM虽然使用的不是C++标准库,但是通过OpenFOAM代码去理解学习C++语言也是挺不错的。
注:以上仅为个人观点。
我觉得学习OpenFOAM第一步应该是实现其工程应用,利用其预编译的求解器实现工程应用,只有先将其各模块用熟了,后面才好去谈改进它。而工程应用最好的学习途径无异于利用其做案例。
OpenFOAM自身为每个求解器提供了大量的案例,然而缺少案例解释。事实上这些案例可以作为其工程应用模板,遇到同类型的工程问题,完全可以在标准案例的基础上进行修改。我们学习的第一步是搞清楚这些案例,以及亲自运行试试。
网络上散落着一些OpenFOAM案例,大多数是歪果仁搞出来的,我觉得很有必要将其整理成中文,方便国内道友们学习。当然国内网络上也有一些,到时候也一起收集了。包括OpenFOAM自己提供的算例,若有大神能够将其整理成算例文档,也是一件大好事。不过这事儿很有难度,九成九耍OpenFOAM的都在宣传他们的自编求解器。
有道友留言说更新OpenFOAM的内容会大幅掉粉,我当然能够预料得到,然而粉不粉的我现在已经不关注了,也无所谓掉不掉了。商业软件学习教程类依然会更新,这两年Fluent类更新太多了,我没有什么存货了,后期可能会更新较少。
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册