求解器跨版本移植需要注意什么

目前,我在 foam-extend-3.1 下有个求解器,是有关流固耦合的,我想把这个求解器移植到另一个分支 openfoam-v1912 上,而这两个分支有一些内核或使用方法是不同的。请问下,如果要移植,需要注意些什么?

该求解器是否有新的库?如果你是使用 fsiFoam 的话,有些库在 extend3.1 下有,而在 of1912 上是没有的。那这个时候,需要把 extend3.1 下的库 copy 到 of1912 里面,重新编译,这个时候,就会发现有很多错误。

那就一个错误一个错误地查。

那就要从基本库开始考查:

  1. foam/OpenFOAM 库是否相同,所用的函数是否一致?如果不一致,建议修改 从 ext3.1 copy 到 of1912 下的,不要动 of1912 的原库。可以添加新的库,而不能删除原来的库。添加了的库,需要在 Make/files 里面添加相应的 .C 文件,最后才能编译。
  2. finiteVolume 库内的模块是否足够?缺少的需要从 ext3.1 copy 到相应的位置,尝试编译并解决错误。

实际上,如果你能编译成功以上两个库,那成功了一半。剩下的就是更新该求解器和它需要的特有库了。

错误的种类很多,不能一一地列出,但有一点就是,需要一些耐心。