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

此测试案例是EDEM官方提供的。

软件设置分为两部分,其中包括在FLUENT设置和EDEM设置,计算模型可以采用同一模型,也可以采用不同的网格模型,这里采用同一套网格模型。(EDEM可以读入msh文件)。

1 案例描述

案例模型很简单,如下图所示的交叉管,流经模型的介质包括连续相的水和颗粒相。

2 FLUENT设置

2.1 导入网格文件

  • 启动FLUENT,利用菜单File | Read | Mesh…导入网格文件intersection_vertical.msh
  • 选择General面板中的Scale…按钮,确保网格模型尺寸,如下图所示。



2.2 General面板及Material

  • 设置Time为Transient,采用瞬态计算
  • 设置Z轴方向重力加速度-9.81
  • 添加材料water-liquid

2.3 Cell Zone Conditions

  • 设置Cell Zone Conditons里头的区域介质为water-liquid,如下图所示。

2.4 Boundary Conditions

  • 设置inlet边界入口速度为5m/s,如下图所示

2.5 Models

  • 采用标准k-epsilon模型计算

2.6 加载EDEM宏

  • 打开user-defined > Functions > Manage…

  • library Name中输入udf所在路径,点击load按钮加载udf宏

  • 加载完毕后,在Models树节点下出现EDEM子节点,如下图所示



    点开来看,设置对话框如下图所示。



    此对话框一会儿再设置。现在转入EDEM设置。

3 EDEM设置

3.1 设置模型描述

  • 启动EDEM,点击菜单**File > Save”,在弹出的文件保存对话框中保存工程文件,默认名称New EDEM input deck.dem
  • Global标签页中,设置Title为2-phase Eulerian

3.2 设置材料

  • 创建新的材料“Particle”,设置材料属性如图所示。

  • 单击 Transfer 按钮打开 Material/Interactions Transfer 对话框.
  • 从材料数据库中 Transfer steel 到 simulation。
  • 设置 material interactions, particle – particle 和 particle – steel,使用默认值

3.3 定义颗粒

  1. 单击颗粒标签。
  2. 单击 + 按钮输入名字 „Eulerian particle‟。
  3. 设置半径 2mm。
  4. 设置 X 为-0.5 mm。
  5. 单击+创建一个新的表面。
  6. 设置半径为 2mm。
  7. 设置 X 为 0.5 mm。
  8. 颗粒的材料为’particle’。
  9. 点击 lculate Properties,自动计算出颗粒的质量、体积等属性。

3.4 定义几何

  • 定义几何材料
  1. 打开 Geometry 标签。点击Import…按钮,导入网格文件intersection_vertical.msh
  2. 在 Details 标签中,选择材料为 steel。

  • 创建颗粒工厂几何

  1. 单击+按钮选择 polygon,命名 “factory”。
  2. 在 Details 中选择 Virtual。
  3. 选择 Polygon 按钮,设置如下:

3.5 创建颗粒工厂

  • 创建颗粒工厂、设置颗粒工厂类型
  1. 点击 Fcatories 标签。
  2. 点击+按钮,添加一个新的颗粒工厂。
  3. 设置工厂类型为 Dynamic。
  4. 选择 Unlimited Particles。
  5. 选择速率 to 2.5e3 particles/s。

  • 设置初始条件

  1. 在下拉菜单中确定选择„factory‟ 。
  2. 选择速度为 linear 或者 spray 点击设置按钮。
  3. 设置速度大大小 z=5m/s。

    固相的设置已经完成。

3.6 求解器

  • 设置时间步长
  1. 点击 Simulator 标签。
  2. 设置时间步长为 39%。

    调整时间步长为 8e-5s。 EDEM 里面的时间步长与 Fluent 里面的时间步长比例一般在 1:1 到 100:1 之间。 EDEM 时间步长不能大于 Fluent 的时间步长。
  • 设置 data write-out frequency
  1. 设置 write out frequency 为 0.01s。

    如果有必要按时返回,从一点重新进行模拟,自动保存 case 和 data 必须在 fluent 选

    择。
  • 设置网格
  1. 设置网格尺寸为 3.5 Rmin。这将生成约 60,000 网格。
  • 跟踪碰撞
  1. 标记 Track Collisions 。

3.7 启动耦合器

  • 选择菜单Tools > EDEM Coupling Options > Show Coupling Server
  • 在右下角对话框中点击按钮Start,之后EDEM处于监听状态

4 fluent其他设置

返回到FLUENT中继续设置

  • 设置 2-phase 模拟
  1. 选择 Eulerian 作为耦合方法。
  2. 选择”fluid‟ 。
  3. 设置 sample points 为 10。

    如果 sample points 为 10, 一个大的颗粒可以在 10 个网格中传输。增加 samplepoints 的大小,增加了模拟的稳定性但是减少了速度。
  4. 设置 momentum („MTM‟) under-relaxation 为 0.7。

    减少松弛因子增加了模拟的稳定并且更加容易收敛。然而可能会使用到更多的迭代来实现收敛 。
  5. 设置 volume under-relaxation 为 0.6。
  6. 点击Open按钮,选择New EDEM input deck.dem文件
  7. 点击 OK。

此时看TUI输出窗口信息如下图所示,表示已经成功耦合。



此时看EDEM中耦合服务器状态,如下图所示。已经成功耦合。

  • 初始化、设置文件选项
  1. 初始化。

    a) 选择 Solve > Initialize > Initialize。

    b) 选择 Compute from Inlet, 单击 Init t。
  2. 设置 autosave case and data option 为 25。

    a) 选择 File > Write > autosave。

    b) 设置为 25。时间步长为 2e-3 s,即数据文件每隔 0.05s 保存一次。
  3. 点击 File > Write > Case & Data 保存 case(.cas)和 data (.dat)文件。

    .dat 文件包含了在 0s 点的几何、边界条件和其他液相(固相)信息。这个文件包含了几何、边界条件和其他仿真参数。

    在仿真过程中, case 和 data 自动保存, EDEM 的文件也自动保存。

  • 在 Fluent 设置时间

  1. 选择 Solve > Iterate,设置时间步长为 2e-3. 。这个味 EDEM 的时间步长的 25 倍。
  2. 设置时间步数为 500 步。也就是说仿真一共进行 1s。
  3. 设置每个时间步长的迭代步数为 60.对于 Eulerian-Eulerian 仿真,步数为 50-200。
  4. 选择 Iterate 开始模拟仿真。 EDEM 将会自动运行。

5 后处理

附件列表

【FLUENT案例】06:与EDEM耦合计算的更多相关文章

  1. Fluent-EDEM耦合计算颗粒流动

    虽然说Fluent提供了很多方法用于处理颗粒在流体中的运动行为,然而这些方法都有其各自的适用性.DPM适用于稀薄颗粒的情况,欧拉模型.Mixture模型及DDPM模型虽然可以考虑稠密颗粒相,但并不能考 ...

  2. 【FLUENT案例】02:DPM模型

    1 引子1.1 案例描述1.2 学习目标1.3 模拟内容2 启动FLUENT并导入网格3 材料设置4 Cell Zones Conditions5 Calculate6 定义Injecions7 定义 ...

  3. arcpy地理处理工具案例教程-景观形状指数计算

    arcpy地理处理工具案例教程-景观形状指数计算 商务合作,科技咨询,版权转让:向日葵,135-4855_4328,xiexiaokui#qq.com 使用方法:输入要素类即可,其余参数均默认. 商务 ...

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

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

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

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

  6. 【FLUENT案例】03:冲蚀

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

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

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

  8. 基于案例贯通 Spark Streaming 流计算框架的运行源码

    本期内容 : Spark Streaming+Spark SQL案例展示 基于案例贯穿Spark Streaming的运行源码 一. 案例代码阐述 : 在线动态计算电商中不同类别中最热门的商品排名,例 ...

  9. Vue框架(二)——Vue指令(v-once指令、v-cloak指令、条件指令、v-pre指令、循环指令)、todolist案例、Vue实例(计算、监听)、组件、组件数据交互

    Vue指令 1.v-once指令  单独使用,限制的标签内容一旦赋值,便不可被动更改(如果是输入框,可以主动修改) <!DOCTYPE html> <html lang=" ...

随机推荐

  1. 使用PowerShell收集多台服务器的性能计数器

    写在前面     当管理多台Windows Server服务器时(无论是DB.AD.WEB以及其他的应用服务器),当出现性能或其他问题后,参阅性能计数器都是一个非常好的维度从而推测出问题可能出现的原因 ...

  2. 前端学PHP之PHP操作memcache

    × 目录 [1]安装 [2]连接 [3]增删改查[4]分布式[5]状态[6]安全[7]应用 前面的话 和访问mysql服务器类似,PHP也是作为客户端API访问memcached服务器的,所以同样需要 ...

  3. Core Java 总结(数据类型,表达式问题)

    2016-10-18 整理 写一个程序判断整数的奇偶 public static boolean isOdd(int i){ return i % 2 == 1; } 百度百科定义:奇数(英文:odd ...

  4. spring boot(二):web综合开发

    上篇文章介绍了Spring boot初级教程:spring boot(一):入门篇,方便大家快速入门.了解实践Spring boot特性:本篇文章接着上篇内容继续为大家介绍spring boot的其它 ...

  5. 读书笔记--SQL必知必会04--过滤数据

    4.1 使用WHERE子句 在SELECT语句中,数据根据WHERE子句中指定搜索条件进行过滤. 搜索条件(search criteria)也称为(filter condition). WHERE子句 ...

  6. 通过三个DEMO学会SignalR的三种实现方式

    一.理解SignalR ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信(即:客户端(Web页面)和服务器端可以互相实时的通知消息 ...

  7. passport源码研究

            passport的验证过程主要依赖具体的验证策略来实现的,比较常用的有session策略.local策略和github策略等,验证逻辑都是在这些策略类中定义的.passport模块的定 ...

  8. C#开发微信门户及应用(18)-微信企业号的通讯录管理开发之成员管理

    在上篇随笔<C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理>介绍了通讯录的部门的相关操作管理,通讯录管理包括部门管理.成员管理.标签管理三个部分,本篇主要介绍成员的管 ...

  9. python 数据类型---布尔型& 字符串

    python数据类型-----布尔型 真或假=>1或0 >>> 1==True True >>> 0==False True python 数据类型----- ...

  10. JDK动态代理实现原理

    之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白.比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的.直到看了他的文章才彻底明白,附网址:htt ...