利用离散元方法做仿真实验的过程中,所用的模型并非都是单一的颗粒体,很多时候要用到颗粒群模型。小体积的模型可以用聚合法将多个颗粒填充在颗粒模板里面,从而组成所需要的非规则模型。然而,大体积的模型通过聚合法逐个布置颗粒位置显然是工作量相当大的一种做法。本文简介两种快速生成颗粒群的方法,以供交流学习。

一种利用fluent中udf库文件进行快速填充的方法,这种方法针对结构化网格适用性很强,可以很方便控制颗粒粒径,而对于非结构化网格就相对很尴尬,粒径不好控制。

一、快速填充模型

基本思路建立模型,划分网格。利用网格前处理软件对模型区域划分网格,另存为“.msh”文件。(网格划分软件Gambit、ICEM CFD、Ansys等)

Fluent加载udf库文件,获取网格坐标信息。将生成的.msh导入fluent,加载udf库文件,编译源文件CalcRadius.c,最后执行CalcRadiusVolume,会在文件夹里面生成point.txt网格坐标文件。

对网格坐标信息进行编辑,准备颗粒工厂dll文件。将point.txt里面的数据粘贴进Block_Factory_Data.txt文件,覆盖原来数据。

进入edem设置模型参数,并在Factory面板加载通过VC++编译好的BlockFactory_x64.dll文件。

Edem中进行快速填充。进行仿真填充。

(如需利用填充好的颗粒模型做类似三轴应力压缩、切割、破碎实验,在后处理面板导出填充好的模型即可使用,此时请务必将时间置0)

操作步骤

下面以一个立方体为例进行操作说明:

本文利用Ansys workbench进行建模,划分网格。关于EDEM中快速填充一定区域的操作步骤简介

建模与网格划分

在Component Systems找到Mesh模块,拖动到右侧区域,然后双击Geometry模块。关于EDEM中快速填充一定区域的操作步骤简介

建立一个40x40x20mm的立方体。之后保存,打开meshing模块。关于EDEM中快速填充一定区域的操作步骤简介

Meshing模块中左侧单击mesh,在下方明细表中选择Fluent求解器,CFD特性,并设置最大、最小网格尺寸都为4mm,之后对模型进行自动网格划分,生成结构网格;

导出msh文件

在Geomtry里点击实体,设置模型材料为fluid,导出msh文件。关于EDEM中快速填充一定区域的操作步骤简介

编译接口文件

打开GUI_compilation.exe,设置相应版本1551880388956

加载耦合接口文件

打开fluent,依次选择file->Read->Journal..,载入“load_edem_coupling.jou”(耦合2.0接口,耦合1.0接口依次选择Define->User Defined->Fuctions->Complied载入udf库文件路径)关于EDEM中快速填充一定区域的操作步骤简介

编译udf文件

依次选择file->Read->Mesh,读入msh文件,并对.c的udf文件进行编译。User Defined->Functions->Compiled->add,载入CalcRadius.c文件,点Build,在信息提示窗口无错误提示下最后Load。1551923055983关于EDEM中快速填充一定区域的操作步骤简介

计算坐标信息

在User Defined面板点Execute on Demand,在弹出的窗口里选择CalcRadiusVolume,执行后会在CalcRadius.c文件夹中生成一个point.txt文件,里面便是网格的坐标信息。如下图。关于EDEM中快速填充一定区域的操作步骤简介关于EDEM中快速填充一定区域的操作步骤简介

修改point.txt

对point.txt文件里最后一列数字全部替换为1.(最后一列是颗粒粒径比例)关于EDEM中快速填充一定区域的操作步骤简介

拷贝数据

将point.txt中的坐标信息拷贝在Block_Factory_Data.txt中,其中第一行是颗粒填充开始时间,第二行是总体的颗粒数量,也就是网格坐标信息数量。关于EDEM中快速填充一定区域的操作步骤简介

EDEM仿真

新建一个EDEM文件,在几何体面板导入.msh文件,在全局面板设置颗粒材料跟几何体材料参数,在颗粒面板设置粒径大小(半径2 mm),在颗粒工厂面板读入Block_Factory_Data.dll文件。最后设置风格单元大小及时间步长进行计算,填充完成效果如上图。需要特别注意的问题:

1.txt文件里颗粒名称(第一列的字符)要与颗粒面板中设置的颗粒名称相同。

2.需要在EDEM里面设置自定义颗粒插件的文件夹。虽然把dll文件放入项目所在的文件夹也能导入插件,但是在运行的时候会出错,直接退出。

3.注意划分的网格的默认单位是米,因此在导入.msh模型的时候单位应当选择米,这一点与导入CAD模型有所差异(此处巨坑!!)。主要网格尺寸、edem导入尺寸、颗粒尺寸的单位。

4.直接打开Fluent和从Ansys里的Fluent模块打开并不一样,应当直接打开。(此处也巨坑)

5.如果没生成颗粒,或者生成颗粒瞬间炸开了,将仿真的Time Step 改小点!(此处也巨坑)在一定的仿真条件下,粒子的速度可能会变得过大,导致周围粒子的行为不规律:例如,仿真时间步长过大。有两种方法可以帮助解决这个问题。粒子速度可以限制在指定的极限,也可以从模拟中去除超过该极限的粒子。粒子速度和角速度可以分别处理。

制作颗粒模板

导出xml模板文件xml文件是记录仿真配置和状态的文档,之所以要仿真时间归0,因为如果不是0,会包含很多仿真的运算结果,而我们只是单纯的想填充颗粒。

仿真时间归0,切换到分析选型卡,File->Export,选择输出Simulation Deck文件,输出文件的后缀名需为.xml。Export Options 里面只勾选Particle Data,点击OK完成数据导出。

Export Options

导出结果数据文件如果在Tools->Options里面改过单位的话,记得改回国际单位制,引入貌似导入后默认是国际单位制的。

仿真时间归0,切换到分析选型卡,File->Export,选择输出Result Data文件,设置Filename(图中为0512.csv),General选项卡中 Time Steps 选择从1到1(这里1是仿真完成的时间)。

在Queries选项卡里设置需要导出的内容。点击图中+号增加导出项目;在下方选择导出变量,导出变量有分量的在下方的Component里面选取;右侧Type里面选择particle;选择完成后点击左下角Export导出数据。

修改.xml文件

在EXCEL里面将数据按照下述格式进行组合,最终效果见图

将数据复制粘贴到上述的.xml格式文件中,

修改前

修改后

使用方法

在设置颗粒的时候使用快捷键Ctrl+i,选择上述的.xml文件即可。

二、颗粒替换建立颗粒模板,用颗粒填充,(利用模型体积除单个颗粒体积得到所要生成的颗粒数量)导出位置信息并规整格式。

Api读取颗粒模板数据。

替换原始颗粒为新颗粒群,此时用到ParticleReplacement_v2_x64.dll(已编译完成)文件。

Bonding 模型触发产生粘结。

以上两种方法思路有所同,又有所不同。第一种方法利用Api实现快速填充,适合一些关于大块物料破碎类仿真。 第二种方法利用Api实现单个颗粒快速替换为颗粒群,适合小块物料破碎类仿真。

参考资料

海基杨格

edem颗粒替换_EDEM快速填充颗粒的方法相关推荐

  1. edem颗粒替换_EDEM后处理问题的大汇总,方便易懂!

    EDEM后处理问题集锦: 1.Q: 在仿真球磨机衬板时,如何获得衬板的受力,如球磨机转一圈,某一个衬板受力情况? A: 在selection功能里建立一个随体的区域包住衬板,然后就可以提取数据了.多试 ...

  2. excel中快速填充下拉方法

    众所周知,excel中拖住右下角可以在一列中自动填充公式. 但是当一列数据太多,有上万条数据,下拉太慢怎么办呢? 将鼠标放在单元格右下角小方块上,当鼠标变成黑色加号➕时,双击小方块,就可以快速填充一列 ...

  3. 在合并单元格中数组公式无效_合并单元格无法快速填充序号怎么办?

    图/文 龚春光 快速填充大家都会使用,如果我们需要填充序号只要把鼠标放在单元格有下角双击填充柄后选择序列填充就可以完成.但是不知道大家在工作中是否遇到这样的困惑,大小不相同的合并单元格没有办法进行快速 ...

  4. (吐血整理)EDEM导入几何不显示及颗粒工厂没有颗粒生成的五种可能

    今天搞了一下午都才搞清楚,一共有如下五个可能,请 一.首先确定你的颗粒工厂面是不是虚拟的!! 如果不是!无法生成颗粒 二.确定你的颗粒工厂面是不是跟结构面重合了,如果重合!没有颗粒生成 我就是在犀牛里 ...

  5. mysql自动填充测试数据库_入门篇(三):通过填充器快速填充测试数据

    入门篇(三):通过填充器快速填充测试数据 由 学院君 创建于2年前, 最后更新于 1年前 版本号 #3 11119 views 9 likes 0 collects 我们在前两篇教程中分别介绍了如何连 ...

  6. 3、Excel各种类型数据的输入(数据类型、快速填充数据、修改数据)

    1.数据输入注意事项: ①每个单元格最多可以包含32767个字符: ②单元格内换行:Alt+ Enter: ③电话号码.身份证类的文本型数据输入时,先输入英文单引号: ④单元格列宽小于录入数据时,多余 ...

  7. excel填充序列_excel如何快速填充数据

    快速填充 1.拖拉填充 数字篇 选中第一个单元格,鼠标放在右下边,双击或者下拉即可自动填充,可以选择复制或者是填充序列 如果需要填充间隔数字,在开始--填充--序列,把步长(即数字之间的间隔)设置成你 ...

  8. 可以操作excel吗_Excel快速填充,这四种方法你会吗?操作逆天告别加班

    在Excel的表格制作中,仅仅会复制粘贴可是不够的,还需要掌握更多的技能,来提升我们的工作效率! 我们在进行Excel报表制作的时候,如果要批量填充序号,有多少种方法呢?下面给大家简单介绍一下这四种方 ...

  9. excel快速填充_F4键,Excel中最强大的快捷键,没有之一

    Hello,大家好,今天我们来聊聊excel中的快捷键,你觉得excel中哪个快捷键最强大呢?反正我觉得excel中最强大的快捷键当属F4键,可能很多人会说F4不就是用来切换数据引用方式的吗?那只是它 ...

  10. java我的世界填充方块,我的世界怎么快速填充方块-快速填充方块攻略

    我的世界怎么快速填充方块?有很多玩家在游戏中对这个问题不太清楚.接下来就由小编给大家带来我的世界快速填充方块攻略,感兴趣的小伙伴们一起来看看吧! 我的世界快速填充方块方法 创世神组件 相信经常玩建筑的 ...

最新文章

  1. HDU - 3911 Black And White 区间翻转+区间连续最长
  2. CentOS下Clonezilla通过网络自动备份还原系统
  3. 《LINUX下动态链接库的创建与应用》
  4. 线性表的动态顺序存储和实现(C语言实现)【线性表】(4)
  5. RedHat5.5_X64 Linux安装oracle 11.2.0.3 报错
  6. 不一样的图片加载方式
  7. Selenium POM简介
  8. Linux系统下MYSQL主从同步
  9. Android安全防护之旅---Android应用反调试操作的几种方案解析
  10. 定义工作,解读自我——IT帮2019年2月线下活动回顾
  11. MES系统的功能详细以及应用价值介绍
  12. 国密 java springboot 实现 maven依赖 SM2 SM3 SM4 介绍及示例代码 技术专家
  13. SSM框架整合+简单的增删改查的实现
  14. 为什么手机上传图片这么慢 前端_为什么手机上传速度那么慢?
  15. linux安装英伟达显卡驱动
  16. 好奇怪呀后面加什么标点_说后面加什么标点符号
  17. vue标签旋转_基于vue下input实现图片上传,压缩,拼接以及旋转的代码详解
  18. Edify Script (Android Shell)定制Twrp刷机包
  19. pb中操作excel表格函数
  20. mysql 13位时间戳转时间戳_时间戳换算(13位时间戳转换工具 在线)

热门文章

  1. 中国高新技术企业名单数据
  2. SHFileOperation
  3. Kali Linux 破解无线网密码
  4. 小马哥------山寨苹果6s(A9900-912G61-B 尾插盖板A953标示刷机拆机准图与开机识别图 低配机
  5. w10查看端口_Windows 10系统如何查看已打开的端口
  6. 关于被隐藏的文件夹无法去掉隐藏的属性
  7. 渗透测试 ( 1 ) --- 必备 工具、导航
  8. 思科模拟器Cisco Packet Tracer 7.3.0安装配置
  9. 围观了张一鸣近10年的微博,我整理了这231条干货
  10. 手机数据恢复软件哪个好用?