要说应用最广泛的通用开源CFD软件,自然非OpenFOAM莫属。不过严格来讲,OpenFOAM不能称之为一款软件,应该说是一个类库,利用这个库可以构建出自己的求解器和前后处理工具,当然前提是精通C++。
-
OpenFOAM程序代码是free的,但这个free并不意味着免费,这个free的意思是你可以自由的更改程序代码内容,重新编译出自己想要的求解器。定制自己的求解器听起来很诱人,但这个过程是却要花费大量的时间和精力的。
-
和商用CFD软件不同,OpenFOAM机构并不对程序代码负责。商业软件中出现严重BUG,作为用户来讲可以打315电话投诉,可是开源软件呢,没有投诉的渠道,这Bug只能自己咽下了。商用软件新版本在发布之前都会经过严格测试。
-
商用CFD软件为了减少客户的投诉,所以优先使用一些稳健而保守的模型(谁都怕自己的软件经常崩溃的),这意味着使用者无法享用最新的最先进的算法。而在OpenFOAM中则可以自由添加任何能找得到的求解算法,当然程序Bug得自己测试。
-
OpenFOAM是一个框架,实际上灵活性也没有宣传的那么高。除非你能把那几十万行代码全部读个遍。通常所谓的求解器开发也是在已有求解器的基础上缝缝补补而已,远没有想象中的那么高大上。当然重新造轮子也是没必要的。
-
将OpenFOAM当做普通的求解器使用也是不错的。
-
OpenFOAM的用户手册写得非常烂,但是好在程序代码是可以阅读的,所以对于OpenFOAM来说,最好的帮助文档是源代码。这可苦了那帮子不懂C++的人。我只是想拿菜刀切个菜,你非要逼着我去学金属热处理。
-
OpenFOAM的培训很贵,而如果你购买商用CFD软件,软件代理商常常会给你提供一两场免费的培训。
-
商用软件的学习资料非常丰富,OpenFOAM的学习资料非常的少。
OpenFOAM在国内推广很慢,客观原因很多,个人分析无外乎以下一些原因:
-
将OpenFOAM应用于工程需要太多的额外成本。相较于商用CFD软件,OpenFOAM并没有一个良好的GUI界面,对于工程人员来说,采用文本编辑与命令行执行的方式,似乎比较艰难。
-
虽说最好的OpenFOAM学习资料是其源代码,然而CFD工程届能读懂C++的人能有多少?更何况OpenFOAM并不是原生的C++代码,而是自己创建的C++类库,说实话,虽说我自认C++基础较好(学了5年C++),但其实读起来也挺吃力。
-
OpenFOAM的User Guide写得真的很烂。
-
没有案例文档无疑增加了入门难度。
要推广OpenFOAM,当务之急是要整理一份详尽的案例库,只有用的人多了,才能更好的促进其发展。
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册