EnSight — CAE用语解释
EnSight
老师,我听说后处理软件中有一款叫EnSight的。它与ParaView有什么区别呢?
EnSight的理论基础 — 基本概念与控制方程
EnSight的角色
EnSight与FEM求解器或CFD求解器有什么区别?不进行计算的话,为什么还被称为CAE工具呢?
提问很好。EnSight是"后处理器",即专用可视化工具。如果说Abaqus或OpenFOAM是求解支配方程来计算物理量的"求解器",那么EnSight就是读取计算结果文件,以人能理解的方式"展示"这些结果。它在CAE工作流程的最后阶段发挥作用,是不可或缺的工具。
不求解控制方程却能显示复杂的流动和应力,数据结构是怎样的呢?
求解器将计算结果作为节点或单元对应的"标量值""矢量值""张量值"输出到文件中。例如节点温度是标量,速度是矢量,应力是张量。EnSight读取这些原始数据,并利用插值算法将其渲染为连续分布。要显示等值面(等值面),例如寻找压力为101325 Pa的面,需要使用Marching Cubes法等算法。
张量显示具体是在看什么?数字列表无法形成直观印象。
这就是可视化的用处。应力张量
EnSight的数值计算方法 — 数据处理与可视化算法
数据处理的核心
数百万单元这样的庞大分析结果,EnSight是怎么流畅地显示的?是把所有数据一次性加载到内存里吗?
这正是后处理器的关键。EnSight采用"超出核心"处理和"细节级别"技术的组合。不是始终将所有数据保存在内存中,而是只从磁盘流式读取显示所需的部分。同时,远处的模型自动转换为简化显示而非详细网格,降低渲染负荷。
在流动可视化中常见的"流线"是怎么计算和绘制的?是从求解器计算的矢量场开始的吧?
正是这样。给定速度矢量场
在动画中显示变形或流动时,结果文件是离散的时间步长数据。那中间的运动是怎么生成的?
通常采用保存的时间步长间进行"线性插值"。例如时刻t1和t2的位移数据,中间时刻t的位移为:
EnSight的实务应用 — 工作流程与检查清单
有效可视化的步骤
分析完成后用EnSight打开结果,首先应该检查什么?想制作漂亮图表却不知从何下手…
首先要进行"数据健全性检查"。具体来说:1) 模型几何是否正确读取(无缺失或扭曲),2) 预期的物理量(应力、位移、压力等)是否全部在变量列表中,3) 单位制是否正确(特别是国际单位制SI),4) 时间步长数和动画范围是否正确。忽视这些会导致后期才发现错误,需要重新制作所有图表。
制作报告用的图表时,选择色彩映射需要注意什么?应该使用默认彩虹色彩映射吗?
近年的最佳做法是,连续数据应使用"viridis"或"plasma"这样的感知均匀的色彩映射。彩虹色彩映射虽然引人注目,但存在值变化被非线性感知和因色觉特性差异导致认知差异的问题。EnSight 10.2之后版本标准配备了这些现代化的色彩映射。对于应力等有正有负的值,采用蓝-白-红这样的发散型色彩映射最有效。
将动画输出为MP4或GIF时,文件体积变得巨大。怎样压缩?
需要调整几个设置。分辨率根据用途调低(演示用1920x1080,网络用1280x720)。帧率15-24 fps足够。选择H.264编码器,调整比特率。在EnSight输出设置中只需把"质量"改为"中等"就能大幅削减文件体积。重要的是必须确认压缩没有丧失等高线或微小漩涡等重要物理现象的特征。
EnSight软件对比 — 后处理器的地位
与其他工具的区别
除了EnSight,还有ParaView和其他基于VTK的工具。根本区别是什么?只是价格贵?
核心差异是"开发起源与目标市场"。EnSight最初由CEI(现被ANSYS收购)为航空航天和汽车领域的超大规模数据可视化开发的商用工具,在并行处理和大容量数据处理上很强。ParaView是开源的,以学术和研究社群为中心,定制性高。换句话说,企业每日处理数十GB的CFD结果选EnSight,研究中需要实现特殊可视化算法选ParaView,这就是分工。
Abaqus/CAE和ANSYS Mechanical也有后处理功能。专门用EnSight的优势是什么?
主要有三点。第一是"多求解器、多物理支持"。EnSight可以在一个画面上比较整合显示Abaqus、ANSYS、LS-DYNA、OpenFOAM、STAR-CCM+等多种求解器的结果。第二是"高级可视化功能"。复杂粒子追踪、定量测量工具、电影级渲染都能做到。第三是"自动化和批处理"。用Python脚本可以完全自动生成报告。求解器自带的后处理在这些任务上有局限,EnSight能专业地完成这些工作。
EnSight Gold和EnSight VR有什么不同?VR是虚拟现实用的?
这是产品线的区别。EnSight Gold是功能完整的桌面版。EnSight VR是为大规模显示环境(CAVE或功率墙)或HTC Vive/Oculus Rift等VR头显的沉浸式可视化特别设计的版本,主要用于设计评审和教育培训。例如在虚拟现实中行走浏览汽车发动机舱,同时以实物大小观看CFD计算的热分布。核心可视化引擎相同,但输出和交互方式不同。
EnSight故障处理 — 常见错误与对策
数据读取与显示问题
尝试将OpenFOAM的情况读入EnSight时出错。显示"多边形数过多"这样的信息。怎么办?
典型原因是OpenFOAM的"边界区域"作为"面"读入时出现。EnSight默认试图将所有边界补丁作为多边形网格读入,数量太多时会导致内存不足。对策有两种:1) 在EnSight的OpenFOAM读取器设置中,只选择需要的补丁(例如inlet、wall)读入。2) 读取时打开"合并边界"选项。这样内部边界被合并,显示负荷大幅降低。
显示变形后网格时,单元看起来好像被撕裂了。分析结果有问题吗?
很可能是"单元反演"。在大变形分析中单元发生极端扭曲,单元体积变为负(雅可比行列式为负),相邻单元的连接性破裂,视觉上呈现裂开状。首先将位移显示倍数设为1.0(实际位移)确认。若仍有裂开,则求解器输出文件有问题。对于Abaqus的.odb文件,"Status=1"的单元是被删除的单元。在EnSight中绘制位移量,检查是否存在局部异常大的值(如1e10),这是第一步。
显示流线时,流线中突然消失或穿过墙体。数据也有问题吗?
大多数情况是数值积分设置或数据插值问题。首先增加流线的"最大步数"(从默认1000改为10000等)。若仍穿过墙体,则源于矢量场插值方法。EnSight在单元内插值矢量,但单元品质差(偏斜大)会导致插值值错误。对策是将流线"起点"设在离墙体稍远的位置。根本解决需在求解器端改进壁面附近网格细化或边界层分辨率。
色彩条的最大值和最小值设为"自动",但每次运行值都变。无法进行比较。
"自动"是以当前显示部分的数据范围为基准,所以会变化。要在全时间步、全区域范围内用统一范围进行比较,需要手动设置。用EnSight的"Calculator"功能,事先计算目标变量在全域、全步的最大最小值并记录。然后将色彩条设置改为"Manual",输入该范围。制作报告图表时此手动设置是必需的。比较不同工况时必须设定共同的值范围,否则视觉比较就没有意义。
相关主题
详细
错误