吾生有涯 学海无涯
析模有界 知识无界

花大量的时间死磕OpenFOAM,有必要么?

后台有道友留言问:有没有必要花大量的时间和精力去死磕OpenFOAM ?个人觉得这取决于个人的需求。这里将CFD使用者简单地分为两大类:CFD工程应用及CFD算法开发。
1、CFD工程应用
如果只是将CFD当做是工程应用工具的话,那基本上可以不用花费大量时间在OpenFOAM上,尤其是在国内。虽然OpenFOAM提供了大量预置的求解器,但相对于成熟的商业软件来说,仍然存在差距。毕竟成熟的商业软件经过了大量的市场应用的考验,软件公司为了利益也会对现有的软件进行深度优化。
相比较而言,OpenFOAM预置的求解器还是略显粗糙,这不仅仅表现在程序代码上,还存在于代码编译优化、并行计算等方面。当然不排除经过深度开发的OpenFOAM专用求解器能够超越商业软件。
除此以外,OpenFOAM相对于商业CFD软件来说,在几何前处理及网格生成方面存在极大缺陷。
CFD工程应用中可能会用到OpenFOAM的一些场景:
  • 商业版权限制。一些小企业买不起正版的商业软件,没办法转而使用OpenFOAM进行工业应用。
  • 特殊的物理场景。一些特殊的物理现象,利用商业软件可能无法解决或很难解决,此时基于OpenFOAM开发专用的求解器可能是一种不错的选择。
2、CFD算法程序开发
作为一个开源的CFD库,OpenFOAM包含了大量适合于CFD开发的底层代码,基于这些底层代码,开发及试验自己的CFD算法,可以节省大量的造轮子时间。
这里也分几个方面:
  • 求解器开发。利用OpenFOAM开发求解器其实属于应用层面。基于OpenFOAM定义的底层代码开发适合于特定物理场景的求解器。如果求解算法已知的话,这一步其实就是纯代码编程的工作,技术含量不高。有技术含量的是推导求解算法。
  • 底层开发。这部分涉及的内容比较底层,如网格表示和处理、数据读写、代数方程求解等。目前这些底层代码中,有相当一部分是OpenFOAM借用的第三方库。
话说回来,如果是做CFD算法开发的话,肯定就没法使用商业软件了,最多就是使用商业软件搞点儿对比数据。从事这方面的话,OpenFOAM的竞争对手并非商业软件,而是其他的程序代码库,如SU2、MFix等。
不过OpenFOAM作为最全面、最成熟的通用CFD开源代码库,基本上没有直接对手。

所以回到最初的问题,OpenFOAM有没有必要花大量的时间去学?
如果是做CFD工程应用,那么先了解一下自身的应用环境,最简单的方式是去招聘网站看看相关行业的招聘要求。就个人了解,目前国内很少有使用OpenFOAM做工业应用的。
如果是从事CFD开发,那么花大量的时间和精力去搞OpenFOAM应该不会吃亏,了解软件架构和底层算法,这个对个人水平的提高是相当有帮助的。

(完)

本篇文章来源于微信公众号: CFD之道

赞(2) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《花大量的时间死磕OpenFOAM,有必要么?》
文章链接:https://www.topcfd.cn/37963/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册