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

作用

  1. 检查基本的文件夹结构,确定有control dict等文件存在
  2. 处理parsing command line arguments and options
  3. 通过外部程序运行,位于$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中的文件,因此其定义没有意义,但又必须存在

posted @ 2024-08-08 17:03  ouqiyo  阅读(88)  评论(0)    收藏  举报