05、【算例】openFoam盖驱动空腔流动

打印 上一主题 下一主题

主题 1019|帖子 1019|积分 3057

管网:https://doc.cfd.direct/openfoam/user-guide-v9/cavity
一、算例实现

文件结构

  • 0:存放初场
  • constant:存放网格信息
  • system:存放网格划分、计算等工具

1、画网格
  1. blockMesh
复制代码

2、求解
  1. icoFoam
复制代码

3、保存文件
  1. touch cavity.OpenFOAM
复制代码
4、后处理
  1. paraview
复制代码
使用openFoamReader打开

显示所有边界

apply

二、网格加密

1、网格划分

在icoFoam文件夹内创建cavityFine文件夹,复制cavity文件夹内的constant和system文件夹至该文件夹。
在system/blockMeshDict文件改变网格数量,由之前的(20,20,1)改为(40,40,1),之后使用blockMesh生成网格信息

2、mapFields映射结果

将粗网格中的0.5结果,映射到细网格中。
修改controlDict文件

映射
mapFields ../cavity/cavity -consistent

3、计算并输出log文件
  1. // 计算并输出log文件
  2. icoFoam > log
  3. // 查看log文件
  4. cat log
  5. // 可以合并运行
  6. icoFoam > log && cat log
复制代码
4、calcType

可以对速度的某个量进行可视化处理并咬着计算域内的一条线来绘制一个二维的图
  1. postProcess -func "components(U)"
复制代码
此时会在时间步长文件夹下出现3个新文件

5、后处理

使用paraview加载数据,就会显示刚才计算出的值。

三、网格非均匀分布

1、修改blockMeshDict

在icoFoam文件夹内创建asMeshCavity文件夹,复制cavity文件夹内的constant和system文件夹至该文件夹。
修改constant/blockMeshDict文件,如下
  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.     object      blockMeshDict;
  13. }
  14. // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
  15. convertToMeters 0.1;
  16. vertices
  17. (
  18.     (0 0 0)
  19.     (0.5 0 0)
  20.     (1 0 0)
  21.     (0 0.5 0)
  22.     (0.5 0.5 0)
  23.     (1 0.5 0)
  24.     (0 1 0)
  25.     (0.5 1 0)
  26.     (1 1 0)
  27.     (0 0 0.1)
  28.     (0.5 0 0.1)
  29.     (1 0 0.1)
  30.     (0 0.5 0.1)
  31.     (0.5 0.5 0.1)
  32.     (1 0.5 0.1)
  33.     (0 1 0.1)
  34.     (0.5 1 0.1)
  35.     (1 1 0.1)
  36. );
  37. blocks
  38. (
  39.     hex (0 1 4 3 9 10 13 12) (10 10 1) simpleGrading (2 2 1)
  40.     hex (1 2 5 4 10 11 14 13) (10 10 1) simpleGrading (0.5 2 1)
  41.     hex (3 4 7 6 12 13 16 15) (10 10 1) simpleGrading (2 0.5 1)
  42.     hex (4 5 8 7 13 14 17 16) (10 10 1) simpleGrading (0.5 0.5 1)
  43. );
  44. edges
  45. (
  46. );
  47. boundary
  48. (
  49.     movingWall
  50.     {
  51.         type wall;
  52.         faces
  53.         (
  54.             (6 15 16 7)
  55.             (7 16 17 8)
  56.         );
  57.     }
  58.     fixedWalls
  59.     {
  60.         type wall;
  61.         faces
  62.         (
  63.             (3 12 15 6)
  64.             (0 9 12 3)
  65.             (0 1 10 9)
  66.             (1 2 11 10)
  67.             (2 5 14 11)
  68.             (5 8 17 14)
  69.         );
  70.     }
  71.     frontAndBack
  72.     {
  73.         type empty;
  74.         faces
  75.         (
  76.             (0 3 4 1)
  77.             (1 4 5 2)
  78.             (3 6 7 4)
  79.             (4 7 8 5)
  80.             (9 10 13 12)
  81.             (10 11 14 13)
  82.             (12 13 16 15)
  83.             (13 14 17 16)
  84.         );
  85.     }
  86. );
  87. mergePatchPairs
  88. (
  89. );
  90. // ************************************************************************* //
复制代码
2、画网格
  1. blockMesh
复制代码
3、生成asyMeshCavity.OpenFOAM文件
  1. touch asyMeshCavity.OpenFOAM
复制代码
4、后处理
  1. paraview
复制代码

5、修改时间步长



6、映射场

将cavityFine中的0.7文件映射过来
  1. mapFields -consistent ../cavityFine
复制代码
7、计算输出
  1. icoFoam > log
复制代码

四、大雷诺数

1、创建文件夹并拷贝

创建文件夹
  1. mkdir cavityHighRe
复制代码
拷贝cavity文件夹至该文件夹
  1. cp -r ../cavity/cavity/ .
复制代码
2、修改雷诺数

修改constant/transportProperties文件

即可提高雷诺数10倍
3、修改控制文件

从0.5开始计算到2s

4、计算
  1. nohup nice -19 icoFoam > log && cat log
复制代码

  • nohup:党用户退出登录时,程序依然执行;
  • nice:调整程序优先级,-20对应优先级最高,19对应优先级最低进程。
可以看出1.4s时Ux结束迭代,No Iterations 0表示速度求解停止。

五、RAS模型

进入pisoFoam/RAS/cavity

可以看到在0文件夹下有许多有关湍流模型的参数

在momentumTransport文件里定义模型
  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    "constant";
  13.     object      momentumTransport;
  14. }
  15. // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
  16. simulationType  RAS;
  17. RAS
  18. {
  19.     model           kEpsilon;
  20.     turbulence      on;
  21.     printCoeffs     on;
  22. }
  23. // ************************************************************************* //
复制代码
simulationType:laminar, RAS and LES
printCoeffs:为on时,这些参数会被输出到终端
六、CavityClipped

1、划分网格
  1. blockMesh
复制代码
2、复制0文件夹内容至0.5
  1. cp -r 0 0.5
复制代码
3、设置

controlDict文件开始时间设置为0.5,结束时间设置为0.6
system/mapFieldsDict文件
有两个参数
  1. patchMap        (lid movingWall);
  2. cuttingPatches  ();
复制代码

  • 当用户向把原始场的patches条件投影到背投影场的patches的时候,我们使用patchMap。
  • 当用户打算把原始场内的数据投影到被投影场的边界时,我们使用cuttingPatches列表
这里lib边界条件根cavity算例的movingWall边界条件是一致的。

4、计算
  1. icoFoam > log
复制代码
5、后处理


修改样式


修改Legend

绘制矢量图



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

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

科技颠覆者

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表