openFOAM combustion模塊學習筆記——程序結構

基礎資料

廢話不多說,首先羅列一些筆者參考的資料

openFOAM的官方網站爲:https://openfoam.org/
東嶽流體網站:http://www.dyfluid.com/
本文使用的爲openFOAM7版本,可以從網上下載到提前預裝好的虛擬機,從而避免了安裝的麻煩。
openFOAM7安裝和虛擬機:http://www.dyfluid.com/docs/install.html
openFOAM7網頁用戶手冊:https://cfd.direct/openfoam/user-guide/
另外openFOAM還對應了一本英文的算法書《The Finite Volume Method in Computational Fluid Dynamics》,而且用戶手冊在CSDN可以找到中文翻譯版,其中一個版本主要爲東嶽流體翻譯。
另外在b站也有很多線上的視頻資料,這裏不一一羅列。

combustion/chem文件夾

我們主要關注燃燒,即如下路徑中的幾個算例以及其拓展

~/OpenFOAM/OpenFOAM-7/tutorials/combustion/

這個模塊中,包含如下部分:

dyfluid@dyfluid:~/OpenFOAM/OpenFOAM-7/tutorials/combustion$ ls
chemFoam        fireFoam  reactingFoam  XiFoam
coldEngineFoam  PDRFoam   XiEngineFoam

目前筆者正在閱讀的是chemFoam,這裏主要計算的是純化學反應。

dyfluid@dyfluid:~/OpenFOAM/OpenFOAM-7/tutorials/combustion$ cd chemFoam/
dyfluid@dyfluid:~/OpenFOAM/OpenFOAM-7/tutorials/combustion/chemFoam$ ls
gri  h2  ic8h18  ic8h18_TDAC  nc7h16  README

代碼還給我們準備了README文件,內容如下:

Stiff chemistry solver validation test cases

gri    : GRI-Mech 3.0. CH4 combustion, 53 species, 325 reactions
h2     : H2 combustion, 10 species, 27 reactions
nc7h16 : n-Heptane combustion, 544 species, 2446 reactions
ic8h18 : iso-Octane combustion, 874 species, 3796 reactions

Results interpreted in 'validation' sub-directory, where OpenFOAM results
are compared against those predicted by CHEMKIN II.

Overall the best performing ODE solver is seulex followed closely by rodas23.

即當前幾個文件夾分別對應幾個純化學反應,用來驗證剛性的化學反應求解器是否有效。並在validation中將當前結果與CHEMKIN II中的計算結果進行比較。結論是seulexrodas23這兩個求解器性能較好。

h2算例的執行

我們參考OpenFOAM教程中的方法,首先將h2整個文件夾複製到如下路徑:

dyfluid@dyfluid:~/OpenFOAM/dyfluid-7/run/h2/validation$ cd ~/OpenFOAM/OpenFOAM-7/tutorials/combustion/chemFoam/
dyfluid@dyfluid:~/OpenFOAM/OpenFOAM-7/tutorials/combustion/chemFoam$ cp -rf h2/ ~/OpenFOAM/dyfluid-7/run/

進入複製後的文件夾中,運行方式有兩種,可以通過文件夾中的./Allrun./Allclean運行以及結果的刪除,或者直接執行預設的命令chemFoam。注意兩者的區別,前者爲編譯好的可執行文件,後者爲一個預設的命令。從執行結果來看,前者將本來應該輸出到終端的部分,保存在了一個日誌文件log.ChemFoam中。

這裏給出一部分執行輸出:

dyfluid@dyfluid:~/OpenFOAM/dyfluid-7/run/h2$ chemFoam 
/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  7
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
Build  : 7-f1e51ce8d094
Exec   : chemFoam
Date   : Jun 08 2020
Time   : 21:36:19
Host   : "dyfluid"
PID    : 4519
I/O    : uncollated
Case   : /home/dyfluid/OpenFOAM/dyfluid-7/run/h2
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Overriding DebugSwitches according to controlDict
    SolverPerformance 0;

Constructing single cell mesh

Reading initial conditions.

Creating base fields for time 0
Reading thermophysical properties

Selecting thermodynamics package 
{
    type            heRhoThermo;
    mixture         reactingMixture;
    transport       sutherland;
    thermo          janaf;
    energy          sensibleEnthalpy;
    equationOfState perfectGas;
    specie          specie;
}

Selecting chemistryReader chemkinReader
Selecting chemistry solver 
{
    solver          ode;
    method          standard;
}

StandardChemistryModel: Number of species = 10 and reactions = 27
Selecting ODE solver seulex
Reading/calculating face flux field phi

pressure will be held constant.
 p   = 202650 [Pa]
 T   = 1000 [K] 
 rho = 0.589632 [kg/m^3]


Starting time loop

deltaT = 1e-07
Time = 1e-07

Qdot = -824.966, T = 1000, p = 202650, H2 = 0.0144672
ExecutionTime = 0.01 s  ClockTime = 0 s

deltaT = 1.9996e-07
Time = 2.9996e-07

Qdot = -789.321, T = 1000, p = 202650, H2 = 0.0144672
ExecutionTime = 0.01 s  ClockTime = 0 s

deltaT = 3.9976e-07
Time = 6.9972e-07

Qdot = -717.117, T = 1000, p = 202650, H2 = 0.0144672
ExecutionTime = 0.01 s  ClockTime = 0 s

deltaT = 7.9888e-07
Time = 1.4986e-06

Qdot = -575.829, T = 1000, p = 202650, H2 = 0.0144672
ExecutionTime = 0.01 s  ClockTime = 0 s

deltaT = 1.59776e-06
Time = 3.09636e-06

...

Number of steps = 45
End

chemFoam的源代碼

我們希望通過閱讀單獨的算例,瞭解openFOAM整體程序的運行機制,而不是純粹機械的改參數跑程序。而所有的程序代碼,保存在如下路徑:

dyfluid@dyfluid:~/OpenFOAM/OpenFOAM-7/applications

我們剛纔使用的chemFoam在其中的如下文件夾中:

dyfluid@dyfluid:~/OpenFOAM/OpenFOAM-7/applications/solvers/combustion/chemFoam

其中包括如下內容:

dyfluid@dyfluid:~/OpenFOAM/OpenFOAM-7/applications/solvers/combustion/chemFoam$ ls
chemFoam.C              hEqn.H                   setDeltaT.H
createBaseFields.H      Make                     solveChemistry.H
createControls.H        output.H                 thermoTypeFunctions.H
createFieldRefs.H       pEqn.H                   YEqn.H
createFields.H          readControls.H
createSingleCellMesh.H  readInitialConditions.H

好!本帖就到這裏,接下來會嘗試閱讀這裏面源文件的內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章