本文描述OpenFOAM中求解器与工具库代码组织结构。
1 求解器
OpenFOAM中的求解器代码位于文件夹$FOAM_SOLVERS
中(默认为/opt/openfoam8/applications/solvers)。其中求解器按照物理模型进行归类,如下图所示。

以icoFoam求解器为例,该求解器为不可压缩层流瞬态求解器,其位于solvers文件夹下的incompressible子文件夹中。如下图所示,incompressible文件夹中包含了一些用于求解不可压缩流动的求解器,如icoFoam、simpleFoam、pisoFoam等。

icoFoam求解器中的文件结构如下图所示。(OpenFOAM中的求解器文件夹具有相同的结构)

文件夹中包含文件:
-
icoFoam.C:求解器的实际源代码 -
createField.H:声明所有场变量并进行初始化 -
Make/files:命名所有的源文件,指定输出文件的求解器名称及位置 -
Make/options:指定包含链接到求解器的文件与库的搜索目录
2 工具库
OpenFOAMg工具库路径为$FOAM_UTILITIES
,默认安装时该路径为/opt/openfoam8/applications/utilities
。该文件夹中中的子文件夹以工具用途进行归类,如用于网格操作的工具放置于mesh
文件夹中,用于前处理的工具放置于preProcessing
文件夹中。

以工具命令setFields
为例,该工具用于前处理过程中为计算区域指定初始值。工具代码位于子文件夹preProcessing
中。如下图所示,setFields文件夹中包含有一个源文件setFields.C
以及Make
文件夹,有的工具代码文件夹中还包含有头文件。

其中Make文件夹中的文件与求解器文件夹中Make里头的文件类似,主要用于指定代码编译过程中的一些选项参数。serFields.C文件为源代码,其中定义了工具的功能实现过程。
注:
在创建自己的求解器与工具时,通常将源代码拷贝到用户目录下进行修改及编译,这样可以防止污染OpenFOAM的代码。
”
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册