本文摘要(由AI生成):
文章主要介绍了OpenFOAM这个开源CFD代码,它内置了标准求解器,但学习曲线陡峭,官方文档和教程简陋,新手需要step by step式的tutorials来熟悉不同求解器的操作流程。文章还提到了OpenFOAM的输入文件主要为编写的各种脚本,不适合在公 众号中展示,阅读性差,且源代码阅读困难。最后,作者询问是否有大佬愿意将官方提供的案例翻译成step by step的案例集,为新手留下学习资料。
最近常有留言问为何不更新一些OpenFOAM的内容,之前公 众号中更新了少量的OpenFOAM的内容,后面觉得麻烦就没再更新了。不更新的原因很多,首先是在公 众号中更新OpenFOAM的内容比较麻烦,OpenFOAM的输入文件主要为编写的各种脚本,这种脚本文件并不适合在公 众号中展示,阅读性奇差;其次OpenFOAM的使用涉及到较多的CFD理论方面的东西,这些偏理论的东西其实也不怎么适合在公 众号中展示,要知道微 信公 众号是不支持显示数学公式的,将数学公式转化成图片的话,显示效果简直不能更糟糕。
OpenFOAM是很不错的开源CFD代码,其内置了不少标准求解器,熟练掌握的话其实可以不用编写C++代码也能实现大多数通用CFD软件能实现的一些功能。然而,也许OpenFOAM设计之初就并没有将其当做成熟的CFD软件吧(其更多的是被视作CFD代码库,而并非是求解器),其学习曲线及其陡峭,不只是做得极简的用户文档,更体现在其源代码阅读起来相当困难(其源代码使用的并非是标准C++语言或标准C++库,而是经过了自行封装的代码库,要想读懂OpenFOAM程序代码,需要了解OpenFOAM代码库,这是个大工程),OpenFOAM并未提供任何关于其源代码的API文档。
OpenFOAM内置的标准求解器其实已经可以做很多事情了,不过学习曲线也是相当的陡峭。官方文档中关于这些标准器求解器只是列了个表,简单描述了一下这些求解器用在什么地方,至于怎么用则只字不提。仅有的那么两三个tutorials则简陋到不能再简陋。记得很久以前,某OpenFOAM大神在其博客中说道,学习OpenFOAM标准求解器的最简单方式是阅读官方案例提供的脚本文件以及运行案例。然而对于新手来说,让其阅读官方案例中的脚本文件实在是难度天大。
新手学习OpenFOAM需要step by step式的tutorials以熟悉不同求解器的操作流程,需要了解求解器使用过程中的一些信息:
输入网格如何准备?
采用何种求解器?为何如此选择?
该求解器需要哪些输入文件?各输入文件输入的是哪些信息?
需要定义哪些边界条件?
初始条件如何定义?
求解过程如何控制?
如何控制结果数据的输出?
等等...
然而此种案例教程极少。。。
有没有大佬有兴趣将官方提供的案例翻译成step by step的案例集?未必会有收益,但若能为后来的学习者留下点儿什么,也未尝不是一件惬意的事情。