【OpenFOAM案例】01 elbow


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

1 拷貝tutorials文件

啟動終端,且拷貝tutorials文件夾中的文件。利用命令:

cp -r $FOAM_TUTORIALS/incompressible/icoFoam/elbow/ $FOAM_RUN

將案例文件拷貝到了$FOAM_RUN路徑中。

此時可以利用命令查看目錄結構:

tree $FOAM_RUN/elbow

查詢結果如下圖所示。

$ 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網格。

采用命令:

cd $FOAM_RUN/elbow
fluentMeshToFoam elbow.msh

如下圖所示。

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

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進行后處理。

速度分布如圖所示。

壓力分布如圖所示。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM