OpenFOAM-圓柱繞流

首先進行建模操作,任何建模軟件均可,本教程采用ICEM直接建模,模型尺寸如下:

1.jpg

2.jpg

建成的模型如下:

3.jpg

對建好的模型進行網格劃分,劃分完成的網格如下:

4.jpg

對圓柱的近壁面進行了加密處理,將劃分的網格導出為ASCII.msh格式(注:二進制的.msh格式OpenFOAM是不支持網格轉換的)

接下來轉入OpenFOAM的操作:

首先新建一個文件夾,名字任取,本教程中我將該文件夾命名為:train

5.jpg

然后進入OpenFOAM的安裝目錄下查找一個tutorial的文件夾,然后按照:

6.jpg

7.jpg

8.jpg

9.jpg

icoFoam求解是用來求解不可壓縮牛頓層流,雖然最后為穩態,但是也可以通過計算瞬態來達到穩態。我們只需要拷貝icoFoam文件夾下的任意一個算例的0文件夾、constant文件夾和system文件夾。這里我們選擇cavity算例文件夾下的三個文件夾,將他們拷貝到剛才新建的train文件夾下,然后將剛才導出的網格文件拷貝到train文件夾下,在trian文件夾下打開終端,輸入fluentMeshToFoam命令:

10.jpg

然后開始進行轉換

11.jpg

轉換完成后,constan文件夾下會多出一個polyMesh文件夾

12.jpg

我們打開polyMesh文件夾,對其中的boundary文件進行編輯,將UPDOWN邊界的Type改為symmetry,記得后面一定要跟上分號,否則后面計算會報錯

13.jpg

我們查看constant文件夾下的transportproperties文件,此處我們設置運動黏度為0.01m2/s

文件如下:

/*--------------------------------*- C++ -*----------------------------------*\

| =========                 |                                                 |

| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |

|  \\    /   O peration     | Version:  3.0.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文件夾下進行操作:

0文件夾下我們可以看到UP兩個文件:

14.jpg

邊界條件如圖所示:

15.jpg

我們設置來流速度為0.1m/s,則接下來修改P文件和U文件

P文件當中的內容如下修改:

/*--------------------------------*- C++ -*----------------------------------*\

| =========                 |                                                 |

| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |

|  \\    /   O peration     | Version:  3.0.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

{

    INLET

    {

        type            freestreamPressure;

    }

    OUTLET

    {

        type            freestreamPressure;

    }

    UP

    {

        type            symmetry;

    }

    DOWN

    {

        type            symmetry;

    }

    CYLINDER

    {

        type            zeroGradient;

    }

    frontAndBackPlanes

    {

        type            empty;

    }

}

 

// ************************************************************************* //

U文件當中的內容如下修改:

/*--------------------------------*- C++ -*----------------------------------*\

| =========                 |                                                 |

| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |

|  \\    /   O peration     | Version:  3.0.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.1 0 0);

 

boundaryField

{

    INLET

    {

        type                   freestream;

        freestreamValue      uniform (0.1 0 0);

    }

    OUTLET

    {

        type                   freestream;

        freestreamValue      uniform (0.1 0 0);

    }

    UP

    {

        type                   symmetry;

    }

    DOWN

    {

        type                   symmetry;

    }

    CYLINDER

    {

        type                   fixedValue;

        value                uniform (0 0 0);

    }

    frontAndBackPlanes

    {

        type                   empty;

    }

}

 

// ************************************************************************* //

說明一下:

fixedValue

基本格式為:

邊界名稱

{

   type               fixedValue;

   value              uniform 向量;

}

說明:

該邊界無需多說,在邊界上的值為固定值,不可變動,只需要寫入類似(0,0,0)這樣的向量即可。對于不可壓縮求解器來說,該種邊界是穩定邊界。

 

freestream

基本格式為:

邊界名稱

{

   type               freestream;

   freestreamValue    uniform 向量值;

}

說明:

該邊界是一種fixedValuezeroGradient的混合邊界,該邊界比起fixedValue邊界更加靈活。出流時為zeroGradient邊界,入流時則為fixedValue邊界。該邊界條件廣泛應用于外流場的模擬當中。

 

freestreamPressure

基本格式:

邊界名稱

{

   type               freestreamPressure;

}

說明:

一般壓力邊界設置為freestreamPressure,那么對應邊界的壓力邊界就需要設置為freestream。該邊界是一種zeroGradient邊界,但是在邊界需要保證ρ×Sf×freestreamValue(質量流量)的值為常數。(注:Sf是邊界單元的面積)

 

symmetry

基本格式:

邊界名稱

{

type               symmetry;

}

說明:

   對稱邊界條件主要用于消除邊界對流場計算的影響,可以將此邊界想象為一面鏡子,來什么反彈什么。

 

empty

基本格式:

邊界名稱

{

type               empty;

}

說明:

   該邊界主要二維模擬。

 

我們進入system文件夾下找到controldict文件,我們修改此文件:

16.jpg

文件內容如下:

/*--------------------------------*- C++ -*----------------------------------*\

| =========                 |                                                 |

| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |

|  \\    /   O peration     | Version:  3.0.x                                 |

|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |

|    \\/     M anipulation  |                                                 |

\*---------------------------------------------------------------------------*/

FoamFile

{

    version     2.0;

    format      ascii;

    class       dictionary;

    location    "system";

    object      controlDict;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

 

application     icoFoam;

 

startFrom       startTime;

 

startTime       0;

 

stopAt          endTime;

 

endTime         1000;

 

deltaT          0.01;

 

writeControl    runTime;

 

writeInterval   10;

 

purgeWrite      0;

 

writeFormat     ascii;

 

writePrecision  6;

 

writeCompression off;

 

timeFormat      general;

 

timePrecision   6;

 

runTimeModifiable true;

 

 

// ************************************************************************* //

最后回到train文件夾下,打開終端,輸入icoFoam開始計算

17.jpg

等到計算結束

18.jpg

19.jpg

然后可將計算結果導入paraview或者tecplot當中進行后處理

20.jpg

教程到此結束,未盡事宜,可參考視頻教程。

OpenFOAM-圓柱繞流的圖21


登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

14
11