OF wmake編譯過(guò)程中的一點(diǎn)小知識(shí)

還有options中包含的頭文件如何跟.C源文件的對(duì)應(yīng)關(guān)系。
Application
? ? pisoFoam
Description
瞬態(tài)不可壓縮、有湍流 使用的piso算法
我還是不知道為什么添加這些頭文件 只知道要和Make/options 中進(jìn)行對(duì)應(yīng) 包含的是lnInclude下對(duì)應(yīng)第一個(gè)包含頭文件
pisoFoam 的方程是啥(瞬態(tài)、不可壓縮,不計(jì)算能量方程,不計(jì)算體積力,)
這是沒(méi)有添加湍流模型時(shí)候的不可壓縮、不計(jì)體積力、不計(jì)能量方程的N-S方程化簡(jiǎn)式:
連續(xù)性方程:div(u) =0
動(dòng)量方程: ddt(u) + div(uu)=-grad(p)+laplacian(nu,u)
有了湍流模型之后,要對(duì)原來(lái)的方程,應(yīng)該如何進(jìn)行修改才能剛好適配呢?
連續(xù)性方程應(yīng)該還是老形式,但是量變了,在雷諾時(shí)均思想下:
連續(xù)性方程:div(\overhat{u}) = 0
使用雷諾時(shí)均思想以及boussinesq hypothesis的動(dòng)量方程 (不知道他是不是這么干的,還得從代碼中才能看到,有痕跡)
動(dòng)量方程: ddt(\overhat{u}) + div(\overhat{uu}) = -grad(\overhat{p})+(nu+nu_{t}) laplacian(\overhat{u})
然后就是配套的湍流模型,pisoFoam 可以laminar 也可以 LES 也可以RAS ,這里面我感覺(jué)更復(fù)雜了,不同地方的鏈接 還能保持一致,我沒(méi)必要深究
等于這個(gè)不可壓縮的N-S方程中
\*------------------------------------------------------------------------------------------------*/
/* 將這里寫(xiě)成對(duì)應(yīng)Make/options中頭文件的包含順序 */
/* 這個(gè)MomentumTransportModels 里面包含: compressible/ ?incompressible/ ?momentumTransportModels/ ?phaseCompressible/ ?phaseIncompressible/ */
// 1 ?
// -I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude
// 盲猜:這個(gè)里面是一堆湍流模型,是不是將其全部引用上,后面案例用誰(shuí)就對(duì)應(yīng)上誰(shuí)
// 2 ?
// -I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude
//這個(gè)是在MomentumTransportModels/incompressible/lnInclude/kinematicMomentumTransportModel.H
// 這對(duì)應(yīng)的是 運(yùn)動(dòng)動(dòng)量輸運(yùn)模型 ( viscosityModel 是不是應(yīng)該叫這個(gè))
// 這個(gè)lnInclude 在ubuntu終端顯示有個(gè)@ 表示軟鏈接 只有庫(kù)文件才會(huì)生成lnInclude 這里面是生成的包含文件
// 還有一點(diǎn) options 里 -I 是包含的頭文件 ?到了后面的lnInclude 就是把這里面的頭文件都掏一遍。
// 到了這里 #include 就是選擇哪個(gè)頭文件進(jìn)行使用,也就是在雞蛋籃子里 選
// 擇雞蛋 "kinematicMomentumTransportModel.H" 運(yùn)動(dòng)動(dòng)量輸運(yùn)模型 ?這個(gè)是動(dòng)量方程
#include "kinematicMomentumTransportModel.H" ?
// 3
// -I$(LIB_SRC)/transportModels/lnInclude
//這個(gè)頭文件是在 transportModels/singlePhaseTransportModel
// 等于是transportModels 里面有dynamicTransportModel dynamicTransportModel
// kinematicTransportModel ?viscosityModels 你要使用那個(gè) 取決于你要計(jì)算的模型
// 然后包括在里面 要用的那個(gè)咱自己不知道咋搞 從文獻(xiàn)里面看 我的LNG分層 是什么動(dòng)量傳輸模型呢?
// 位置是在src/transportModels下 應(yīng)該叫傳輸模型 父類(lèi)是IOdictionary 和 kinematicTransportModel
// 和上面的那個(gè)kinematicMomentumTransportModel.H 不一樣?。。?!
// 還是包含了lnInclude 里面的所有頭文件 將里面的一個(gè) singlePhaseTransportModel.H,拿出來(lái)用
// 這個(gè)是單相輸運(yùn)方程
#include "singlePhaseTransportModel.H"
// 4
// -I$(LIB_SRC)/finiteVolume/lnInclude \
// /finiteVolume/lnInclude/fvCFD.H
// 從這里就能找到fvCFD.H生成的庫(kù)文件,然后從雞蛋籃子里面,取出來(lái)"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 文件夾中取出來(lái)"pressureReference.H"
#include "pressureReference.H"
// 7
// -I$(LIB_SRC)/finiteVolume/lnInclude
// /finiteVolume/lnInclude/fvModels.H
// 同理,從 lnInclude 文件夾中取出來(lái)"fvModels.H"
#include "fvModels.H"
// 8
// -I$(LIB_SRC)/finiteVolume/lnInclude
// /finiteVolume/lnInclude/fvConstraints.H
#include "fvConstraints.H"
// 9
// -I$(LIB_SRC)/meshTools/lnInclude ? 這是按照路徑來(lái)的,按照路徑找就行
// Collection of static functions to do various simple mesh related things.
// 也就是關(guān)于網(wǎng)格操作的工具都在這里面,應(yīng)該是對(duì)應(yīng)求解器中
// 10
// 這個(gè)應(yīng)該是取樣 里面的所有頭文件都搞一遍 ?現(xiàn)在還不知道在哪里使用。
// -I$(LIB_SRC)/sampling/lnInclude ?
// 4-8 都是在 -I$(LIB_SRC)/meshTools/lnInclude
// 9 是網(wǎng)格工具 ?這倆基本在任何OF的求解器中都有
// 前面那1 盲猜是為了案例中選擇湍流模型準(zhǔn)備的
// 2-3是為了選擇與其匹配的動(dòng)量方程準(zhǔn)備的