【OpenFOAM案例】01 elbow

本案例演示利用OpenFOAM的icoFoam求解器計算彎曲管道中的混合流動問題。linux

1 拷貝tutorials文件

啓動終端,且拷貝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。編輯器

2 轉換網格

案例中的網格使用的是msh文件,這裏要經過命令將其轉化爲openfoam網格。工具

採用命令:code

cd $FOAM_RUN/elbow
fluentMeshToFoam elbow.msh

以下圖所示。orm

注:Fluent提供了衆多的工具用於將外部網格文件轉換爲OpenFOAM網格ip

3 case結構

OpenFOAM的case組織結構如如所示。

包含三個基本文件夾:

  • 0:存儲物理量的初始值
  • constant:存儲網格參數、邊界條件以及物理屬性(如材料參數、湍流參數等)
  • system:存儲一些求解控制參數

4 設置0文件夾

本案例中0文件夾中包含兩個文件:p文件與U文件,分別設置初始時刻的壓力與速度。

4.1 修改p文件

利用文本編輯器打開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;
    }
}
 
// ************************************************************************* //

文件內容:

  • 壓力單位是m2/s2。OpenFOAM不可壓縮求解器中壓力定義爲單位質量的壓力。即壓力與密度的比值。
  • 量綱矩陣:[質量 長度 時間 溫度 物質的量]
  • internalField關鍵字定義的是求解區域中的物理量
  • 邊界類型:zeroGradient、fixedValue及empty。

關於OpenFOAM中的邊界類型:

  • zeroGradient:邊界物理量梯度爲0。(Neumann邊界)
  • fixedValue:邊界物理量爲定值。(Direchlet邊界)
  • empty:在利用2D模型模擬3D狀況時,側邊同城設定爲empty邊界,在計算過程當中,此邊界並不參與求解。

當fixedvalue的值與internalField的值相同時,fixedValue邊界與zeroGradient邊界等效。

4.2 U文件

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文件不須要修改。

5 constant目錄

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。在不可壓縮流動中,只須要定義此參數。

6 system目錄

system目錄下包含四個文件。

.
├── controlDict
├── foamDataToFluentDict
├── fvSchemes
└── fvSolution
 
0 directories, 4 files
  • fvShceme:該文件中定義了求解過程當中所採用的各類離散格式。
  • fvSolution:該文件包含壓力速度耦合方法、用於求解差份量的數值方法,以及收斂殘差等。
  • controlDict:此文件中定義了各類求解控制參數,如時間步長、文件保存間隔等。
  • foamDataToFluentDict:此文件只有當使用了fluentMeshToFoam命令纔會出現,通常狀況下不用修改。

本案例須要關注的是文件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;
 
 
// ************************************************************************* //

7 求解計算

case路徑下輸入命令:

icoFoam

計算自動進行,直至求解完成。

8 計算後處理

輸入命令:

paraFoam

系統啓動paraView進行後處理。

速度分佈如圖所示。

壓力分佈如圖所示。

相關文章
相關標籤/搜索