0 写在前面
此文档是我的学习笔记整理,内容不是很多,也可能比较老,是学习一份英文资料时写的,希望能够有帮助。
1 OpenFOAM路径管理
$WM_PROJECT_DIR
(OpenFOAM安装路径)
├──
Allwmake(文件)
├──
applications
├──
bin
├──
COPYING(文件)
├──
doc
├──
etc
├──
platforms
├──
README.org(文件)
├──
src
├──
tutorials
└──
wmake
>$ echo $WM_PROJECT_DIR # 查看OpenFOAM安装路径
>$ env | grep "OpenFOAM" # 查看OpenFOAM定义的环境变量
>$ alias | grep FOAM # 查看OpenFOAM定义的别名命令
- 在
$WM_PROJECT_DIR
下做的任何代码更改将会影响整个类库。除了软件升级外,除非你知道自己在做什么,否则不要更改原始文件
1.1 applications路径
>$ cd $WM_PROJECT_DIR/applications # 切换路径
文件夹:
- solvers --- 包含求解器的源代码
- test --- 测试算例,展示如何使用OpenFOAM类
- utilities --- 包含工具的源代码
1.2 bin路径
>$ cd $WM_PROJECT_DIR/bin # 切换路径
包含很多实用工具脚本,如foamNew
等
1.3 doc路径
>$ cd $WM_PROJECT_DIR/doc # 切换路径
doc路径下包含OpenFOAM文档,分别是user guide、programer‘s guide 和 用于doxygen
生成html文档的相关文件
1.4 etc路径
>$ cd $WM_PROJECT_DIR/etc # 切换路径
- 包含环境配置文件,OpenFOAM全局命令、模板和数据库
- 包含超级字典controlDict,可配调试选项和默认单位
1.5 platforms路径
>$ cd $WM_PROJECT_DIR/platforms # 切换路径
包含编译applications时生成的二进制文件和编译src中源代码生成的库文件
1.6 src路径
>$ cd $WM_PROJECT_DIR/src # 切换路径
- 该路径包含所有OpenFOAM基础库的源代码,是OpenFOAM的核心
- OpenFOAM:包括用于操作的容器的定义、场的定义,诸如区、集等网格特性及网格的声明。
- finiteVolume:有限体积离散需要的所有类的定义,例如网格处理、有限体积离散运算符和边界条件。另外,finiteVolume/lnInclude下的fvCFD.H被大多数应用程序包含。
- sixDoFRigidBodyMotion:包含动网格求解器的核心代码
- transportModels:输运模型核心库
- turbulenceModels:湍流模型
1.7 tutorials路径
>$ cd $WM_PROJECT_DIR/tutorials # 切换路径
路径下包含针对每个求解器的测试算例
- 不要把算例当成最好的实践,算例只是为了展示如何使用求解器
1.8 wmake路径
>$ cd $WM_PROJECT_DIR/wmake # 切换路径
-
wmake
读取该目录下的文件,进行编译 - wmake/rules 可以修改默认设置
- 其他脚本
1.9 OpenFOAM用户路径
>$ cd $WM_PROJECT_UEER_DIR # 切换路径
建议:将自己的算例放在用户路径下,同时自己写或修改的求解器、工具和库都编译到这里。
1.10 使用find
、grep
查找文件及内容
- 使用
find
命令查找文件
>$ find $WM_PROJECT_DIR -type d -name "*fvPatch*"
# 查找位置 类型:路径 包含信息
>$ find $WM_PROJECT_DIR -type f - name "*fvPatch*"
# 查找位置 类型:文件 包含信息
- 使用
grep
命令查找文件内容
>$ grep -r -n "LES" $FOAM_SOLVERS
# -r 递归查找 -n 显示行号
1.11 配置环境
>$ source $WM_PROJECT_DIR/etc/bashrc # for bash