Unity中展示Fluent仿真结果的技术解决方案
Unity中展示Fluent仿真结果的技术解决方案
在Unity中展示Fluent模型仿真结果时,如何获取三角片信息是一个关键的技术难点。本文将为您详细介绍这一问题的解决方案,包括通过空间插值技术实现物理量的准确映射。
Unity展示Fluent仿真结果的难点
在之前的工作中,我们已经完成了从Abaqus模型的Inp文件中提取有限元模型的节点和单元信息,并在Unity中建立了与有限元网格相一致的Mesh。由于Unity的Mesh和有限元网格保持一致,因此可以将有限元网格节点上的物理量通过颜色采样附着在Unity模型Mesh上,从而实现与有限元仿真相同的云图效果。
但是,对于Ansys的Fluent模块来说,情况有所不同。Fluent只能导出节点坐标和节点上的物理量,而没有提供导出面片信息的选项。在Unity中重建Mesh需要三角面片信息,即三角片的顶点序列号,Unity根据这些信息在特定节点之间连接三角片,从而实现整个网格的重建。然而,Fluent并不提供这些三角片信息,因此在Unity中重建Fluent网格的最重要难点在于获取三角片信息。
解决方式
基本思路
既然已经实现了从Abaqus的Inp文件中解析顶点和三角片信息,那么可以尝试将Fluent网格转换为Inp格式。在此基础上,有两种可行的思路:
- 将Fluent的网格导入到HyperMesh中生成Abaqus的inp文件,然后按照inp文件的处理方式得到三角片信息。
- 将Fluent的模型导出为stl模型,然后在Abaqus中重新画网格。
然而,这两种方法都存在一个问题:经过处理后得到的实际上是一个与原始Fluent网格不同的新有限元网格。对于第二种方法来说,这是显而易见的;即使是第一种方法,只要经过HyperMesh的导入导出过程,即便不做任何修改,也会导致网格信息发生变化。
有人可能会问,这有什么影响呢?实际上,这会导致在Fluent原始网格上仿真模拟出来的节点数据与新网格的节点在数量和顺序上都不对应。
空间插值
那么,有没有解决办法呢?答案是肯定的,解决方案就是使用空间插值技术。空间插值的基本思想是:虽然新网格的节点数量和编号顺序可能与原始网格不同,但新网格的整体空间区域与原始网格的空间区域是一致的。由于原始网格的节点是均匀且密集分布的,因此可以确定新网格的每一个节点空间位置附近都应该有一部分原始网格节点的空间位置数值。基于这一想法,可以通过空间插值技术从原始网格的物理量数值中插值得到新网格节点位置对应的物理量。
下面是Fluent的仿真结果和在Unity中重建的效果对比: