09、openfoam案例之圆柱绕流

这篇具有很好参考价值的文章主要介绍了09、openfoam案例之圆柱绕流。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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章)

命令:

fluentMeshToFoam <meshFile>

2.3 检查网格

checkMesh

system/blockMeshDict文件可以删除

3、边界条件

3.1 网格boundary

这是转换网格后自动生成的。

/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  9
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       polyBoundaryMesh;
    location    "constant/polyMesh";
    object      boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

5
(
    INLET
    {
        type            patch;
        nFaces          30;
        startFace       13060;
    }
    OUTLET
    {
        type            patch;
        nFaces          30;
        startFace       13090;
    }
    WALL
    {
        type            wall;
        inGroups        List<word> 1(wall);
        nFaces          100;
        startFace       13120;
    }
    CYLINDER
    {
        type            wall;
        inGroups        List<word> 1(wall);
        nFaces          120;
        startFace       13220;
    }
    frontAndBackPlanes // 空,表示2维
    {
        type            empty;
        inGroups        List<word> 1(empty);
        nFaces          13200;
        startFace       13340;
    }
)

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

3.2 0/P文件

  1. 在OpenFOAM中,zeroGradient是一种边界条件,用于指定在边界上的量的梯度为零,这意味着该边界的值不会改变。例如,对于速度边界条件,zeroGradient表示速度沿该边界的梯度为零,即速度沿该边界的值不会改变。通常,这种边界条件在流体边界和对称边界上使用。在代码中,它表示为:。
  2. 在 OpenFOAM 中,fixedValue 是一种边界条件类型,表示在特定的边界上施加固定的值。这个值通常是在 0uniformnonuniformlist 中指定的,具体取决于场的类型和边界的特征。例如,在一个流体模拟中,可以将固定的速度值施加在流场的边界上,这可以通过设置边界条件类型为 fixedValue 并指定速度值来实现。同样地,可以将固定的温度、压力或其他物理量值应用于相应的场变量上。在 OpenFOAM 中,边界条件的设置是在 case 目录下的 0 文件夹中的 boundary 文件中完成的。使用 fixedValue 边界条件时,用户需要指定固定的值并将其应用于适当的边界。
  3. 在OpenFOAM中,empty边界类型用于定义没有物理边界或者该边界不需要与周围区域相互作用的情况。例如,计算空气在室内流动的情况,室内墙壁可以定义为empty边界。在empty边界中,OpenFOAM不会对物理量进行任何修改,因此需要在边界条件的设置中进行额外的注意。在empty边界中,通常会使用fixedValue或者fixedGradient来设置边界条件。
/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  9
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       volScalarField;
    object      p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -2 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    INLET // 压力梯度为0
    {
        type            zeroGradient; // 压力梯度为0
    }
    
    WALL
    {
        type            zeroGradient;
    }

    CYLINDER
    {
        type            zeroGradient;
    }
    
    OUTLET // 出口压力为固定值0
    {
        type            fixedValue; 
        value           uniform 0;
    }

    frontAndBack
    {
        type            empty;
    }
}

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

3.3 0/U文件

  1. internalField是指某个场量在整个计算域内的初始值。在进行流体流动计算时,internalField可以表示压力、速度、温度等场量的初始值。internalField可以被定义为标量、向量、对称张量和非对称张量场量。常见的初始化方法包括常数、分布式初始化和从其他场量插值得到。例如,对于速度场量,可以通过设置其为一个初始速度场量或者通过从初始条件的压力梯度中计算得到。一旦internalField被定义,将无法在后续的计算过程中修改。因此,需要根据计算需求仔细地定义initialField。
/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  9
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       volVectorField;
    object      U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 1 -1 0 0 0 0];

// 场内初始值
internalField   uniform (50 0 0);

boundaryField
{
    INLET // 速度为固定值ux=50m/s
    {
        type            fixedValue; 
        value           uniform (50 0 0);
    }
    
    WALL
    {
        type            fixedValue;
        value           uniform (50 0 0);
    }
    
    OUTLET
    {
        type            zeroGradient;
    }

    CYLINDER
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }

    frontAndBack
    {
        type            empty;
    }
}

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

oepnfoam中zeroGradient和uniform (0 0 0)的区别:

zeroGradient只表示在边界上梯度不变,并不是不随时间变化。

uniform (0 0 0)更强硬一些,就是为某个值。

4、计算参数

4.1 controlDict

/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  9
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    location    "system";
    object      controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

application     icoFoam;

startFrom       startTime;

startTime       0;

stopAt          endTime;

endTime         0.05;

deltaT          0.00001; // Co = U * t / x

writeControl    timeStep;

writeInterval   100;

purgeWrite      0;

writeFormat     ascii;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;


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

4.2 fvSchemes

/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  9
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    location    "system";
    object      fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

ddtSchemes
{
    default         Euler;
}

gradSchemes
{
    default         Gauss linear;
    grad(p)         Gauss linear;
}

divSchemes
{
    default         none;
    div(phi,U)      Gauss linear;
}

laplacianSchemes
{
    default         Gauss linear orthogonal;
}

interpolationSchemes
{
    default         linear;
}

snGradSchemes
{
    default         orthogonal;
}


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

4.3 fvSolution

/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  9
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    location    "system";
    object      fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
    p
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance       1e-06;
        relTol          0.05;
    }

    pFinal
    {
        $p;
        relTol          0;
    }

    U
    {
        solver          smoothSolver;
        smoother        symGaussSeidel;
        tolerance       1e-05;
        relTol          0;
    }
}

PISO
{
    nCorrectors     2;
    nNonOrthogonalCorrectors 0;
    pRefCell        0;
    pRefValue       0;
}


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

5、计算

icoFoam > log

6、后处理

生成临时后处理文件文章来源地址https://www.toymoban.com/news/detail-409871.html

paraFoam -builtin

到了这里,关于09、openfoam案例之圆柱绕流的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 09 视频分片上传Minio和播放

    pom.xml application.yml com.example.web.dto.file.FileResp com.example.web.dto.file.MinioObject com.example.utils.FileMd5Util com.example.utils.MinioFileUtil com.example.blh.file.FileBlh com.example.web.rest.file.FileRest HTML效果 http://127.0.0.1:8081/test/upload.html resources/static/upload.html ckplayer ckplayer是一款在网页上播放视频的软件,

    2024年02月04日
    浏览(36)
  • PHP快速入门09-正则相关,附一定要学会的20个高频使用案例

    本文已收录于PHP全栈系列专栏:PHP快速入门与实战 正则表达式(Regular Expression)是一种字符序列,用于描述一组字符串匹配某个模式或格式。 它由一些特殊的字符和普通字符组成,可以表示一些特定的文本模式,如手机号码、邮箱、网址等等。正则表达式在很多程序设计语

    2023年04月17日
    浏览(43)
  • OpenFoam——自定义求解器

    本案例以icoFoam为例,复制【openFOAM/OpenFOAM-9/applications/solvers/incompressible/icoFoam】文件夹至run文件夹下(我的是【openFOAM/mtl-9/run/solvers/incompressible】) 将文件夹重新命名为【myIconFoam】 修改该目录下的文件名称,为了便于分辨是自己的求解器,在源代码里输出一些内容 修改【Ma

    2024年02月08日
    浏览(31)
  • 【OpenFOAM】-olaFlow-算例1- baseWaveFlume

    算例路径: olaFlowtutorialsbaseWaveFlume 算例描述: 一个基础的二维波浪水槽 学习目标: olaFlow 求解器的造波、消波方法和算例设置 算例快照: 图1 波浪模拟结果 图2 算例网格 文件结构:

    2024年02月02日
    浏览(23)
  • 【OpenCV DNN】Flask 视频监控目标检测教程 09

    欢迎关注『OpenCV DNN @ Youcans』系列,持续更新中 本系列从零开始,详细讲解使用 Flask 框架构建 OpenCV DNN 模型的 Web 应用程序。本节使用多线程或者异步框架来处理视频帧的获取和人脸识别。 本例程使用一个线程实时获取视频帧,在主线程中处理视频帧,进行人脸识别和图像编

    2024年02月13日
    浏览(29)
  • IP地址怎么实现HTTPS访问?

    为IP地址申请HTTPS证书跟为域名申请证书的步骤大同小异。需要注意的是,IP地址证书申请安装后, 用户只有通过IP地址访问才会显示访问安全 ,如果通过该IP地址所绑定的域名访问的话是没办法显示安全绿锁的。因为之前有用户问过小编——-我的ip地址绑定多个域名,我直接

    2024年01月17日
    浏览(44)
  • 【论文阅读 09】融合门控自注意力机制的生成对抗网络视频异常检测

            2021年 中国图象图形学报 背景: 视频异常行为检测是智能监控技术的研究重点,广泛应用于社会安防领域。当前的挑战之一是如何提高异常检测的准确性,这需要有效地建模视频数据的空间维度和时间维度信息。生成对抗网络(GANs)因其结构优势而被广泛应用于视

    2024年02月03日
    浏览(31)
  • 前端问题:如何使网页中的http地址自动升级为https地址

    我一个搞后端开发的天天捣鼓前端的事,会不会被各位同僚念叨,哈哈。项目上的需求,需要把现在的https地址转换成http的地址,然而修改了nginx配置,摘除了证书,访问的所有静态文件依然是https,捣鼓了好半天,终于搞明白了原理,反其道而行,就有了这篇文章。 当我们

    2024年02月14日
    浏览(31)
  • opencv进阶09-视频处理cv2.VideoCapture示例(打开本机电脑摄像头)

    视频信号(以下简称为视频)是非常重要的视觉信息来源,它是视觉处理过程中经常要处理的一类信号。实际上,视频是由一系列图像构成的,这一系列图像被称为帧,帧是以固定的时间间隔从视频中获取的。获取(播放)帧的速度称为帧速率,其单位通常使用“帧/秒”表示

    2024年02月12日
    浏览(30)
  • notepad++官网地址 https://notepad-plus-plus.org/;notepad++ 官网地址 https://notepad-plus-plus.org/

    notepad++ 官网地址 https://notepad-plus-plus.org/ 今天想进官网下载notepad++ ,却发现百度搜索官网都是出来很多乱七八糟的,就自己记录一下 notepad++官网:https://notepad-plus-plus.org/ notepad++项目主页:https://github.com/notepad-plus-plus/notepad-plus-plus/

    2024年02月11日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包