本期内容将基于FastCAE源码的个性化开发,着重介绍个性化功能要求与技术实现方法。抛砖引玉,供各位参考。
基于FastCAE源码的个性化定制开发是一种灵活度较高的定制开发方式,能够实现复杂的个性化功能,也能够对FastCAE的基础功能进行修改。本文以中算电磁仿真软件作为项目介绍案例,主要涉及到前后处理显示以及GMSH网格划分的相关个性化优化操作。

简易F22模型的电磁反射效果图
中算电磁仿真软件基于FastCAE开发,并对部分功能进行修改与完善,集成其提供的电磁求解计算程序,形成一款完整的软件,并支持后续迭代。该软件能够实现对飞行器电磁反射特性的分析。

在本案例中,针对求解器的特点和算例的数据规模,需要在网格划分、前处理渲染功能与渲染效率,以及后处理数据可视化效果上做出个性化定制。
1. 网格区分颜色渲染
个性化需求
网格要求能够设置不同的颜色进行区分渲染,同时在树形菜单点击相应的节点时能够高亮组件对象。
解决方法
通过对网格渲染模块的重构,为每一个单元添加颜色的属性标记。
问题难点
交互渲染时每一个网格单元的颜色判断逻辑。
效果展示

2.网格渲染效率提升
问题描述
前处理网格在指定颜色时,渲染效率变慢,主要原因是遍历网格单元,修改属性标记,遍历的操作耗时很长。
解决方案
采用OpenMP单机多线程并行的方式进行加速。
优化结果
七核并行状态下,运行时间缩短80%。
部分代码展示

3.网格划分跨越边界
问题描述
导入的几何模型,存在很多细长的面片,在网格划分时候会导致网格质量很差,需要在这些面的边界位置跨越边界。
解决方案
采用Gmsh的Compond功能,该功能通过可以将曲线或曲面指定为一个整体,在网格划分时不将交界点或者交界线作为采点硬约束,能够避免狭长面片带来的网格质量问题。软件中可根据用户交互自动识别Compond对象,生成Geo脚本。
难点
需要根据模型的拓扑关系,借鉴波前法思路,自动遍历检索生成可以合并的线的编号。
效果展示



4.几何模型层次化显示
个性化需求
要求几何模型有solid-shell-face-edge的层次化结构,同时点击对应的节点能够对渲染模型进行高亮显示。
解决方案
对几何读取与树形结构以及渲染、选取等部分进行重构,满足其要求。
效果展示


5. 后处理个性化定制
问题描述
后处理对二维与三维的要求较高,要求XY图,极坐标图,二维云图,三维云图等,且个性化要求较强。
解决方法
采用QWT开源库对后处理代码进行重构,针对其个性化功能进行专门的定制开发。除了QWT之外,还可以使用QCustomplot与QChart库实现相似的功能,但二者均为GPL协议,对软件发布并不友好。
效果展示



总结
针对求解器的特点和算例的数据规模,本文案例在网格划分模块个性化定制,给网格划分颜色区域的过程中发现了新的问题,针对渲染效率低的问题进行改进以满足需求。除此之外还对于网格的边界和层次结构进行优化。
基于已有的后处理结果提取程序,对后处理模块进行代码重构,完成定制开发,积累了关于后处理个性化定制的经验。