欢迎光临散文网 会员登陆 & 注册

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

2023-04-13 21:54 作者:孤魂星  | 我要投稿


慢慢的学啊学

还有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是为了选择与其匹配的动量方程准备的



OF wmake编译过程中的一点小知识的评论 (共 条)

分享到微博请遵守国家法律