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

管网:https://doc.cfd.direct/openfoam/user-guide-v9/cavity

一、算例实现

文件结构

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

800

1、画网格

blockMesh

800

2、求解

icoFoam

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

3、保存文件

touch cavity.OpenFOAM

4、后处理

paraview

使用openFoamReader打开
image
显示所有边界
05、【算例】openFoam盖驱动空腔流动
apply
image

二、网格加密

1、网格划分

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

2、mapFields映射结果

将粗网格中的0.5结果,映射到细网格中。
修改controlDict文件
800
映射
mapFields ../cavity/cavity -consistent

800

3、计算并输出log文件

// 计算并输出log文件
icoFoam > log
// 查看log文件
cat log

// 可以合并运行
icoFoam > log && cat log

4、calcType

可以对速度的某个量进行可视化处理并咬着计算域内的一条线来绘制一个二维的图

postProcess -func "components(U)"

此时会在时间步长文件夹下出现3个新文件
image

5、后处理

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

三、网格非均匀分布

1、修改blockMeshDict

在icoFoam文件夹内创建asMeshCavity文件夹,复制cavity文件夹内的constant和system文件夹至该文件夹。
修改constant/blockMeshDict文件,如下
image

/*--------------------------------*- 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;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 0.1;

vertices
(
    (0 0 0)
    (0.5 0 0)
    (1 0 0)
    (0 0.5 0)
    (0.5 0.5 0)
    (1 0.5 0)
    (0 1 0)
    (0.5 1 0)
    (1 1 0)
    (0 0 0.1)
    (0.5 0 0.1)
    (1 0 0.1)
    (0 0.5 0.1)
    (0.5 0.5 0.1)
    (1 0.5 0.1)
    (0 1 0.1)
    (0.5 1 0.1)
    (1 1 0.1)
);

blocks
(
    hex (0 1 4 3 9 10 13 12) (10 10 1) simpleGrading (2 2 1)
    hex (1 2 5 4 10 11 14 13) (10 10 1) simpleGrading (0.5 2 1)
    hex (3 4 7 6 12 13 16 15) (10 10 1) simpleGrading (2 0.5 1)
    hex (4 5 8 7 13 14 17 16) (10 10 1) simpleGrading (0.5 0.5 1)
);

edges
(
);

boundary
(
    movingWall
    {
        type wall;
        faces
        (
            (6 15 16 7)
            (7 16 17 8)
        );
    }
    fixedWalls
    {
        type wall;
        faces
        (
            (3 12 15 6)
            (0 9 12 3)
            (0 1 10 9)
            (1 2 11 10)
            (2 5 14 11)
            (5 8 17 14)
        );
    }
    frontAndBack
    {
        type empty;
        faces
        (
            (0 3 4 1)
            (1 4 5 2)
            (3 6 7 4)
            (4 7 8 5)
            (9 10 13 12)
            (10 11 14 13)
            (12 13 16 15)
            (13 14 17 16)
        );
    }
);

mergePatchPairs
(
);

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

2、画网格

blockMesh

3、生成asyMeshCavity.OpenFOAM文件

touch asyMeshCavity.OpenFOAM

4、后处理

paraview

image.png

5、修改时间步长

image
image

6、映射场

将cavityFine中的0.7文件映射过来

mapFields -consistent ../cavityFine

7、计算输出

icoFoam > log

image

四、大雷诺数

1、创建文件夹并拷贝

创建文件夹

mkdir cavityHighRe

拷贝cavity文件夹至该文件夹

cp -r ../cavity/cavity/ .

2、修改雷诺数

修改constant/transportProperties文件
image
即可提高雷诺数10倍

3、修改控制文件

从0.5开始计算到2s
image

4、计算

nohup nice -19 icoFoam > log && cat log
  1. nohup:党用户退出登录时,程序依然执行;
  2. nice:调整程序优先级,-20对应优先级最高,19对应优先级最低进程。

可以看出1.4s时Ux结束迭代,No Iterations 0表示速度求解停止。
image

五、RAS模型

进入pisoFoam/RAS/cavity
image

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

/*--------------------------------*- 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    "constant";
    object      momentumTransport;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

simulationType  RAS;

RAS
{
    model           kEpsilon;

    turbulence      on;

    printCoeffs     on;
}

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

simulationType:laminar, RAS and LES
printCoeffs:为on时,这些参数会被输出到终端

六、CavityClipped

1、划分网格

blockMesh

2、复制0文件夹内容至0.5

cp -r 0 0.5

3、设置

controlDict文件开始时间设置为0.5,结束时间设置为0.6
system/mapFieldsDict文件
有两个参数

patchMap        (lid movingWall);

cuttingPatches  ();
  1. 当用户向把原始场的patches条件投影到背投影场的patches的时候,我们使用patchMap。
  2. 当用户打算把原始场内的数据投影到被投影场的边界时,我们使用cuttingPatches列表

这里lib边界条件根cavity算例的movingWall边界条件是一致的。
image

4、计算

icoFoam > log

5、后处理

image
修改样式
image
image
修改Legend
image
绘制矢量图
image
image

原文链接:https://www.cnblogs.com/dbai/p/17267165.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:05、【算例】openFoam盖驱动空腔流动 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • 如何将 Spire.Doc for C++ 集成到 C++ 程序中

    Spire.Doc for C++ 是一个专业的 Word 库,供开发人员在任何类型的 C++ 应用程序中阅读、创建、编辑、比较和转换 Word 文档。 本文演示了如何以两种不同的方式将 Spire.Doc for C++ 集成到您的 C++ 应用程序中。 通过 NuGet 安装 Spire.Doc for C++ 通过手动导入库安装 Spire.Doc f…

    C++ 2023年4月27日
    00
  • C++深拷贝与浅拷贝

    浅拷贝的问题 默认提供的拷贝构造就是浅拷贝,如果拷贝的对象中含有成员指针变量指向堆区中的内存空间,那么就会出现两个对象中的成员指针变量指向同一块堆区空间,当方法执行结束后,对象就会被释放,调用析构函数(析构函数中存在释放在堆区开辟的内存空间),就会存在一块内存空间被多次释放的问题。 解决办法 自己写拷贝构造,让拷贝构造后的对象中的成员指针变量指向一块新的内存…

    C++ 2023年4月25日
    00
  • 【Visual Leak Detector】源码下载

    说明 使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍 VLD 源码的下载。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. 下载途径 2. 不同下载途径的源文件差异 1. 下载途径 以 v2.5.1 版本为例,可以到 Github-KindDragon-vld 页面下载 master 的 zip 源码包,如下所示: 也可以到 …

    C++ 2023年4月22日
    00
  • 网络流的C++代码实现与过程讲解

    网络流是一种非常重要的图论算法,它在许多实际问题中得到广泛应用。本文将介绍网络流算法的C++代码实现与过程讲解。 算法概述 网络流算法是通过将图中的边看作流量通道,将图的点看作流量的起点或终点,来求解图中的最大或最小流量的问题。它是一种非常重要的最优化算法,广泛应用于图论、运筹学、计算机网络等领域。 网络流算法有很多种,其中最著名的是Ford-Fulkers…

    C++ 2023年4月22日
    00
  • 【Visual Leak Detector】配置项 StartDisabled

    说明 使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍 VLD 配置文件中配置项 StartDisabled 的使用方法。同系列文章目录可见 《内存泄漏检测工具》目录 目录 说明 1. 配置文件使用说明 2. 设置是否禁用自动初始化 2.1 测试代码 2.2 StartDisabled = no 时的输出 2.3 StartDisabled …

    C++ 2023年4月18日
    00
  • L1-080 乘法口诀数列*(使用C++)

    L1-080 乘法口诀数列 分数 20 全屏浏览题目 切换布局 作者 陈越单位 浙江大学   本题要求你从任意给定的两个 1 位数字 a1​ 和 a2​ 开始,用乘法口诀生成一个数列 {an​},规则为从 a1​ 开始顺次进行,每次将当前数字与后面一个数字相乘,将结果贴在数列末尾。如果结果不是 1 位数,则其每一位都应成为数列的一项。 输入格式: 输入在一行…

    C++ 2023年4月18日
    00
  • C++基础1: 命名空间

    0. 前言 C++是在C语言基础之上的一门语言, 所以学习C++的第一步是思考C++是如何优化C语言设计中的一些不足, 如作用域, IO , 函数, 指针, 宏等 这些内容同时也是为之后学习C++类和对象打基础, 下面说一下C++是如何优化C语言中的作用域 1. 命名空间 在说明命名空间的概念和如何优化C作用域之前, 首先来看一个例子 如图, 编译器报ran…

    C++ 2023年4月19日
    00
  • 记一次 腾讯会议 的意外崩溃分析

    一:背景 1. 讲故事 前段时间在用 腾讯会议 直播的时候,居然意外崩溃了,还好不是在训练营上课,不然又得重录了,崩完之后发现 腾讯会议 的 bugreport 组件会自动生成一个 minidump,截图如下: 作为一个.NET高级调试的技术博主,非 .NET 的程序也得要研究研究哈???,有了这个好奇心,也有了这个 dump,接下来用 windbg 看一看…

    C++ 2023年4月22日
    00
合作推广
合作推广
分享本页
返回顶部