OFtutorial00_helloWorld解析
组成
如图

OFtutorial0.C

fvCFD.H
在OpenFOAM中,所有代码都以注释段开头,使用有限体积的 CFD 类型文件都包括头文件fvCFD.H,该文件包含类或函数的定义,函数的内容会在运行时以动态形式调用。

在fvCFD.H中,为了避免被多次引用,定义了如下宏变量
# ifndef fvCFD_H
# define fvCFD_H
……
#endif
当头文件已经引用过后,ifndef判断返回 0,此时文件内直到#endif命令之间内容全部不会被再次引用。
其中
#ifndef namespaceFoam
#define namespaceFoam
using namespace Foam;
#endif
定义了命令空间 Foam,在包含的库中所有的函数声明都属于命令空间 Foam,因此在调用库函数时必须使用。
setRootCase.H
作用
- 检查基本的文件夹结构,确定有control dict等文件存在
- 处理parsing command line arguments and options
- 通过外部程序运行,位于$FOAM_SRC/OpenFOAM/include
Make
组成

files
OFtutorial0.C#指定源文件
EXE = $(FOAM_USER_APPBIN)/ofTutorial0#指定生成的可执行文件存放的位置
options
#EXE_INC用于指定编译器在查找头文件时该搜索的目录,包含了-I选项
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \#该目录包含了finiteVolume库所需的头文件
-I$(LIB_SRC)/meshTools/lnInclude#该目录包含了meshTools库所需的头文件
#EXE_LIBS用于指定链接器在生成可执行文件或库时应该链接的库(通常会去掉前缀lib和后缀.so),包含了-l选项
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools
Allwmake

仅含编译命令
Allwclean

仅含解构命令
testcase

Allrun
#!/bin/bash
ofTutorial0
使用ofTutorial0求解器求解
Allclean
#!/bin/bash
rm -r 1* 2* 3* 4* 5* 6* 7* 8* 9* 0.* constant/polyMesh/* processor* log.* 2>/dev/null
删除时刻文件、计算网格、并行文件及log文件等
由于求解器定义中只输出了相关语句,并未调用constant及system中的文件,因此其定义没有意义,但又必须存在

浙公网安备 33010602011771号