本案例演示利用OpenFOAM的icoFoam求解器計算彎曲管道中的混合流動問題。linux
啓動終端,且拷貝tutorials文件夾中的文件。利用命令:shell
cp -r $FOAM_TUTORIALS/incompressible/icoFoam/elbow/ $FOAM_RUN
將案例文件拷貝到了$FOAM_RUN路徑中。ubuntu
此時能夠利用命令查看目錄結構:bash
tree $FOAM_RUN/elbow
查詢結果以下圖所示。app
$ tree $FOAM_RUN/elbow /home/ofuser/blueCFD/ofuser-of4/run/elbow ├── 0 │ ├── p │ └── U ├── Allclean ├── Allrun ├── constant │ └── transportProperties ├── elbow.msh └── system ├── controlDict ├── foamDataToFluentDict ├── fvSchemes └── fvSolution 3 directories, 10 files
包含三個文件夾:0、constant以及system。編輯器
案例中的網格使用的是msh文件,這裏要經過命令將其轉化爲openfoam網格。工具
採用命令:code
cd $FOAM_RUN/elbow fluentMeshToFoam elbow.msh
以下圖所示。orm
注:Fluent提供了衆多的工具用於將外部網格文件轉換爲OpenFOAM網格ip
OpenFOAM的case組織結構如如所示。
包含三個基本文件夾:
本案例中0文件夾中包含兩個文件:p文件與U文件,分別設置初始時刻的壓力與速度。
利用文本編輯器打開p文件。在blueCFD中能夠使用命令(先進入0目錄,而後用nano打開p文件):
cd 0 nano p
注意:在不一樣的linux系統中能夠使用不一樣的文本編輯器,如在ubuntu系統中,能夠使用gedit、nano或vi
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 4.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { wall-4 { type zeroGradient; } velocity-inlet-5 { type zeroGradient; } velocity-inlet-6 { type zeroGradient; } pressure-outlet-7 { type fixedValue; value uniform 0; } wall-8 { type zeroGradient; } frontAndBackPlanes { type empty; } } // ************************************************************************* //
文件內容:
關於OpenFOAM中的邊界類型:
當fixedvalue的值與internalField的值相同時,fixedValue邊界與zeroGradient邊界等效。
U文件中指定邊界速度值。利用文本編輯器打開U文件。
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 4.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volVectorField; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { wall-4 { type noSlip; } velocity-inlet-5 { type fixedValue; value uniform (1 0 0); } velocity-inlet-6 { type fixedValue; value uniform (0 3 0); } pressure-outlet-7 { type zeroGradient; } wall-8 { type noSlip; } frontAndBackPlanes { type empty; } } // ************************************************************************* //
文件中指定邊界velocity-inlet-5的速度爲x方向1m/s,velocity-inlet-6邊界速度爲y方向3m/s。
本案例中U文件不須要修改。
constant目錄下保存了網格數據與物性參數等。
├── polyMesh │ ├── boundary │ ├── cellZones │ ├── faces │ ├── faceZones │ ├── neighbour │ ├── owner │ ├── points │ └── pointZones └── transportProperties 1 directory, 9 files
本案例中的網格來自於外部轉化,所以不須要修改polyMesh文件夾中的內容。
transportProperties文件中存儲了傳輸屬性參數,用文本文件打開來看。
nano transportProperties
此文件的內容:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 4.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object transportProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // nu [0 2 -1 0 0 0 0] 0.01; // ************************************************************************* //
此文件中只是定義了粘度爲0.01 m2/s。在不可壓縮流動中,只須要定義此參數。
system目錄下包含四個文件。
. ├── controlDict ├── foamDataToFluentDict ├── fvSchemes └── fvSolution 0 directories, 4 files
本案例須要關注的是文件controlDict。用文本文件打開此文件,修改endTime爲75。其餘參數保持默認。
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 4.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object controlDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // application icoFoam; startFrom latestTime; startTime 0; stopAt endTime; endTime 75; deltaT 0.05; writeControl timeStep; writeInterval 20; purgeWrite 0; writeFormat ascii; writePrecision 6; writeCompression off; timeFormat general; timePrecision 6; runTimeModifiable true; // ************************************************************************* //
在case路徑下輸入命令:
icoFoam
計算自動進行,直至求解完成。
輸入命令:
paraFoam
系統啓動paraView進行後處理。
速度分佈如圖所示。
壓力分佈如圖所示。