对于我们流体工程师来讲,“仿真驱动设计”是常常被挂在嘴边的一句话。CFD的主要工作,也是将我们所熟识的物理现象,应用到特定的场景(产品)之中。那么,对于这些不一样的产品,对应的CAD模型就是一个最为主要的特征。是否能够准确合理的在流体仿真中描述这个CAD模型,就成为了最重要的一件事。当然,由于仿真效率与规模的限制,过于详细的CAD描述则可能会影响仿真的进程,因此,我们必须要寻找一种既高效又准确的方法来读入CAD模型,从而帮助我们的仿真流程得以顺利完成。

Fluent Meshing作为一款高级的流体前处理工具,具备有多种CAD导入的方法,涵盖从快捷高效到精细准确的多个环节。而且随着近几年版本的更新,功能也逐步完善,用以应对不同CAD模型、不同仿真精度的多个需求。

图1 从CAD模型到CFD模型的转换

1.Fluent Meshing支持的CAD几何格式

从ANSYS 16.0开始,Fluent Meshing读入几何的接口就与SCDM完全一致了,换句话说,几乎所有主流的CAD格式,目前都可以直接读入到Fluent Meshing中来。

当然,在实际的流体仿真中,我们仍旧推荐导入ANSYS所支持的几何格式,比如*.scdoc,*.agdb,*.pmdb等,因为这一类的几何格式不仅可以确保CAD的数据无错的传递,而且还可以保留共享拓扑及命名等信息。

图2 Fluent Meshing支持的输入和输出文件格式

2.Fluent Meshing读入几何的三种常用方法

图3 不同精度的CAD表面离散方法

2.1通过 CAD Faceting方式读入几何文件

这种方法是Fluent Meshing的默认CAD导入方式,也是使用Workbench打开Fluent Meshing并进行几何输入的唯一方法。通过该方法导入的几何会出现在Geometry Object结构树中,并以类似于*.stl格式的刻面文件方式存在。

该方法主要的优点是读入几何的速度快,生成网格的数量少,占用内存小,整个计算机和软件对模型的响应也更为迅速,因此在工作效率上是比较高的。

当然,该方法也有较大的缺陷:一是通过该方法离散得到的CAD表面网格不能直接作为流体仿真的表面网格,因为网格质量太差;二是该方法离散的精度不高,无法有效捕捉几何的一些重要特征(如曲面等);三是该方法不支持自定义的加密,无法人为的对离散后的网格尺寸分布进行干预。所以可以认为CAD Faceting的方法效率虽高,但精度无法保证。

图4 使用 CAD Faceting 方法导入几何模型

2.2通过 CFD surface Mesh方法读入几何文件

该方法可以认为是在读入几何的同时进行了一次Remesh的操作,因此导进来的CAD文件直接存在于Mesh Object结构树下。同时,绝大多数的网格质量较好,可以作为流体仿真的表面网格,来进行下一步的操作。使用该方法之前需要对尺寸函数进行定义,包括最大值、最小值、曲率和狭缝的加密等等;当然,也可以直接输入已有的尺寸分布文件(需要预先生成)。

该方法的优势是导入后生成的面网格几何精度高、质量好。缺点是工作效率较低、生成速度较慢,尤其是当几何存在问题时,这种方法会极大的延长操作的时间。

图5 使用 CFD surface Mesh 方法导入几何模型

2.3通过readàmeshà *.tgf格式的网格文件导入几何

对于早期接触Fluent和Tgrid软件的流体工程师而言,*.tgf是一个常见的网格文件格式,他与传统的*.stl格式文件类似,都是通过离散化CAD表面几何而形成的。而且,无论是早期的Tgrid还是现在的Fluent Meshing,在导入几何后仍旧会在默认的缓存目录下生成一个*.tgf格式的网格文件,用以恢复崩溃所带来的影响。

对于*.tgf的生成方式,在SCDM 18.0之后的版本中可以直接保存。使用SCDM输出*.tgf网格文件的效率,要比使用Fluent Meshing读入*.scdoc几何文件(CAD Faceting方法)快30%~70%,而且还不会受到版本的限制(比如低版本的Fluent Meshing是无法直接导入高版本的*.scdoc文件的)。同时,该方法在输出表面的时候,还可以调节精度。因此,对于某些单个流体区域的问题(多区域可能会有问题),还是建议使用*.tgf文件进行过渡的;输出文件之后,直接在FM中使用readàmesh就可以找到了。

图6 使用 SCDM软件输出*.tgf网格文件

3.准确高效的读入CAD模型的几种策略

了解了FM读入几何的几种方法之后,我们究竟该如何选择呢?接下来就来讨论一下不同的处理策略。

策略一:先通过 CAD Faceting方式读入几何,再通过Remesh方法改进

CAD Faceting方法工作效率高,离散速度快,可以高效的将几何文件读入到Fluent Meshing的算例中来。但是如上文所述,该方法的曲面精度可能不尽如人意。针对这个问题,可能有些CFD工程师会有疑惑,“Fluent Meshing不是具备有网格重构(Remesh)技术嘛,这个时候只要把粗糙的表面网格加密,就应该可以解决精度不足的问题了。”对于这样的情况,网格重构(Remesh)技术确实可以处理一部分问题,比如互相垂直的特征,或者交线两侧的角度比较大,都可以通过加密的方式来提高离散的精度;但是对于曲率较大的弧面,单纯的后续加密是无法提高精度的。

如下图所示,如果按照相对高效的方法(CAD Faceting)读入了初始的 CAD 文件,那么在球面部分的网格会比较大,可以认为此时的球面被离散成了一个多面体。这个时候再进行尺寸分布的定义并随后对网格重新划分,如图所示,则可以看到:虽然网格数量有所增加,但离散后的多面体仍旧存在,加密的点并未投影在之前 CAD的球面上,相反则是多出一个加密了的 “多面体”。因此可以认为,这种方式对于曲面的精度提升是失败的,而且新增的网格和节点会耗费大量的计算资源,可以认为是“好钢没有用在刀刃上”。

图7 CAD Faceting直接读入的模型

图8 在上图基础上直接Remesh加密的网格

策略二:直接通过CFD Surface Mesh的方法导入CAD几何

如果在首次导入几何的时候就按照高精度的 CFD Surface Mesh方法,对曲率和狭缝的位置进行加密,那么确实可以有效解决弧面处网格精度不高的问题。当然,这种方法也是包含有一定风险的,比如:几何细节未知导致尺寸参数不好确定,全局统一参数设定无法体现局部差异,几何尺寸过小导致网格数量巨大、等待时间过长等。

策略三:先通过SCDM软件输出*.tgf格式的网格文件,再通过Remesh方法改进

对于策略一中的CAD Faceting方法,可能存在精度不高又无法有效调整的情况。如上文所述,与其类似的*.tgf网格格式则可以在导出时定义相应的精度,从而提高曲面特征的准确性。随后,依照该面网格进行的Remesh网格重构,就可以顺利的实现CAD表面向CFD面网格的转变。

当然,对于这一类方法也是存在一定的不足,比如过于精细的*.tgf网格文件会占用较大的硬盘空间,读取起来所需时间也相对较长;同时,多实体间的共享拓扑可能会在*.tgf格式的网格中失效。

策略四:先通过 CAD Faceting方式读入几何,随后保存*.pmdb和*.sf文件,最后使用CFD Surface Mesh的方法重新读入该几何

对于该方法,通常需要3个步骤才能顺利完成。

  • Step 1 通过CAD Faceting的方式导入几何,并保存*.pmdb文件

这个选项中的*.pmdb格式是ANSYS所支持的几何文件,和*.scdoc,*.agdb等格式类似,都是可以将CAD几何无错的传递到ANSYS的网格划分软件中来。

当然,*.pmdb也有自己的特点,那就是读取的速度更快,同样通过Import的方式导入几何文件,*.pmdb和*.scdoc相比通常都会有数倍甚至数十倍的差别。

图9 导入CAD的同时保存*.pmdb文件

  • Step 2 定义尺寸分布并保存*.sf文件

读入之后,我们就可以根据这个粗糙的三角面片文件进行一些参数的设定,比如:细节特征的测量,狭缝与曲率的捕捉,强制尺寸设置,影响体尺寸设置等。有了这些表面网格尺寸分布并计算确认之后,接下来则不需要进行网格的重新划分(Remesh)或是包裹(Wrap),而是储存当前的尺寸分布情况Size Field(*.sf文件)。

图10 设定并保存*.sf尺寸分布文件

需要注意的是,尺寸分布的情况是空间坐标的函数,与几何的形状并无直接的关系,原则上同一个尺寸分布的文件甚至可以使用在完全不同的CAD模型上(当然对应的效果可能会比较差)。

图11 Fluent Meshing可以直接显示尺寸分布的云图

  • Step 3 按照CFD Surface Mesh的方法重新读入*.pmdb文件,并包含*.sf的尺寸分布

保存完毕后,我们重新读入CAD模型,并按照高精度的 CFD Surface Mesh方法来处理。这个时候,之前保存的尺寸分布(*.sf)文件就排上用场了,我们无需再给定曲率与狭缝的加密方法,也无需担心几何会被过度的细化,只需要按照已有的分布进行几何表面的离散化即可。当然,重新读入的几何建议采用*.pmdb格式,这个是在初次导入几何时保存的文件,就如同前面说的,*.pmdb格式的文件可以极大的提升CAD导入的效率,同时还能保证几何的曲面形状,从而达到提高工作效率与离散精度的“双赢”效果。

图12 重新读入 CAD模型

图13 按照“策略四”导入的几何能够有效保证曲面精度

综上所述,建议大家按照以下方法选择策略:

  • 对于只包含一个实体几何的流体计算区域,使用策略三和策略四都可以,因为这两者都兼顾了效率与准确性的要求;
  • 对于多区域的实体(比如共轭换热问题、多参考坐标系问题、多孔介质问题等),建议使用策略四来做,因为*.tgf文件中的共享拓扑效果可能会失败,从而导致大量的重叠与交叉需要后续处理。

dat文件导入cad画图步骤_准确又高效的读入CAD几何——详解Fluent Meshing导入文件的几种方法...相关推荐

  1. vue动态设置文字布局方式_详解Vue动态添加模板的几种方法

    动态添加模板需要收集原始数据的页面,这个时候我们需要很多原始数据收集模板,下面给大家详解Vue 动态添加模板的几种方法,希望对你学习这方面知识有所帮助. 通常我们会在组件里的 template 属性定 ...

  2. 详细说明通过kettke对csv文件转换的操作步骤_如何将多页面pdf分割成一页一页的PDF文件...

    经常会有小伙伴问我,如何将多页面的PDF文件拆分成一个个的PDF文件?例如有5个页面的PDF文件,一次性拆分导出生成5个单页面的PDF文件? PDF文件是我们日常工作学习中经常要用到的,有时候PDF文 ...

  3. vue 修改模板{{}}标签_详解Vue 动态添加模板的几种方法

    以下方法只适用于 Vue1.0 版本,推荐系数由高到低排列. 通常我们会在组件里的 template 属性定义模板,或者是在*.vue文件里的 template 标签里写模板.但是有时候会需要动态生成 ...

  4. dat文件导入cad画图步骤_图说CAD|多文件、多布局图纸批量打印设置的8个关键步骤...

    在AutoCAD中,Publish(发布)功能具有批量打印图纸的功能:1. 以读取预设页面设置的方式进行打印,可直接打印为一套图纸电子文件,也可以打印为单张图纸电子文件.2. 支持批量自定义图纸名称指 ...

  5. python文件之间的相互调用_「Python 系列」 Python 生成器函数详解

    Python的生成器函数提供了一种强大的机制来管理数据和计算资源,但是对于Python的新手来说,它们不一定直观.在本文中,我将分解生成器的机制,同时还介绍我希望是一个有启发性的示例:用于管理和流传输 ...

  6. python生成随机数方法_详解用python生成随机数的几种方法

    今天学习了用python生成仿真数据的一些基本方法和技巧,写成博客和大家分享一下. 本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的 ...

  7. angular路由传递参数_详解Angular5 路由传参的3种方法

    本文介绍了Angular5 路由传参,一共3种方法.分享给大家,具体如下: 1.问号后面带的参数,获取参数的方式:ActivatedRoute.queryParams[id] 例如:/product? ...

  8. CMake使用详解一(单文件编译)

    文章目录 1 什么是CMake 2 单个源文件编译 2.1 编写单个cpp文件 2.2 编写CMakeLists.txt 2.3 使用`cmake .`和`make`编译项目 2.3.1 执行`cma ...

  9. python导入模块介绍_详解Python模块导入方法

    python常被昵称为胶水语言,它能很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松联结在一起.python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的 ...

最新文章

  1. PWA之push服务
  2. 网络营销外包——网络营销外包专员是怎样提升网站收录概率的?
  3. 10行代码理解Java锁消除
  4. 10备忘录没有表格_iPhone的【备忘录】竟然有这么多功能
  5. (转载)python-hwdata
  6. roseha 8.9 for linux oracle 11g,RoseHA 9.0 for Linux配合Oracle12c配置文档_v2.0-2015-04.pdf
  7. Unity 粒子特效(Particle System)大小自适应和层级的一些问题
  8. 高仿城通网盘php,城通网盘VIP订单存在业务隐患,可在线提权(含详细修复)
  9. vs code的php格式化
  10. 支付宝AR扫福背后的故事
  11. AI人工智能简介和其定义
  12. 数商云智慧医疗管理系统解决方案:医药电商系统实现智能化改造
  13. quilt的常用使用命令解释
  14. 用jmeter压测tcp
  15. SQL查询每个站点消费金额最高的人
  16. pywt?PyWavelets?
  17. 【PHP+微信开发】之微信扫码登录
  18. vivo21a点击android版本,vivo X21A推送升级更新安卓9.0系统PD1728_A_6.17.9怎么样
  19. 微信端H5调试工具模拟控制台——vConsole
  20. 2020:下一个十年,存储发展的趋势是什么?(全集)

热门文章

  1. 开发人员与测试人员关系的理解
  2. arduino密码锁代码
  3. Element Plus 跟踪表格数据总数,包括查询、筛选等操作
  4. 南阳理工学院计算机科学与技术分数线,2017南阳理工计算机科学与技术分数
  5. 清明节---山东又叫寒食节--吃冷食
  6. GAPIT 3.0:全基因组关联分析与预测软件最新版发布
  7. 大学计算机学习心得1000字,大学计算机学习心得体会
  8. PHP版本美团闪购开放平台sdk
  9. vue 360全景图的实现(photo-sphere-viewer)
  10. matlab ifft取实部,[合集] matlab中IFFT的问题