本案例延续案例1的模型及计算结果。

1 引子

1.1 案例描述

本案例描述了如何在FLUENT中使用DPM模型。在前面的案例中,模拟了T型管中的单相流动。本案例将使用相同的T型管模型,模拟颗粒进入T型管后的运动轨迹。

1.2 学习目标

本案例学习目标包括:

  • 定义颗粒材料
  • 向计算域中注入颗粒
  • 使用常数或分布函数定义颗粒粒径
  • 包含颗粒的随机效应
  • 预测管道壁面的冲蚀损伤

1.3 模拟内容

本案例模拟的是几何模型与案例1相同,不过介质为丙烷,同时还有水滴注入到计算域中。

  • 模拟液滴被气体带入管道中的运动轨迹
  • 使用分布粒径,预测固体壁面上的冲蚀(或附着)

2 启动FLUENT并导入网格

采用案例1的Case,导入过程这里不详述。

3 材料设置

  • 在FLUENT材料库中添加材料Propane(c3h8)

4 Cell Zones Conditions

  • 设置计算域材料为Propane

5 Calculate

  • 设置计算150步,获取新的计算结果

6 定义Injecions

  • 鼠标双击模型树节点Discrete Phase > Injections,在弹出的对话框中选择按钮Create

  • 在弹出的Set Injection Properties对话框中,进行如下图所示的设置。

7 定义DPM材料

  • 鼠标双击模型树节点Materials > Inert Particle > anthracite,弹出材料属性设置对话框,改变Density参数值为1000,如下图所示,点击按钮Change/Create并关闭对话框。

8 颗粒追踪

  • 鼠标双击模型树节点Results > Graphics > Particle Tracks,弹出颗粒追踪参数设置对话框

  • 点击对话框中的选项Draw Mesh前的复选框,弹出Mesh Display对话框,点击Display按钮。点击Close按钮关闭对话框。

  • 返回Particle Tracks面板,选择Release from Injections列表框中的injection-0,点击按钮Track进行粒子追踪



    此时TUI窗口显示信息如图所示:

    图中信息为:追踪粒子数量158个,其中逃逸158个,丢失0个,捕捉0个,蒸发0个,未完成0个

  • 点击Display按钮,显示粒子追踪图(颗粒停留时间),如下图所示。

关于DPM的一些分析:

在本例中,液滴从”inlet-z”边界释放进入计算域,该边界上有158个网格,追踪158个轨迹

  • 每一个液滴直径均为1×104m1×104m,其密度为1000kg/m31000kg/m3,因此液滴质量为5.22×10−10kg5.22×10−10kg
  • 这里假设从相同位置以相同条件进入计算域的粒子具有相同的轨迹
  • 计算中输入的质量流量为1kg/s,因此158个粒子用于表征1.2×1071.2×107个真实粒子(1/(5.22×10−10×1581/(5.22×10−10×158)
  • The droplet (or particle) progresses through the domain through a large number of small steps. At each step, the solver computes the force balance acting on a single droplet (diameter 1x10-4 m) – hence considering the drag with the surrounding fluid, droplet inertia, and if applicable gravity. The mass transported is that of all the droplets in that stream (1.2x107 droplets/sec).
  • 液滴与连续相间可以是单向耦合也可以是双向耦合。本案例采用的是单向耦合。
    • 单向耦合意味着流体可以影响DPM粒子的动量及能量,但是DPM粒子运动不会影响到其周围连续相的流场。因此可以在后处理中计算DPM轨迹
    • 若有必要的话,可以通过在DPM模型设置面板中激活Interaction with Continuous Phase选项来开启双向耦合。双向耦合计算中连续相收敛要比单向计算困难,往往需要更多的迭代步,在计算的过程中,没有必要再每一个流动迭代步中计算DPM轨迹,通常在5-10个迭代步后更新粒子轨迹。

9 设置粒子分布直径

前面对于粒子直径采用常数,这里改为使用Rosin-Rammler分布。

R-R分布指的是颗粒质量分数与直径间的函数关系:

Y(d)=e−(d/d¯)nY(d)=e−(d/d¯)n

式中,d¯d¯为平均粒径

  • 双击模型树节点Models > Discrete Phase(On) > Injections > Injection-0,如下图所示。

  • 在弹出的对话框中进行如下设置
    • 设置Diameter DistributionRosin-rammler
    • 设置Min Diameter1e-4
    • 设置Max Diameter5e-4
    • 设置Mean Diameter4e-4
    • 设置Number of Diameters10
  • 点击OK按钮确认操作并关闭对话框。如下图所示。

10 粒子追踪

  • 采用第8步相同的方式进行Particle Tracks



    粒子追踪(颗粒停留时间)如下图所示。



    此时TUI窗口消息如下图所示。



    此时追踪的粒子数量变为了1580个,是因为在上一步中设置Number of Diameters10,所以总的粒子数量为10×158=158010×158=1580个。

11 统计出口面上粒径分布

-鼠标点击模型树节点Results > Reports > Discrete Phase > Sample,如下图所示。

  • 在弹出的对话框(如下图所示)中选择Boundariesoutlet,选择Release from Injectionsinjection-0,点击Compute按钮,如下图所示。

  • 点击模型树节点Results > Reports > Discrete Phase > Histogram,弹出如下图所示的对话框。
  • 点击Read…按钮,加载上一步生成的文件outlet.dpm
  • 进行如下图所示设置。选择Sampleoutlet,选择variablediameter,选择weightmass-flow

  • 点击Plot按钮显示图像。如下图所示。(也可以将数据输出,然后用其他后处理工具绘图)

12 修改壁面边界以捕捉颗粒

  • 鼠标双击模型树节点Boundary Conditions > wall-fluid(wall),弹出边界设置对话框
  • 切换到DPM标签页,设置Boundary cond. TypeTrap,如下图所示
  • 点击OK按钮关闭对话框

13 颗粒追踪

按第8步相同的方法进行粒子追踪。TUI窗口显示如下图所示的信息。



可以看出,释放了1580个颗粒,其中逃逸857个,捕捉723个。

颗粒追踪(粒子停留时间)如下图所示。

14 考虑湍流效应

  • 双击模型树节点Models > Discrete Phase(On) > Injections > Injection-0,弹出如下图所示对话框。
  • 切换至Turbulent Dispersion标签页,激活Discrete Random Walk Model,设置Number of Tries10,点击OK按钮关闭对话框。

  • 采用如步骤8所描述的粒子追踪方法。

    TUI窗口显示消息如下图所示。



    从图中可以看出,追踪颗粒数量变为了15800,其中逃逸5324,捕捉3591,追踪未完成6885

    追踪颗粒之所以变为了15800,是因为使用随机模型的时候设置了Number of Tries10,故总颗粒数量为158×NumberofDiameters×NumberofTries158×NumberofDiameters×NumberofTries

    这里反映有未完成颗粒,可以通过增大Discrete Phase Model面板中的Max Number of Step来改善。该值默认为500。将此值增大至2000,则未完成颗粒消失。

15 考虑冲蚀

  • 计算冲蚀必须使用双向耦合
  • 为计算资源考虑,关闭Discrete Random Walk

  • 双击模型树节点Discrete Phase,在弹出的对话框中进行如下图所示的设置。

  • 进入Solution > Run Calculation节点,进行如下图所示设置。

    由于本例设置的颗粒材料为液滴,因此壁面采用的是Trap,若为固态颗粒计算冲蚀,则需要设置壁面行为为Reflect。实际计算时还需要对壁面DPM行为参数进行设置,这里采用默认参数。

16 后处理查看壁面冲蚀云图

  • 双击模型树节点Results > Graphics > Contours ,弹出如下图所示对话框
  • 在弹出的对话框中进行如下图所示设置



    点击Display按钮显示冲蚀云图,如下图所示。

17 导出数据到CFD-POST

dat文件中并没有包含DPM颗粒轨迹数据,因此需要采用导出的方式将颗粒轨迹导出到文件中。

  • 利用菜单File > Export > Particle History Data,弹出如下图所示对话框

  • 点击按钮Exported Particle Variables…,弹出如下图所示对话框,在对话框中Available Particle Variables列表项中选择需要导出的变量,点击按钮Add Variables将选择的变量添加到左侧的列表中,点击OK按钮关闭对话框。

  • 返回到Export Particle History Data对话框,点击Write按钮输出颗粒轨迹数据。
  • 关闭FLUENT返回至Workbench工程面板。

18 CFD-POST操作

  • 从左侧的组件列表中选择Result拖拽至A3单元格上,双击工程面板中的B2单元格,进入CFD-POST环境

  • 利用菜单File > Import > Import Fluent Particle Track File,如图所示



    打开如下图所示对话框,找到上一步导出的颗粒轨迹文件。

  • 颗粒轨迹导入后,点击模型树节点FLUENT PT for Anthracite,在下方属性窗口中,设置Max Tracks为500

  • 设置Color标签页下,进行如下图所示设置

  • 点击Apply按钮,图形框显示粒子追踪图如下图所示。



【FLUENT案例】02:DPM模型的更多相关文章

  1. 【FLUENT案例】04:利用DDPM+DEM模拟鼓泡流化床

    1 引言2 问题描述3 准备4 FLUENT前处理 1 引言 DEM碰撞模型扩展了DPM模型的功能,能够用于稠密颗粒流动的模拟.该模型可以与DDPM(Dense DPM)模型何用以模拟颗粒对主相的阻碍 ...

  2. web综合案例02

    web综合案例02 web综合案例02 web综合案例02 ... ... 内容待添加

  3. 【FLUENT案例】05:DDPM模型

    本例利用FLUENT的DDPM模型对提升管进行模拟. 1 介绍 本案例演示在FLUENT中利用稠密离散相模型(Dense discrete phase model,DDPM)模拟2D提升管.DDPM模 ...

  4. 【FLUENT案例】03:冲蚀

    1 引子2 问题描述3 模型准备4网格5模型设置6 材料设置7 设定注入器8 修改材料9 Cell zone Conditions设置10 边界条件设置10.1 inlet入口设置10.2 出口设置1 ...

  5. 【FLUENT案例】06:与EDEM耦合计算

    折腾了很久才把耦合模块搞定,用的还是网上别人编译好的UDF,不完美.自己编译的时候,老是提示无法找到fluent中的一些头文件,个人怀疑是操作系统和visual studio的问题,有时间换个系统和V ...

  6. 【FLUENT案例】01:T型管混合器中的流动与传热

    案例目录 1 引子1.1 案例描述1.2 案例学习目标2 计算仿真目标3 启动FLUENT并读入网格4 FLUENT工作界面5 网格缩放及检查6 修改单位7 设置模型8 定义新材料9 计算域设置10 ...

  7. RNN与应用案例:注意力模型与机器翻译

    1. 注意力模型 1.2 注意力模型概述 注意力模型(attention model)是一种用于做图像描述的模型.在笔记6中讲过RNN去做图像描述,但是精准度可能差强人意.所以在工业界,人们更喜欢用a ...

  8. 02 Django模型

    ORM 的作用 ORM 作用示意图 ORM 框架的功能 建立模型类和表之间的对应关系,允许通过面向对象的方式来操作数据库 根据设计的模型类生成数据库中的表格. 通过方便的配置就可以进行数据库的切换 数 ...

  9. DPM模型简单记录

    这个模型思想很直观(有误),但是写的源码太难懂了(看的是release-3的版本,最接近Object Detection with Discriminatively Trained Part Base ...

随机推荐

  1. 基于react实现无限分级菜单

    在开发CMS(内容管理系统)系统时,一般都会用到一个侧边栏或者顶部的二级或者三级菜单,当点击或者鼠标悬浮时,菜单能够随之展开或收起. 本文纯粹为了练习一下react,因此我会在react环境下实现这么 ...

  2. python2.7 内置ConfigParser支持Unicode读写

    1 python编码基础 对应 C/C++ 的 char 和 wchar_t, Python 也有两种字符串类型,str 与 unicode: str与unicode # -*- coding: ut ...

  3. SQL语句优化

    (1)      选择最有效率的表名顺序 ( 只在基于规则的优化器中有效 ) : ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名, FROM 子句中写在最后的表 ( 基础表dri ...

  4. HTML5 学习总结(四)——canvas绘图、WebGL、SVG

    一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...

  5. 【基于WinForm+Access局域网共享数据库的项目总结】之篇三:Access远程连接数据库和窗体打包部署

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  6. 跟我学习NHibernate (1)

    引言:Nibernate概述 NHibernate是一个ORM框架,NHibernate是一个把C#对象世界和关系世界数据库之间联系起来的一座桥梁.NHibernate 能自动映射实体模型到数据库,所 ...

  7. 你真的会玩SQL吗?玩爆你的数据报表之存储过程编写(上)

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  8. 解决iframe作为子窗口,刷新后iframe页面跳转到其它页面的问题

    转载请在页首注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/5990262.html 前言: 在开发网站时,尤其是管理后台,我们经常会使用iframe作为内容窗 ...

  9. 认识W3C标准盒子模型,理解外边距叠加

    概述: 注:加粗斜体字是非常重要的概念,决定着你是不是能看懂那句话,所以不懂的请一定要搜索一下. 页面上的每个元素,都在一个矩形框里.   每个矩形框都是一个盒模型.   每个盒模型都由内容区域(co ...

  10. 在真机调试 iOS 应用:理解 Certificates, Identifiers & Profiles

    No matching provisioning profiles found. No matching code signing identity found. Your account alrea ...