首页/文章/ 详情

工业软件研发中处理超大模型(4)

2年前浏览1150

工业软件研发中处理超大模型一文中,提到了模型的规模一般要从几何复杂度网格复杂度两个方面描述。


两个典型的例子:

  1. 建筑的建模中通常使用三维实体建模,常用的结构单元为三维实体墙,楼梯,门窗,楼板等,且这些单元直接存在大量的实体计算。一栋楼的几何复杂度相当高。对大型结构进行整体分析时,一般不会使用实体单元,也就是不会使用四面体,六面体单元,而是使用梁单元,杆单元,索,膜,壳单元等,在局部分析时才会使用实体单元,因此结构在整体分析时三维实体模型会简化为几何上的线段或者面,相比几何模型,网格模型大为简化。

image.png

image.png

image.png

2.对一个长,宽,高为1000的立方体进行四面体体网格划分,不带任何材料,边界荷载等属性。以下是在某前处理软件中进行体网格划分,单元长度和单元个数的数据表。

其中当四面体单元数目达到1亿时,在16G内存,i5CPU4核的笔记本上生成时间在10分钟左右。理论上,只要内存足够大,可以生成任意数目的网格。所以在评估模型复杂度和网格生成难度的时候,单纯的考量网格数目没有太大意义。

image.png

image.png

image.png

image.png

在16G内存,i5CPU4核,有独立显卡的笔记本上,使用前处理器交互操作400万左右单元网格,已经非常卡顿。

之前有朋友在使用开源渲染工具Paraview后,提出Paraview实现过于复杂,不适合做后处理显示。事实上Paraview的设计初衷并不是在单机上进行图形显示,而是处理超大规模的数据,比如模拟核爆,天气,大规模CFD等等。Paraview使用远程和并行数据处理机制,因此在设计上使用了Server/Client的模式,使得在集群,分布式等各种环境中最大化硬件使用效率。



400万左右单元的文件大小在500M左右,1亿单元左右网格文件在8G左右。当单元数在10亿以上时,文件大小也会增加一个数量级。对于这种超大规模的文件,导出,读取,验证都是很耗时的操作。


一般在设计网格文件格式时,最好把数据设计成类似Patran文件按字节长度固定,或者二进制文件,以提高读取效率。也可以将文件分割成段或者分成几个文件,使用多线程读取,但是增加了复杂度,可根据实际情况处理。文件读取时间相比求解时间可以忽略不计,但是超大规模文件的读取性能仍然需要注意。


读入网格数据之后,在求解器计算之前,需要对网格模型进行验证,包括各种属性,网格拓扑,网格质量,基本配置检查。参考 一篇文章入门多物理场有限元(全篇)这块操作可以简单使用多线程工具进行加速



-----求解器干了什么-----

有限元模型生成后,通常会导出保存为一个文件,文件中保存了节点,单元,材料,边界,荷载,工况,求解等设置信息,求解器会读入该文件进行计算。ANSYS为cdb,ABAQUS为inp,PATRAN为bdf。

一般商业软件都会把求解器做成单独的可执行程序(*.exe程序),单独启动进程求解,而不是集成在前处理器中。一是单独的进程便于管理和分布式计算;二是解耦前处理器和求解器,方便调试;三是可以方便导入到第三方工具中,缺点是模型文件容易被非法查看,可以通过二进制和加密来解决。

求解器读入有限元模型后,首先会检查模型的有效性,比如网格节点是否正确(重复节点,重复网格,索引错误等),还会检查网格质量,最小角度,边长,Aspect ratio,skew ratio 以及对应的求解配置是否正确,比如边界是否设置,工况是否合理(振动频率阶次过多),材料是否有效(比如泊松比大于0.5)等等。当出现不合理设置时,给出警告信息;出现错时,则返回不计算。模型检查合格之后,根据求解器设置,计算每个单元的刚度矩阵,然后组装刚度矩阵成全局矩阵,最终建立起一个非齐次线性方程组,最后求解该线程方程组。



可以看出,超大模型在普通台式机或者笔记本上是无法流畅运行的,一般都需要大内存,好CPU的服务器,而跑仿真更需要高配置的服务器或集群。有些线性方程组求解库提供了OOC(out of core)功能,即在求解过程中将临时数据保存到硬盘,需要时再导入,以减少内存的开销。从硬件上看,不考虑对CPU性能的压榨,处理大模型最容易造成瓶颈便是内存容量。



宏观上讲,大的几何并不代表计算模型大,小几何也一样。模型的大小和复杂度没有必然的联系。比如火箭振动分析,采用的都是一维单元加质点单元,强度也是采用局部分析。电磁中电大尺寸分析,普遍使用MOM,BEM以及物理光学分析,相比有限元,对网格的依赖非常低,对计算的要求高。一块设计复杂的PCB板,激励上千,体网格数量在千万级别也很常见。而FDTD的GRID数量直接决定了计算复杂度,所以根据实际业务定义超大模型也很有必要。



对于研发来讲,超大模型的一大特点是调试困难。所以也是反复强调开发调试工具的重要性,几何网格开发都需要,尤其在求解器开发中,会产生各种大规模的中间数据,如果没有好的调试工具,出了问题几乎没办法定位调试。

本文扩展讨论了超大模型的一些特点,也是为后面介绍求解器做准备。求解器求解核心内容是对矩阵的操作,这块内容其实也相对成熟,但是针对超大规模的矩阵操作,仍然有许多值得研究的地方,有些还是前沿内容,后续详细探讨。


科普其他软件
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-06-08
最近编辑:2年前
多物理场仿真技术
www.cae-sim.com
获赞 126粉丝 322文章 220课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈