openfoam8 wave算例学习记录

手动运行算例

网格处理

Allrun里第一步为blockMesh划分网格。

此命令读取system/blockMeshDict字典文件。以下为该字典文件内容(已去掉文件头):

$ cat system/blockMeshDict
...
convertToMeters 1; //顾名思义,直译为转换成米,1表示以下数字的单位为米vertices //顶点
((0 -300 -10)  //以下八个点坐标可以想象出其为长方体(1200 -300 -10)(1200 300 -10)(0 300 -10)(0 -300 10)(1200 -300 10)(1200 300 10)(0 300 10)
);blocks
(hex (0 1 2 3 4 5 6 7) (67 40 1) simpleGrading (1 1 1) //网格数量,x方向67个,y方向40个,z方向1个网格
);edges
(
);defaultPatch
{name frontAndBack; type empty; //这个类型一看到,就说明本算例为2维
}boundary //其他四个面的定义
(left{type patch;faces((0 4 7 3));}right{type patch;faces((2 6 5 1));}bottom{type wall;faces((0 1 5 4));}top{type patch;faces((2 3 7 6));}
);mergePatchPairs
(
);// ************************************************************************* //

blockMeshDict内容较简单,此时终端中运行blockMesh命令。

$ blockMesh
...
Create timeCreating block mesh from"system/blockMeshDict" //读取的字典文件
Creating block edges
No non-planar block faces defined
Creating topology blocks
Creating topology patchesCreating block mesh topology
--> FOAM Warning :From function Foam::polyMesh::polyMesh(const Foam::IOobject&, Foam::pointField&&, const cellShapeList&, const faceListList&, const wordList&, const Foam::PtrList<Foam::dictionary>&, const Foam::word&, const Foam::word&, bool)in file meshes/polyMesh/polyMeshFromShapeMesh.C at line 873Found 2 undefined faces in mesh; adding to default patch. //此default patch字典里也定义了。Check topologyBasic statisticsNumber of internal faces : 0Number of boundary faces : 6Number of defined boundary faces : 6Number of undefined boundary faces : 0Checking patch -> block consistencyCreating block offsets
Creating merge list .Creating polyMesh from blockMesh
Creating patches
Creating cells
Creating points with scale 1Block 0 cell size :   //网格大小信息i : 17.9104 .. 17.9104j : 15k : 20Writing polyMesh
----------------
Mesh Information
----------------boundingBox: (0 -300 -10) (1200 300 10)nPoints: 5576nCells: 2680   //网格数nFaces: 10827nInternalFaces: 5253
----------------
Patches
----------------patch 0 (start: 5253 size: 40) name: leftpatch 1 (start: 5293 size: 40) name: rightpatch 2 (start: 5333 size: 67) name: bottompatch 3 (start: 5400 size: 67) name: toppatch 4 (start: 5467 size: 5360) name: frontAndBackEnd

运行结束后,继续运行paraFoam查看模型。

Allrun里第二步为extrudeMesh

这条命令几乎没用过,根据名称大致为扩展(延伸、拉长)网格。记得system文件夹中有extrudeMeshDict文件,此命令读取该文件。以下为该字典文件

FoamFile
{version     2.0;format      ascii;class       dictionary;location    "system";object      extrudeMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //constructFrom   mesh;sourceCase      ".";sourcePatches   (right); //猜测以right边界面为源flipNormals     false;nLayers         25; // xx层网格expansionRatio  1.09; //直译:膨胀率。如何计算呢,是最后一层网格是第一层的1.09倍还是1.09^25倍呢。extrudeModel    linearNormal;linearNormalCoeffs
{thickness       1500;
}mergeFaces      false;// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

由于该命令几乎没用过,里面各项意义不太理解。大致能猜测是以right边界面为起点,向其法向延伸1500,添加25个网格。接下来在终端中运行此命令。

$ extrudeMesh
...
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create timeCreate mesh for time = 0Selecting extrudeModel linearNormal
Extruding from mesh using model linearNormal
Collapsing edges < 0.0001 of bounding boxExtruding patches 1(right) on mesh "/home/yuno/OpenFOAM/yuno-8/run/tutorials/multiphase/interFoam/laminar/wave"Create mesh for time = 0Adding overall 0 processor patches.
Testing:"/home/yuno/OpenFOAM/yuno-8/run/tutorials/multiphase/interFoam/laminar/wave/system/fvSchemes"
Mesh bounding box : (0 -300 -10) (2700 300 10)with span : (2700 600 20)
Merge distance    : 0.002Collapsing edges < 0.002 ...Uncollapsed edges = 0 / 18797Number of points : 7626Not visited      : 0Not collapsed    : 7626Collapsed        : 0Collapsing 0 cells
Writing mesh to "constant/region0"Writing added cells to cellSet addedCellsEnd

paraFoam中查看

可以看到如猜测般从right边界延正法向延伸了1500,并添加了25层网格。最后一层大约140=17.9104(见blockMesh输出网格大小)*1.09^25。可见膨胀率是层层叠加的。

第三步 网格加密

Allrun里一共加密了6次,其中前两次为x方向,后四次为y方向。接下来一次一次来运行。

topoSet与refineMesh组合为加密网格常用命令。topoSet选取加密区域,refineMesh进行网格加密(选定方向网格小一半)。

接下来先查看topoSetDict1

$  cat system/topoSetDict1
...
FoamFile
{version     2.0;format      ascii;class       dictionary;location    "system";object      topoSetDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //actions
({name    box; //域名称,可自定义名称type    cellSet; // 直译:单元集和action  new;  //新生成一个cellSetsource  boxToCell; //通过boxToCell的方式选定区域sourceInfo{box (-1e6 -40 -1e6) (1300 40 1e6); //矩形体的长对角点}}
);// ************************************************************************* //

在终端中运行topoSet -dict system/topoSetDict1-dict指定该命令读取的字典文件,默认为(comandName)Dict

$ topoSet -dict system/topoSetDict1
...
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create timeCreate polyMesh for time = 0Reading topoSetDictTime = 0mesh not changed.
Created cellSet boxApplying source boxToCellAdding cells with center within boxes 1((-1e+06 -40 -1e+06) (1300 40 1e+06))cellSet box now size 432
End

此步无法在paraview中观察到,此命令会在constant/polyMesh/sets中生成一个域名称的文件,此处为box。文件中为432个网格(的编号)。

其中adddedCells是上一步extrudeMesh生成的文件。

接下来查看refineMesh读取的refineMeshDictX文件。

$ cat system/refineMeshDictX
...
FoamFile
{version     2.0;format      ascii;class       dictionary;location    "system";object      refineMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //set box; //上一步topoSet中定义的域名称coordinateSystem global;globalCoeffs
{tan1 (1 0 0); //X方向tan2 (0 1 0); //Y方向
}directions
(tan1   //此处选择了X方向,可以选择多个方向
);useHexTopology  true;geometricCut    false;writeMesh       false;// ************************************************************************* //

继续在终端运行 refineMesh -dict system/refineMeshDictX -overwrite。其中选项-overwrite是将加密后的网格写入初始时刻,读者们可以试试不加此选项以了解其文件的输出。
现在可以在paraFoam中查看网格了。

该命令在topoSet中选定的区域在选定的方向对半分网格。

refineMeshDictYrefineMeshDictX的区别只在 directions里。
接下来的五组网格加密做完之后,网格如图所示。

到此,网格划分的操作就结束了。接下来为设定初始场。

openfoam v8 波浪算例学习日记: 3.手动运行算例相关推荐

  1. openfoam v8 波浪算例学习日记: 6.运行算例

    算例运行 在setWave命令之后就是算例运行,Allrun中在运行求解器之前进行了域分解命令decomposePar来并行计算. decomposePar读取system/decomposeParD ...

  2. openfoam v8 波浪算例学习日记: 5.边界条件及初始条件

    边界条件及初始条件 此波浪算例所需的初始条件有alpha.water p_rgh U. 1.alpha.water.orig文件 $ cat 0/alpha.water.orig ... FoamFi ...

  3. 【OpenFOAM】——OpenFOAM入门算例学习

    1  明确目标--为啥费老大劲儿学习OpenFOAM 学习OpenFOAM主要出于课题需要,希望实现以下几个目标: l  [ ]学会用SnappyHexMesh生成高质量网格: l  [ ]学习使用O ...

  4. 非静压模型NHWAVE学习(7)——波浪变形模拟算例学习(Wave transformation over an elliptical shoal)

    波浪变形模拟算例学习(Wave transformation over an elliptical shoal) 算例简介 地形与网格 运行参数配置 模型的编译运行 模拟结果处理 本blog介绍了NH ...

  5. 非静压模型NHWAVE学习(9)——波浪破碎RANS紊流模型算例学习(Wave Breaking on a Planar Beach)

    NHWAVE波浪破碎RANS紊流模型算例学习(Wave Breaking on a Planar Beach) 算例简介 地形与网格 运行参数配置 模型的编译运行 模拟结果 本blog介绍了NHWAV ...

  6. 非静压模型NHWAVE学习(6)——波浪模拟算例学习(Periodic wave over a submerged bar)

    波浪模拟算例学习(Periodic wave over a submerged bar) 算例简介 网格与地形 运行参数配置 模型的编译运行及模拟结果 本blog介绍了NHWAVE模型自带算例Peri ...

  7. 非静压模型NHWAVE学习(8)——波浪破碎模拟算例学习(Breaking solitary wave run-up)

    NHWAVE波浪破碎模拟算例学习(Breaking solitary wave run-up) 算例简介 地形与网格 运行参数配置 模型的编译运行 模拟结果处理 本blog介绍了NHWAVE模型自带算 ...

  8. 【MATLAB深度学习工具箱】学习笔记--体脂估计算例再分析:拟合神经网络fitnet里面的函数】

    介绍 上一篇 [MATLAB深度学习工具箱]学习笔记--体脂估计算例再分析:拟合神经网络fitnet里面的数据结构]_bear_miao的博客-CSDN博客原文链接如下[MATLAB深度学习工具箱]学 ...

  9. 语言余一个负数_C语言学习日记(8)——整数溢出

    小时候喜欢玩电子计算器,觉得很神奇,想要算什么数,立刻就能算出来.当时看着计算器的液晶屏幕就想,如果算一个很大的数,超过了屏幕上面数字的位数,会怎么样呢?试了以后结果是INF,那就是无穷大了.虽然当时 ...

最新文章

  1. android工程r红,Android Studio - 为什么R随机变为红色?
  2. mac回退jdk版本_Mac 的 jdk 版本配置
  3. Delphi Code Editor 之 几个特性
  4. java程序实验总结_Java实验报告一及作业总结二
  5. pythoncharm怎么保存代码_pycharm怎么保存代码
  6. 豆瓣评分预测(如何用自己的数据集进行文本分类)——基于pytorch的 BERT中文文本分类,超详细教程必会!!!
  7. OpenHarmony更新编译问题及解决办法
  8. 时序数据预测:Holt-Winters
  9. 2022化工自动化控制仪表考试题及答案
  10. 联想ThinkBook 14+和 2022宏碁非凡S3 哪个好
  11. 计算机上无线网络开关在哪里,台式电脑wifi开关在哪
  12. 虚拟主机还是云服务器玩游戏,虚拟主机还是云服务器玩游戏
  13. 【实验室集训大作业】JDBC实现宠物商店
  14. MindSpore论坛活动——奖品免费领,祝大家开工大吉!
  15. 小高考三门计算机能报大专吗,美术生小高考的要求吗
  16. 干谷净重694.27公斤 滦南国稻种芯-517功能性苦瓜稻北方旱作
  17. C语言—判断100到200的素数
  18. np.atleast_2d用法
  19. SQLSERVER数据库连接不到
  20. 关于研究虚拟机多开程序相关文章

热门文章

  1. NDI是什么?NDI协议传输让网络直播更有趣
  2. 阿里放弃SpringCloud、Dubbo,选择的这个神仙框架!牛逼
  3. 动态规划之扔鸡蛋(或手机)问题
  4. EBS系统扫二维码登录开发
  5. ECCV2020 | 论文阅读——Arbitrary-Oriented Object Detection with Circular Smooth Label
  6. hexo引用本地图片无法显示
  7. photoshop 自学网站
  8. 映客高级技术总监黄继:7天从开发到上线,云上高效运维实践与探索
  9. 【第72期】游戏策划:回复@小凡重返毕业前1年,想做什么?
  10. 写在2018年岁末之际