OpenFOAM不同版本代码转换的问题
-
谢谢,不过还是好奇openfoam2.1.1版本跟后来新版本的区别?比如新版本里有哪些明显的改进呢
-
每个OpenFOAM发布都有个release note,最近还有个叫updates for developers的页面,讲api变化。
我记得OF说过,版本号变化规则:X.Y.Z
X: case都得改
Y: api可能有变,也就是求解器源代码需要改
Z: bug fix啥的,基本没啥需要改的。of41的主要变化在:http://www.openfoam.com/documentation/developer-upgrade-guide.php
-
据我经验,错误最多的是这么几个:
- of4 的const ref 和ref分得比较清楚了,参考http://www.openfoam.com/documentation/developer-upgrade-guide.php
- of版本升级时,热力学那块类变化比较大
- of中cxx类有abstract base class (ABC), ABC不能实例化,需要在子类中实现所有的虚方法,但是of版本升级时可能虚方法数量发生了变化,这个在错误中会有提示。
- Make/options里include path变化,特别湍流/热力学那些库变化比较大
纯虚函数个数 of41 of2x fvcDdt 5 4 fvmDdt 4 3 fvcDdtPhiCorr 2 2 fvcDdtUfCorr 2 0 meshPhi 1 1 type 1 1 不过of41支持cxx11了,似乎有些语法糖衣可以用:比如auto x = phi.ref(),不用写又臭又长的模板展开了。
-
@程迪 多谢回复!能不能问个比较土的问题,一直不明白,openfoam4.1 5.0 这种命名方式和OpenFOAM v1706有啥区别?好像一个是 OpenFOAM.org 一个是openfoam.com
-
@xiaofenger 算是不同的分支吧。后面那个应该是OpenFOAM+
-
@xiaofenger
openfoam起源于foam,现在分foam_extend, openfoam(.org)和openfoam+(.com)三个分支。- foam_extend是功能比较激进的。最新版本4.0,有些算法挺好的。api感觉和of23x比较接近。
- openfoam基金会(这个基金会是个英国注册的公司,不是非盈利机构)版本应该算是主流吧。最新4.1,更新的功能在dev版里。
- openfoam+是opencfd公司(openfoam商标持有者,授权基金会免费使用)搞的,在基金会版本上添加了一些功能,也是免费的。基本可以保持和同时期的基金会主要版本兼容。
不同版本都是gpl授权,但是版本有一些差别,有些v2有些v3,不过对于中国人而言都一样。
-
@xiaofenger
没人能保证新的比旧的精确效率高。。。可以跟踪一下github上代码相关的commit message.历史,可以看出它是怎么演进的。