fsiFoam 在 OpenFoam 2106 版本上编译的问题
-
本人 c++ 能力有限
fsiFoam 为 foam-extend 4.0 版本上可以成功编译,我需要将 of 2106 上 overInterDyMFoam 作为 fsiFoam 的流体求解器,在把 fsiFoam 升级到 of 2106 当时,发现两个版本头文件的包含、类的名称及定义有诸多不一致,编译时出现多处重定义以及重复声明以及其他的错误,希望有大神们能提供 fsiFoam 升级到 of 2016 上的相关资料、经验或者思路,感激不尽! -
将某个版本的OpenFOAM求解器,移植到其他版本的OpenFOAM上,这个不是几分钟的事情。尤其我看你自己说C++能力有限,我觉得你还是不要移植了。。。这个对于初学不是很容易
-
@李东岳 好的,谢谢
-
改了命名空间,貌似不起作用,是什么原因?
-
函数的重复定义。
用grep递归抓取源代码关于这个函数的定义逐个排查。别说C++不熟,就是C++熟,对linux那些小软件grep、sed、find还有管道、定向输出什么的不熟练。那么对于层层文件夹下一大堆源代码文件的操作控制也是十分繁琐的。
加油,绊在哪才知道学什么,为什么学
-
个人建议,水平不够,别折腾fsiFoam移植问题。
我曾经搞过一段时间foam-extend-4.0上这个fsiFoam,foam-extend-4.0的基础库和基金会/ESI的OpenFOAM都有很大差别,移植需要改动的地方很多的。还不如overInterDyMFoam 反向移植过去foam-extend-4.0上。
另外,fsiFoam调用的固体求解器存在严重的并行瓶颈问题,并行度刚过50,效率就插水了。 -
@bestucan 感谢前辈!
-
@bestucan @number44感谢谢前辈指导, 因为两个版本输出的结果文件格式是一样的,我打算尝试在 fsiFoam 和 overInterDyMFoam 之间做一个接口进行两边数据的更新,类似 Mpcci 这样的工具。
-
@李子橙 不知道你用fsiFoam干嘛,但是fsiFoam的替代品还是有的,例如solids4Foam。
-
@number44 计算柔性体入水且伴随空化的案例,solid4Foam 加入 overset 功能后不能并行计算,所以并不打算在 solid4Foam 上做算法改进。
-
@李子橙 建议不折腾 再想想其他替代方法 或者换软件 因我我一开始也想折腾fsifoam 发现甚至 不如自己新写一个固体求解器加到openfoam流体solver更简单
-
@oitocfd 您可以大概说一下在中间遇到了什么困难吗,目前我的大概思路是 fsi 的固体求解就不动,流体这边开发好作为一个类再合并进去
-
@李子橙 我的困难还不是很细节的 局限于 我不懂他的整体结构,哪一步在干什么,我该怎么把他跟OpenfoamV2106的流体求解器连起来,openfoam的这种求解器太过复杂,我想搞明白需要很久的时间,所以我干脆去看理论直接自己在OpenFOAMv2106里自己定义固体算法的类自己重新写了,毕竟本身fsifoam我还是得修改成我需要的固体求解,因为算法还是有不同。而且我需要对它很明白才能实现,权衡再三,我是觉得自己写反而更快