09、openfoam案例之圆柱绕流

打印 上一主题 下一主题

主题 783|帖子 783|积分 2349

1、原视频地址

https://www.bilibili.com/video/BV1ME411A73k/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=33b50a4dd201d7564e6e63d321809ce9
2、网格划分及导入

2.1 网格划分

本案例使用ICEM划分网格,并导入openfoam中

2.2 网格转换

目前通过在 3 维中定义网格来处理 2 维几何,其中前平面和后平面定义为空边界块类型。读取二维 Fluent 网格时,转换器会自动在第三方向拉伸网格并添加空面片,将其命名为 frontAndBackPlanes。
fluentMeshToFoam:读取fluent.msh网格文件。(指南的5.5章)
命令:
  1. fluentMeshToFoam <meshFile>
复制代码

2.3 检查网格
  1. checkMesh
复制代码

system/blockMeshDict文件可以删除
3、边界条件

3.1 网格boundary

这是转换网格后自动生成的。
  1. /*--------------------------------*- C++ -*----------------------------------*\
  2.   =========                 |
  3.   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
  4.    \\    /   O peration     | Website:  https://openfoam.org
  5.     \\  /    A nd           | Version:  9
  6.      \\/     M anipulation  |
  7. \*---------------------------------------------------------------------------*/
  8. FoamFile
  9. {
  10.     format      ascii;
  11.     class       polyBoundaryMesh;
  12.     location    "constant/polyMesh";
  13.     object      boundary;
  14. }
  15. // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
  16. 5
  17. (
  18.     INLET
  19.     {
  20.         type            patch;
  21.         nFaces          30;
  22.         startFace       13060;
  23.     }
  24.     OUTLET
  25.     {
  26.         type            patch;
  27.         nFaces          30;
  28.         startFace       13090;
  29.     }
  30.     WALL
  31.     {
  32.         type            wall;
  33.         inGroups        List<word> 1(wall);
  34.         nFaces          100;
  35.         startFace       13120;
  36.     }
  37.     CYLINDER
  38.     {
  39.         type            wall;
  40.         inGroups        List<word> 1(wall);
  41.         nFaces          120;
  42.         startFace       13220;
  43.     }
  44.     frontAndBackPlanes // 空,表示2维
  45.     {
  46.         type            empty;
  47.         inGroups        List<word> 1(empty);
  48.         nFaces          13200;
  49.         startFace       13340;
  50.     }
  51. )
  52. // ************************************************************************* //
复制代码
3.2 0/P文件


  • 在OpenFOAM中,zeroGradient是一种边界条件,用于指定在边界上的量的梯度为零,这意味着该边界的值不会改变。例如,对于速度边界条件,zeroGradient表示速度沿该边界的梯度为零,即速度沿该边界的值不会改变。通常,这种边界条件在流体边界和对称边界上使用。在代码中,它表示为:
  • 在 OpenFOAM 中,fixedValue 是一种边界条件类型,表示在特定的边界上施加固定的值。这个值通常是在 0、uniform、nonuniform 或 list 中指定的,具体取决于场的类型和边界的特征。例如,在一个流体模拟中,可以将固定的速度值施加在流场的边界上,这可以通过设置边界条件类型为 fixedValue 并指定速度值来实现。同样地,可以将固定的温度、压力或其他物理量值应用于相应的场变量上。在 OpenFOAM 中,边界条件的设置是在 case 目录下的 0 文件夹中的 boundary 文件中完成的。使用 fixedValue 边界条件时,用户需要指定固定的值并将其应用于适当的边界。
  • 在OpenFOAM中,empty边界类型用于定义没有物理边界或者该边界不需要与周围区域相互作用的情况。例如,计算空气在室内流动的情况,室内墙壁可以定义为empty边界。在empty边界中,OpenFOAM不会对物理量进行任何修改,因此需要在边界条件的设置中进行额外的注意。在empty边界中,通常会使用fixedValue或者fixedGradient来设置边界条件。
  1. /*--------------------------------*- C++ -*----------------------------------*\
  2.   =========                 |
  3.   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
  4.    \\    /   O peration     | Website:  https://openfoam.org
  5.     \\  /    A nd           | Version:  9
  6.      \\/     M anipulation  |
  7. \*---------------------------------------------------------------------------*/
  8. FoamFile
  9. {
  10.     format      ascii;
  11.     class       volScalarField;
  12.     object      p;
  13. }
  14. // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
  15. dimensions      [0 2 -2 0 0 0 0];
  16. internalField   uniform 0;
  17. boundaryField
  18. {
  19.     INLET // 压力梯度为0
  20.     {
  21.         type            zeroGradient; // 压力梯度为0
  22.     }
  23.    
  24.     WALL
  25.     {
  26.         type            zeroGradient;
  27.     }
  28.     CYLINDER
  29.     {
  30.         type            zeroGradient;
  31.     }
  32.    
  33.     OUTLET // 出口压力为固定值0
  34.     {
  35.         type            fixedValue;
  36.         value           uniform 0;
  37.     }
  38.     frontAndBack
  39.     {
  40.         type            empty;
  41.     }
  42. }
  43. // ************************************************************************* //
复制代码
3.3 0/U文件


  • internalField是指某个场量在整个计算域内的初始值。在进行流体流动计算时,internalField可以表示压力、速度、温度等场量的初始值。internalField可以被定义为标量、向量、对称张量和非对称张量场量。常见的初始化方法包括常数、分布式初始化和从其他场量插值得到。例如,对于速度场量,可以通过设置其为一个初始速度场量或者通过从初始条件的压力梯度中计算得到。一旦internalField被定义,将无法在后续的计算过程中修改。因此,需要根据计算需求仔细地定义initialField。
  1. /*--------------------------------*- C++ -*----------------------------------*\
  2.   =========                 |
  3.   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
  4.    \\    /   O peration     | Website:  https://openfoam.org
  5.     \\  /    A nd           | Version:  9
  6.      \\/     M anipulation  |
  7. \*---------------------------------------------------------------------------*/
  8. FoamFile
  9. {
  10.     format      ascii;
  11.     class       volVectorField;
  12.     object      U;
  13. }
  14. // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
  15. dimensions      [0 1 -1 0 0 0 0];
  16. // 场内初始值
  17. internalField   uniform (50 0 0);
  18. boundaryField
  19. {
  20.     INLET // 速度为固定值ux=50m/s
  21.     {
  22.         type            fixedValue;
  23.         value           uniform (50 0 0);
  24.     }
  25.    
  26.     WALL
  27.     {
  28.         type            fixedValue;
  29.         value           uniform (50 0 0);
  30.     }
  31.    
  32.     OUTLET
  33.     {
  34.         type            zeroGradient;
  35.     }
  36.     CYLINDER
  37.     {
  38.         type            fixedValue;
  39.         value           uniform (0 0 0);
  40.     }
  41.     frontAndBack
  42.     {
  43.         type            empty;
  44.     }
  45. }
  46. // ************************************************************************* //
复制代码
oepnfoam中zeroGradient和uniform (0 0 0)的区别:
zeroGradient只表示在边界上梯度不变,并不是不随时间变化。
uniform (0 0 0)更强硬一些,就是为某个值。
4、计算参数

4.1 controlDict
  1. /*--------------------------------*- C++ -*----------------------------------*\
  2.   =========                 |
  3.   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
  4.    \\    /   O peration     | Website:  https://openfoam.org
  5.     \\  /    A nd           | Version:  9
  6.      \\/     M anipulation  |
  7. \*---------------------------------------------------------------------------*/
  8. FoamFile
  9. {
  10.     format      ascii;
  11.     class       dictionary;
  12.     location    "system";
  13.     object      controlDict;
  14. }
  15. // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
  16. application     icoFoam;
  17. startFrom       startTime;
  18. startTime       0;
  19. stopAt          endTime;
  20. endTime         0.05;
  21. deltaT          0.00001; // Co = U * t / x
  22. writeControl    timeStep;
  23. writeInterval   100;
  24. purgeWrite      0;
  25. writeFormat     ascii;
  26. writePrecision  6;
  27. writeCompression off;
  28. timeFormat      general;
  29. timePrecision   6;
  30. runTimeModifiable true;
  31. // ************************************************************************* //
复制代码
4.2 fvSchemes
  1. /*--------------------------------*- C++ -*----------------------------------*\
  2.   =========                 |
  3.   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
  4.    \\    /   O peration     | Website:  https://openfoam.org
  5.     \\  /    A nd           | Version:  9
  6.      \\/     M anipulation  |
  7. \*---------------------------------------------------------------------------*/
  8. FoamFile
  9. {
  10.     format      ascii;
  11.     class       dictionary;
  12.     location    "system";
  13.     object      fvSchemes;
  14. }
  15. // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
  16. ddtSchemes
  17. {
  18.     default         Euler;
  19. }
  20. gradSchemes
  21. {
  22.     default         Gauss linear;
  23.     grad(p)         Gauss linear;
  24. }
  25. divSchemes
  26. {
  27.     default         none;
  28.     div(phi,U)      Gauss linear;
  29. }
  30. laplacianSchemes
  31. {
  32.     default         Gauss linear orthogonal;
  33. }
  34. interpolationSchemes
  35. {
  36.     default         linear;
  37. }
  38. snGradSchemes
  39. {
  40.     default         orthogonal;
  41. }
  42. // ************************************************************************* //
复制代码
4.3 fvSolution
  1. /*--------------------------------*- C++ -*----------------------------------*\
  2.   =========                 |
  3.   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
  4.    \\    /   O peration     | Website:  https://openfoam.org
  5.     \\  /    A nd           | Version:  9
  6.      \\/     M anipulation  |
  7. \*---------------------------------------------------------------------------*/
  8. FoamFile
  9. {
  10.     format      ascii;
  11.     class       dictionary;
  12.     location    "system";
  13.     object      fvSolution;
  14. }
  15. // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
  16. solvers
  17. {
  18.     p
  19.     {
  20.         solver          PCG;
  21.         preconditioner  DIC;
  22.         tolerance       1e-06;
  23.         relTol          0.05;
  24.     }
  25.     pFinal
  26.     {
  27.         $p;
  28.         relTol          0;
  29.     }
  30.     U
  31.     {
  32.         solver          smoothSolver;
  33.         smoother        symGaussSeidel;
  34.         tolerance       1e-05;
  35.         relTol          0;
  36.     }
  37. }
  38. PISO
  39. {
  40.     nCorrectors     2;
  41.     nNonOrthogonalCorrectors 0;
  42.     pRefCell        0;
  43.     pRefValue       0;
  44. }
  45. // ************************************************************************* //
复制代码
5、计算
  1. icoFoam > log
复制代码

6、后处理

生成临时后处理文件
  1. paraFoam -builtin
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

圆咕噜咕噜

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表