wmake—自定义编译求解器和库

    技术2024-07-29  129

    在编译求解器和库之前,我们分析了介绍了几种常见求解器的主程序(.C文件)、一些相关的头文件,以及Make文件夹,以上部分决定了求解器文件的基本架构: 1.求解器的编译 完成了以上部分代码的编写以后,就可以运用wmake指令编译自定义求解器了。求解器的名称及路径信息在files文件中进行指定,以icoFoam为例:

    icoFoam.C EXE = $(FOAM_APPBIN)/icoFoam

    OpenFOAM 为用户提供了两种可选的路径,一个是标准的路径,编译好的求解器存储在$FOAM_APPBIN 中;另一个是用户自己的路径,存储在$FOAM_USER_APPBIN 中。一般建议将自定义求解器保存在$FOAM_USER_APPBIN路径下,基本格式如下:

    newApp.C EXE = $(FOAM_USER_APPBIN)/newAPP

    值得注意的是,files文件除了必须包含的主程序.C 文件外,还需要包含其它没有作为库动态链接的文件并且打算被编译的文件。

    之后,我们可以在终端键入wmake <directoryPath>来进行求解器的编译,或者直接在求解器文件夹下输入wmake。 在此之前,如果你已经对求解器进行过编译,需用wclean指令删除依赖包文件(扩展名为.deb),否则,可能会报错。

    2.编译库 创建自定义求解器过程中,往往需要我们编译一些自己的库文件(.so文件),这是,我们需要对Make文件夹进行一些修改,现总结如下:

    首先,files文件存在一定差别,其代码大致如下:

    newApp.C LIB = $(FOAM_USER_LIBBIN)/libnewApp

    对于options文件,EXE_LIBS 需要替换为 LIB_LIBS,用来指定编译库的时候需要 链接的库(这部分影响不大,貌似不修改也没什么影响)

    另外,对于旧版本的OpenFOAM来说,比如我使用的4.1版本,需要采用 wmake libso进行库的编译。

    本文参考了东岳流体上的一部分内容,对我帮助极大,感兴趣的小伙伴可以走起。

    Processed: 0.022, SQL: 9