首页/文章/ 详情

工业软件数据格式 | INP与ODB的前世今生

4月前浏览6011

1978年的某个深夜,在美国沃尔瑟姆(Waltham)某处,一摞包含计算条件信息的打孔卡被吞进了IBM计算机中,而在另一侧的卡片转译设备中则输出了一卷长长的纸张,上面打印着一行行整齐的结果数据。

打孔卡编程

数据列表

那些打孔卡,便是INP文件的前身,而那些数字列表,则在未来被冠以ODB文件的名号。计算机中运行着的,便是在仿真界赫赫有名的ABAQUS的初代程序。

INP文件是ABAQUS求解器的输入文件,记录了ABAQUS仿真求解所需的所有信息;ODB文件则是输出文件,记载着求解后的分析结果。

而它们的缔造者,ABAQUS公司的创始人之一,David Hibbitt博士,此时正在焦虑地等待计算结果,因为这是他驱车100多公里才换来的一次程序验证机会,如果等到白天,租用计算机的价格将贵很多。

年轻时的David Hibbitt

01 ABAQUS创业史

在成立ABAQUS公司之前,David曾与其博士生导师,著名的MARC公司的创始人Pedro Marcal,一同开发并推出了第一个商业非线性有限元程序MARC。

在那个编程还要靠打孔卡的年代,计算机的计算性能还不及当今智能手机的万分之一,David和Pedro克服重重困难开发的非线性有限元求解程序,得到了大量项目订单,Pedro教授也从布朗大学辞职下海,正式走入市场开辟新的战线。

然而,创业路上难免出现意见分歧,David与Pedro的分歧点用今天的话来说就是“用户思维”。David敏锐地意识到目前的MARC程序的可用性太差,实际使用起来很难满足大多数工程师的需求,需要用户懂代码才能够使用,而这对于大部分专注于设计的工程师来说是很困难的。

David说:“我们认为当前的明智之路是为需要进行非线性计算的工程师开发出一个强大的‘黑盒子’工具。”但是不幸的是,Pedro对这种投资没有兴趣。

意识到老板的局限性后,David选择了出走创业,他与两位前同事Bengt Karlsson和Paul Sorensen在1978年合伙成立了HKS公司。他们所构思的软件产品,正是后来大名鼎鼎的ABAQUS,关于ABAQUS的名字由来,其实最初David设想的是ABACUS,也就是“算盘”,有计算分析之意。可是由于商标已经被注册,所以灵机一动把“C”改成了“Q”,发音没变,且Q代表“Quality”,有质量上乘之意。

ABAQUS早期LOGO与含义

尽管有MARC公司的经历珠玉在前,但是David的创业之路仍旧十分坎坷。

“我们是一家软件公司:没有软件,没有计算机,没有客户或潜在客户,几乎没有钱”David如实说。他们首先编写了《用户手册》,旨在使问题定义变得简单而直观,然后设计了系统的代码架构,同时也编写了《理论手册》。

在那段从0起步的日子里,David一边在大学里兼 职授课补贴公司开支,一边开发程序。开发好的程序,要去离家100多公里的沃尔瑟姆,才有IBM计算机来进行运行验证,为了省钱,他们经常是在夜间使用计算机(白天租用价格是夜间的2.5倍)。

直到1978年6月,David得到了第一位客户——汉福德核发展基地实验室(Hanford nuclear Development Site),该实验室需要解决快速增殖反应堆燃料棒的接触问题,合同要求9月底交付代码。三个月的时间并不充裕,但是对于创业公司的首个客户,无论如何也要服务到位,于是在克服重重困难后,David和Bengt按时交付了15000行的FORTRAN代码,这也是ABAQUS的第一个版本。

02 从数据列表到七彩云图

后来,随着计算机技术的不断发展,打孔卡成为了历史回忆,无论是输入数据还是输出数据,都可以在显示器中进行显示和编辑,INP和ODB的文件格式已见雏形。

彼时ABAQUS还没有前后处理器,只有求解功能,所以当用户面对复杂的结构模型时,需要将手动其处理成INP文件中的节点、单元、载荷等数据,并按照规定格式编写好提交计算。而输出的结果数据只能以数据列表的形式查看和分析。即便是知识深厚的天才工程师,每天面对着如此抽象的数据表现形式也难免头大。

很明显,如果没有前处理器来解决复杂建模问题,并通过后处理器以图形的方式查看结果,它很难作为独立产品继续下去。

ABAQUS先是通过外接绘图仪的方式,来实现“绘图输出文件”,用户可以在分析中插入间隔地输出应力或位移的绘图命令,生成一个绘图文件并在绘图仪上绘制,那时要花半天时间才完成几百个单元的云图绘制工作。

直到1987年,ABAQUS/Post作为一个独立的后处理器发布,具有图像显示和命令输入的功能,不需要再外接绘图仪了。结果数据也终于从ODB文件中的数据列表成为了五彩斑斓的云图,不仅让仿真工作的效率大大提升,更给工程师的工作增添了一抹色彩。

第一款后处理器ABAQUS/Post

解决了后处理的问题,前处理更是ABAQUS团队的一大挑战,为此HKS公司投入大量资金,终于在1999年推出了ABAQUS/CAE的第一个版本,用户可以在GUI界面中轻松地创建、管理和可视化复杂的仿真模型,并针对特定应用定制专属的ABAQUS界面。

ABAQUS/CAE的第一个版本

此后,INP文件和ODB文件退居幕后,成为了前、后处理器与求解器之间的"传声筒",新一代用户也很少再从如何写INP文件学起,而是从简单易用的ABAQUS/CAE界面入手,在3D图形窗口中进行直观的交互操作,或许根本没注意过INP和ODB的存在。

03 格式解析,工业软件绕不过的大山

所以,INP和ODB从此就躲在文件夹的角落里无人问津了吗?故事还远远没有结束。

对于很多ABAQUS的高级用户而言,用户界面中的功能按钮不足以应对所有的工作场景,也无法满足他们对于求解器的掌控欲,很多特殊场景下的功能只能通过编辑INP文件才能实现,在INP文件中不仅可以实现前处理界面中的所有功能,还可以控制分析过程,自定义输入与输出,且更加快速。

同时,随着CAE软件的百花齐放,不同软件之间的数据格式解析转换也成为了工业软件厂商绕不过去的大山,许多工业软件开发团队所研发的优秀求解算法因未能打通与主流商软间的接口而导致难以通用,开发团队将大量的时间用于研究如何解析不同格式的数据文件,重复造轮子,无法将精力投入到最核心的算法开发中。

面对这种情况,云境智仿通过对主流格式的深入研究,自主开发了一款可以解析转换多种数据格式的组件化产品YJExchanger,可以满足INP、ODB、CDB、RST、VTK等十余种CAE前处理格式、结果格式的读写与相互转换。

YJExchanger支持的格式

基于自主研发的数据中间表示和数据结构设计,YJExchanger不但可以确保数据的完整准确,还使得格式解析转换时的内存占用率极低,实现高效计算。

YJExchanger ODB数据解析示例

从打孔卡上的一颗颗圆孔到文本文件中的一串串字符,从枯燥的数字列表到漂亮的七彩云图,INP和ODB文件不仅记载着设计人员的智慧,也承载着仿真人员和程序开发者的汗水。

他们寻求物理世界的真谛,将千变万化的物体与结构抽象成节点和单元,将无形无色的声光热电力具象成载荷与约束,他们在有限的计算资源约束下去挑战无限复杂的物理世界,力求逼近最真实的工况,凝练出最优化的设计方案,帮助人类以最小的成本探索未来,奔赴星辰大海。

YJExchanger数据解析示例

参考资料:

  1. 《Abaqus简史:“黑科技”之路》https://www.sohu.com/a/414660312_722157

来源:工业软件产品分析
MarcAbaqus非线性二次开发通用电力理论控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-06-29
最近编辑:4月前
石寒ColdStone
让制造业从业者过上舒适的生活
获赞 12粉丝 1文章 34课程 0
点赞
收藏
作者推荐

工业软件产品设计——状态栏

本文笔者将从工业软件界面中很不起眼的一个部分——“状态栏”讲起,分析各家CAD/CAE软件的状态栏设计差异。01状态栏顾名思义,状态栏就是用来展示状态的,它通常是软件最底部的一个窄长条。和其面积所占的比例一样,状态栏在软件的整体功能中并不发挥主力作用,因此有些软件干脆直接取消了状态栏,将其功能分散到其他位置。细微处见真章,如何把状态栏这块方寸之地发挥它最大的作用,也是产品设计者的能力的体现。首先,先看看4款CAD软件的状态栏。02CADAutoCADAutoCAD作为2DCAD的代表,对于状态栏可谓充分利用。除了切换模式的选项卡外,AutoCAD还将大量绘图工具的快速访问按钮放到了状态栏。下图所示的只是默认设置下的冰山一角,实际上通过自定义还可以添加更多的快捷工具。笔者将AutoCAD状态栏中的元素分成工具和命令、状态信息两类。后面几款软件基本也以此分类,将不再赘述。由图可见,说是“状态栏”,但实际上AutoCAD并没有在此处放置太多状态信息,而是将其作为一个快捷工具栏,承担绘图时的辅助工具。而像绘图、修改、注释等主要功能,仍然安坐在Ribbon上。Creo相比于AutoCAD,Creo状态栏上的工具和命令少了许多,主要是与窗口和选择相关的命令。Creo状态栏对于状态信息的展示比重增大,以图标和文字组合形式说明与窗口中当前操作有关的消息(消息区),以图标展示模型重新生成情况和错误警告消息(图片中未显示错误警告图标),点击图标后可打开事件管理器看到详细信息。左侧区域放置三个与窗口视图相关的命令,点击后窗口形式会发生变化。右侧区域中搜索工具、选择缓冲器、选择过滤器均是为选择功能服务的。剩下的中间区域,用来展示与操作、模型状态、错误警告相关的消息。从图片可以看出,消息区包含的信息较多,既有对每个命令的操作提示,又可展示模型重新生成等状态信息,是与用户进行对话的重要窗口,起到了关键的辅助作用。SolidworksSW状态栏的命令与Creo相比更少,以状态信息为主,大多数以文字展示,并根据三维模式和二维模式有所区分。UG相比于Creo的拥挤,SW的稀疏,UG对状态栏区域的划分更加错落有致,但是承载的功能也更少,整体分为左中右三区,左侧显示命令操作提示,中间显示选择对象的类型和总数,右侧放置两个功能按钮分别是活动草图和全屏功能。再看4款CAE软件的状态栏。03CAEAnsysAnsys的状态栏基本没有命令,只是在求解时会有暂停和停止计算。状态信息除了与CAD相同的命令提示和消息提醒外,还包括了CAE计算比较重视的单位制信息,与CAD只考虑尺寸单位不同,CAE中还要考虑温度、角度、速度等参数。未求解时求解时AbaqusAbaqus的状态栏不在最底下,而是在图形窗口紧贴着图形窗口下边。别具一格的是,Abaqus提供的命令提示信息可以交互,如下图所示,在提示信息中可以输入参数,可以取消命令。这样的设计使状态栏在一定程度上代替了弹窗,看来Abaqus也知道自己的弹窗太多了,只能委屈状态栏帮忙分担一些。Comsol每次看Comsol界面都觉得清洗了眼睛,它的状态栏也和它整体一样干净,只有两个表示内存占用情况的数字,一个是物理内存,一个是虚拟内存。在求解时,状态栏中还会出现求解进度条,用户可以在此停止计算。可以看出CAE软件在求解时一定要给用户提供反悔的路径,不要逼他们去任务管理器里关闭软件才能拦住计算的脚步。求解时HyperworksHW的状态栏与其他的软件大同小异。不过HW状态栏里选择过滤器的小按钮和Ribbon里的大图标相比,实在是相形见绌,如果没有工具提示,我应该看不出这个图标在隐喻什么。04云端工业软件最后看几款云端软件,作为先锋代表,云端的工业软件们似乎都抛弃了状态栏,把状态信息分散到其他位置显示。05总结在传统软件设计中,状态栏的核心功能是展示当前的状态信息,告知用户正在发生的事情并提供指导。不过,为了充分利用空间,很多软件都在状态栏里增加了快捷工具,过分如AutoCAD,打着状态栏的名号,实则就是一个快捷工具栏。不同软件的状态栏所承载的信息量也存在差异。软件内部的信息很多,但是体贴的软件应当有选择地将必要信息呈现给用户。既不能一言不发,也不应把细节一一奉上给用户审阅。展现信息的方式和位置也有很多种,状态栏只是其中一种,其他的形式或位置还包括弹窗、浮动提示、图标隐喻、颜色、声音反馈、模型树、窗口顶部等等下一篇,笔者计划分析CAD/CAE软件中有哪些必要信息需要呈现给用户,以及不同软件展示这些信息的方式。来源:工业软件产品分析

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈