OF wmake编译过程中的一点小知识

还有options中包含的头文件如何跟.C源文件的对应关系。
Application
pisoFoam
Description
瞬态不可压缩、有湍流 使用的piso算法
我还是不知道为什么添加这些头文件 只知道要和Make/options 中进行对应 包含的是lnInclude下对应第一个包含头文件
pisoFoam 的方程是啥(瞬态、不可压缩,不计算能量方程,不计算体积力,)
这是没有添加湍流模型时候的不可压缩、不计体积力、不计能量方程的N-S方程化简式:
连续性方程:div(u) =0
动量方程: ddt(u) + div(uu)=-grad(p)+laplacian(nu,u)
有了湍流模型之后,要对原来的方程,应该如何进行修改才能刚好适配呢?
连续性方程应该还是老形式,但是量变了,在雷诺时均思想下:
连续性方程:div(\overhat{u}) = 0
使用雷诺时均思想以及boussinesq hypothesis的动量方程 (不知道他是不是这么干的,还得从代码中才能看到,有痕迹)
动量方程: ddt(\overhat{u}) + div(\overhat{uu}) = -grad(\overhat{p})+(nu+nu_{t}) laplacian(\overhat{u})
然后就是配套的湍流模型,pisoFoam 可以laminar 也可以 LES 也可以RAS ,这里面我感觉更复杂了,不同地方的链接 还能保持一致,我没必要深究
等于这个不可压缩的N-S方程中
\*------------------------------------------------------------------------------------------------*/
/* 将这里写成对应Make/options中头文件的包含顺序 */
/* 这个MomentumTransportModels 里面包含: compressible/ incompressible/ momentumTransportModels/ phaseCompressible/ phaseIncompressible/ */
// 1
// -I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude
// 盲猜:这个里面是一堆湍流模型,是不是将其全部引用上,后面案例用谁就对应上谁
// 2
// -I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude
//这个是在MomentumTransportModels/incompressible/lnInclude/kinematicMomentumTransportModel.H
// 这对应的是 运动动量输运模型 ( viscosityModel 是不是应该叫这个)
// 这个lnInclude 在ubuntu终端显示有个@ 表示软链接 只有库文件才会生成lnInclude 这里面是生成的包含文件
// 还有一点 options 里 -I 是包含的头文件 到了后面的lnInclude 就是把这里面的头文件都掏一遍。
// 到了这里 #include 就是选择哪个头文件进行使用,也就是在鸡蛋篮子里 选
// 择鸡蛋 "kinematicMomentumTransportModel.H" 运动动量输运模型 这个是动量方程
#include "kinematicMomentumTransportModel.H"
// 3
// -I$(LIB_SRC)/transportModels/lnInclude
//这个头文件是在 transportModels/singlePhaseTransportModel
// 等于是transportModels 里面有dynamicTransportModel dynamicTransportModel
// kinematicTransportModel viscosityModels 你要使用那个 取决于你要计算的模型
// 然后包括在里面 要用的那个咱自己不知道咋搞 从文献里面看 我的LNG分层 是什么动量传输模型呢?
// 位置是在src/transportModels下 应该叫传输模型 父类是IOdictionary 和 kinematicTransportModel
// 和上面的那个kinematicMomentumTransportModel.H 不一样!!!!
// 还是包含了lnInclude 里面的所有头文件 将里面的一个 singlePhaseTransportModel.H,拿出来用
// 这个是单相输运方程
#include "singlePhaseTransportModel.H"
// 4
// -I$(LIB_SRC)/finiteVolume/lnInclude \
// /finiteVolume/lnInclude/fvCFD.H
// 从这里就能找到fvCFD.H生成的库文件,然后从鸡蛋篮子里面,取出来"fvCFD.H"
#include "fvCFD.H"
// 5
// -I$(LIB_SRC)/finiteVolume/lnInclude
// /finiteVolume/lnInclude/pisoControl.H
#include "pisoControl.H"
// 6
// -I$(LIB_SRC)/finiteVolume/lnInclude
// /finiteVolume/lnInclude/pisoControl.H
// 同理,从 lnInclude 文件夹中取出来"pressureReference.H"
#include "pressureReference.H"
// 7
// -I$(LIB_SRC)/finiteVolume/lnInclude
// /finiteVolume/lnInclude/fvModels.H
// 同理,从 lnInclude 文件夹中取出来"fvModels.H"
#include "fvModels.H"
// 8
// -I$(LIB_SRC)/finiteVolume/lnInclude
// /finiteVolume/lnInclude/fvConstraints.H
#include "fvConstraints.H"
// 9
// -I$(LIB_SRC)/meshTools/lnInclude 这是按照路径来的,按照路径找就行
// Collection of static functions to do various simple mesh related things.
// 也就是关于网格操作的工具都在这里面,应该是对应求解器中
// 10
// 这个应该是取样 里面的所有头文件都搞一遍 现在还不知道在哪里使用。
// -I$(LIB_SRC)/sampling/lnInclude
// 4-8 都是在 -I$(LIB_SRC)/meshTools/lnInclude
// 9 是网格工具 这俩基本在任何OF的求解器中都有
// 前面那1 盲猜是为了案例中选择湍流模型准备的
// 2-3是为了选择与其匹配的动量方程准备的