有限元理论基础及Abaqus内部实现方式研究系列31:自主CAE开发实战经验第三阶段总结
(原创,转载请注明出处)
1 总结概述
随着有限元基础理论和Abaqus内部实现方式研究系列的文章的发布,我们每十篇将总结一下我们在开发自主CAE过程中的实际经验和体会,和大家共同探讨自主CAE的发展道路:
(1)自主CAE开发实战经验第一阶段总结。介绍了iSolver开发以来的阶段性总结,从整体角度上介绍一下自主CAE的一些实战经验,包括开发时间预估、框架设计、编程语言选择、测试、未来发展方向等。
http://www.jishulink.com/content/post/532475
(2)自主CAE开发实战经验第二阶段总结:iSolver上一阶段主要是技术功能的开发研究,第二阶段介绍自主CAE开发过程中的商业化思维和可扩展、易维护平台的重要性。
https://www.jishulink.com/content/post/1204970
本文为第三阶段,介绍自主CAE软件的开发目标的初心、市场推广策略和第三阶段iSolver的开发重点。
2 第三十一篇:自主CAE开发实战经验第三阶段总结:
2.1 “初心”- 以市场和经验分享为开发目标
自主CAE软件的开发进入了第三阶段,当我们五年前在技术邻上发布iSolver第一个版本时,自主CAE基本无人问津,前途灰蒙蒙一片,国内也没几个愿意声称自己是做自主CAE软件的,当时我们还在文章中写过,按现有的开发经验来说,如果不是国家政策和发展模式的转变,预估一下,我们这一代人退休了,自主CAE可能还是没法达到商用。没想到随着中美贸易的紧张,短短两三年,自主CAE已是百花齐放、百家争鸣的时代。当然,每个软件的发展现状还是层次不齐的,这么多自主CAE软件,按开发目标可以分为两个阶段:
(1) 第一阶段,以获得启动资金为目标的起步阶段。想要做自主CAE,那么必须获得部分的启动资金来投入到开发中,有些靠公司的长期规划自投入,有些靠外部资金引入,有些一开始就以申请国家项目为目标,当然,也有像我们一样,纯靠在市场上做商软二次开发支撑下来的。当一穷二白时,几乎所有的团队都希望能从外部或者国家那边拿到大项目作为启动经费,然后做自主CAE的开发,但外部资金和国家的项目毕竟是少数,就算有幸获得赞助,至于能不能进入下一个阶段也要看开发者的侧重点。外部或者国家项目首先是以项目验收为目点,如果领导们没有想要利用这部分经费投入切合市场的开发,那么项目会花大量时间在验收文档、演示、宣传等的精细化而忽略了软件产品本身功能的开发,验收时的成果也很难用于市场。但如果领导和开发者上下同心,完全可以利用项目周期,做出真正对自己有用的内容,毕竟项目的内容基本都是自己写的也基本是自己想做的。
(2) 第二阶段,以市场应用为目标的成长阶段。以市场应用为目标是自主CAE的必然趋势,这点我们在下方章节将详细叙述。而用一个新的软件绝对是要花很多时间来摸索的,特别是通用功能商软基本已经垄断而大家还普遍对国内自主软件开发的精度和稳定性不够信任的时候。除开一些商软禁运的行业,想让市场上的一个陌生用户愿意花时间来使用、真银白银的花钱买你的软件,那么你的软件肯定要解决他的实际问题,分两个层次:
a) 第一个简单的层次:你的软件有商软能做但做起来费劲的功能,譬如比商软做的更自动化、把计算的流程固化,可以省客户的时间,同时将客户的经验集中管理形成企业知识的积累。
b) 第二个复杂的层次:你的软件有商软没有的功能,现阶段只要稍微通用点的功能商软都会自己实现了,所以只能在个别专业点上突破,以此为切入点来逐步完成对商软的替代。
当然,前面两个层次只是技术方面的问题,但市场应用另外一个问题是自主CAE软件的宣传和市场商业化推广,这远比开发更难。我们可喜的发现起码国内已经有几家的CAE产品已经达到了这个阶段,软件演示的用户体验已经达到了商软的水平,提供实际下载运行使用,而且做的宣传也相当专业化。
iSolve已经过了一穷二白的阶段,现在已经有个完善的有限元开发平台,用户可以直接在我们的平台上完成一些结构有限元分析的基本功能,对客户的问题也能快速反馈,我们团队精力有限,没能力对标商软的强大优势点做全面替代,而只期望做个补鞋匠围绕商软的缺点修修补补,然后在市场上能站住脚跟,能少做些商软的二次开发,更多的是做些自主软件的定制开发来养活自己。当然,我们也陆续和其它单位合作申请了一些国家项目,这要比我们以前靠在市场上做商软的二次开发来说有更多的经费来支撑开发,在我们自己的平台上的开发也比商软二次开发更能促进自身的发展。但不管如何我们依然时刻提醒自己,市场上的应用才是真正的目标,也会重视软件的可靠性和用户体验反馈。同时,和五年前发布第一篇文章的初衷一样,我们做iSolver和写文章的另一个目标是希望将开发CAE的足迹留下来,对后来者有个参考,希望能带给自主CAE开发者一点信心和坚持的动力。
2.2 “途径”-以市场推广敲碎自主CAE软件发展的死循环
在自主CAE领域,有个普遍的想法,没有十年的努力,不会有结果。假如,靠着国家的补助,你的团队连续十年都可以静心开发自主CAE。那么,自主CAE经过十年后会发生什么情况呢?有两种可能性:
(1) 你成功了,真的做出了比肩市场的大型CAE软件,且功能和精度等都达到了国际水平,一开始,你可能会通过实在的价格获得一部分利润,然后国外商软一看苗头不对,也开始大幅降价,先把你的价格优势抹平,然后利用市场优势继续在学校、小微企业免费使用,过段时间,慢慢购买自主CAE的企业逐渐变少,等耗死了你,再提价。整个过程和上世纪八九十年代基本一样,死的还是自主CAE,商软依然流行,唯一收益的就是国家,起码可以以更低的价格买到同样的产品,而开发者除了沾点名气外对自主CAE也没多少贡献。
(2) 你还没成功,此时你的自主CAE还没不具备商业化能力,国家投入了自主CAE十年后,发现成效不大,直接不再投资,需要你到市场上自己打拼,由于一个大型软件的开发和维护需要一个长期稳定和一定规模的团队,那么必然要求每年都得从市场上获得一部分维持的利润,不得不转做商软的二次开发或者一些专业化的集成定制工作,导致团队投入自主CAE的精力越来越少,慢慢队伍就散掉了,更是无法开发出适应市场的产品,最终只能接受市场的淘汰。
要打破这个死循环,那么只有一种可能,以市场为导向,在这十年开发的过程中,慢慢将市场和商业化做起来,技术和市场都不比商软差,努力在恶劣的环境下和商软共存。现阶段,想要直接取代商软太难了,毕竟人家已经发展了几十年,按照等效原则,就算商软不继续进步,没有相同时间内的积累也很难达到商软的高度,所以,更切实的是分析商软在市场上做的不好或者不做的工作,力求在这些方面做一些有特色的工作,在某些细分领域让自主软件也有一席之地。
(1) 点对点的验证
软件的验证是软件推广中的一个重要环节,真正想要对软件进行验证,我们发现只有点对点的两种途径:
一方面,技术邻的一些用户反馈后点对点的技术指导和改进,甚至为他做一些功能的快速定制,所以,我们很欢迎大家在使用过程中对iSolver有任何的问题来联系我们,对我们来说,您的使用和问题反馈是非常宝贵的经验。
另一方面,就是线下请熟人验证,这种时候才会真正的去用你的软件来计算他的工程模型,像测试商软一样去校核计算的结果,反馈软件的使用情况,甚至写相应的验证报告。当然,这种校核一般都要花很多时间,而自主软件的开发很多时候像这种宣传、验证是很难申请到经费的,所以,前端时间我们也只能请有业务来往的以前的项目合作者或者未来的合作者帮忙测试验证,在此,也感谢最近帮忙校核软件的合作者。
(2) 大批量的宣传和推广
谁都希望推广的时候把自主软件放网上一挂,然后用户自动去下载试用、反馈,但事实上这种只是开发者一厢情愿的想法,自愿自觉的用户实在太少了,除了你的软件功能具有不可替代性,基本不会主动去下载了解的,而现阶段自主软件想要做到商软没有的功能实在太难了,iSolver这么多年用户使用下来,也仅仅是利用Matlab来实现UEL/UMAT等子程序的功能是商软不可替代的,以致很多用户以为iSolver是不是就是个子程序调试工具,而很少有人离开子程序真正去用一下它的核心有限元求解功能。和商软相比,我们的反馈速度绝对是快的,不信你可以试试在技术邻上我们发布的视频或者帖子下方留言一下,看看我们什么时候回答你。商软不出问题还好,但要是遇到Bug,遇到希望商软修改的地方就麻烦了,商软处理问题的程序相对复杂,如果有些开发问题,那么必须还要联系国外的开发人员,周期较长,而且还要看你的客户等级,能修改已经算可以了,至于是否下个版本修改就不一定了,很多时候并不是他不想改,而是商软的只要涉及到底层的代码都是上世纪七八年代的语言,维护困难,牵一发动全身。
(3) 定制和产权才是客户想要的功能
商业软件中,通用软件还是主流,商软基本都是以通用为主,这是有很大的历史渊源的,像结构CAE软件Nastran、Ansys、Abaqus分别是1964、1972、1978年的产品,当时基本没有像现在一样强大的竞争对手,相反,CAE的应用也恰好是有限元在各个行业验证,分蛋糕的过程,软件的功能自然是通用为主。通用软件只做一些核心求解功能,而各个行业各个领域又都存在不同程度的规范校核、行业建模标准等,商软就提供基于二次开发的接口供这些行业开发者定制开发。但二次开发的能力完全取决于商软提供接口的开发程度,有些行业特定的需求商软接口并不提供,这个时候就是个无解的问题,而且,二次开发仅仅是插件,主体永远都是商软,你也没有任何的资本和商软去谈产权合作。自主CAE软件可以以商软的通用功能为目标去研发,但客户真正愿意花真金白银来买你的软件的只会是按他要求的定制功能,都是以他的行业专用软件为开发目标,同时,对产权的归属他肯定有一部分要求。我们希望能和更多的行业客户合作做定制软件,我们只不过完成了一些商业软件的通用功能,你的规范和流程才是核心,产权也可以协商,最主要的目点是推广我们的平台。前段时间有人问用iSolver来录一些材料本构讲解的视频或者发杂志文章需不需要授权,我们当然欢迎,而且还会大力支持,你能下载iSolver做一些真正的应用我们就已经很欣慰了,我们只是一个平台,在平台上的成果只属于你的创新发明。
2.3 “践行”-以用户使用功能为第三阶段工作重点
第三阶段除了宣传和市场推广外,共发布版本5个,最新版本为2020-3版本。
主要新增功能点有几方面:
2.3.1 实际工程问题的验证
在过去一年,找了行业内的多家合作单位对软件进行了试用,模型不受限,都采用各个单位的实际工程模型,发现大家最多的还是用静力分析和模态分析,感谢同行细心的花大量时间测试和验算,毕竟大家虽然都说重视自主软件,但大家都有平时的本职工作,把软件下载下来试用一下,然后再反馈给开发方的是要花费额外时间的。
2.3.2 解决UMAT和UEL接口在实际子程序开发的多个使用问题
针对大家在iSolver使用UMAT和UEL接口的问题,支持多个UMAT写到一个文件的功能,支持大变形变形梯度的输入,用户根据变形梯度可直接编写大变形材料本构,支持UEL支持多行自定义单元自由度,支持单个不连续自由度,用户子程序支持单元名称大小写通用。这个主要靠技术邻网上用户的大量使用,很多用户看了我们发的基于iSolver的UMAT和UEL的学习视频,也希望用matlab更快的编写子程序,所以直接在技术邻上下载使用,感谢大家。
详见下方文章和视频:
》》》第二十三篇:编写简单面内拉伸问题UEL Step By Step
http://www.jishulink.com/content/post/1256835
》》》第二十六篇:编写线性VUMAT Step By Step。
https://www.jishulink.com/content/post/1266640
》》》iSolver中使用用户自定义材料UMAT教程视频:
http://www.jishulink.com/college/video/c13034
》》》iSolver中使用用户自定义单元UEL教程视频:
https://www.jishulink.com/college/video/c14948
2.3.3 新增谐响应分析和反应谱分析
谐响应基于直接法和模态叠加法两种算法,支持基础运动,谱分析包括Abaqus所有模态组合方法。当然,iSolver特色,所有线性模型精度还是和Abaqus相当。
(上述模型来源于技术邻郑钧老师)
详见下方文章和视频:
》》》第三十篇:谐响应分析原理。
https://www.jishulink.com/content/post/1290151
》》》结构有限元理论基础及求解器iSolver演示:20理论系列文章30-谐响应分析原理
https://www.jishulink.com/college/video/c12884
2.3.4 几何非线性精度修正和功能扩展
新增C3D20、C3D20R等体单元的几何非线性分析,并研究了TL和UL的几何非线性算法,Abaqus中几何非线性的刚度、应变等问题。支持非线性迭代的线性搜索功能,支持增量迭代法的位移和力的双重判据,支持用户控制收敛判据误差,方便对迭代次数的控制,自动增量步时支持用户设置的最大增量步,超过最大增量步后按最大增量步计算。
详见:
》》》第二十二篇:几何非线性的刚度矩阵求解。
http://www.jishulink.com/content/post/1254435
》》》第二十七篇:Abaqus内部计算和显示的应变。
https://www.jishulink.com/content/post/1273788
》》》第二十八篇:几何非线性的T.L.和U.L.描述方法
https://www.jishulink.com/content/post/1282956
》》》第二十九篇:几何非线性的T.L.和U.L.转换关系
https://www.jishulink.com/content/post/1286065
2.3.5 与商软的双向接口的完善
和商软比起来,iSolver只是一个微不足道的新兴小软件,市面上单独软件的生存空间已经被成熟商软挤压的越来越小,为了能跟上商软发展的速度,我们努力融合到商软自己的生态体系中,上一阶段我们就实现了Abaqus、Hypermesh、Femap、Patran等前处理软件的模型直接导入到iSolver计算,iSolver结果一键导入到Abaqus、FEMAP进行后处理查看,这个阶段我们大量完善了iSolver内部数据文件的兼容性,新增的按CAD的部件装配体的组织形式、多个分析步的输入和结果输出等的接口,确保常用分析所包括的各种属性和商软可以无缝连接。
2.3.6 计算效率和内存进一步优化
优化后台数据结构,同时对程序中耗时较大部分进行算法改进和速度提升,目前50万网格以内线性模型计算时间在Abaqus的3倍以内。同时,为了摆脱Matlab的限制,后台计算全部换成Fortran,同时我们保留了matlab开发UMAT、UEL接口的功能,毕竟这是现有商软做不到的地方。
2.3.7 其它功能完善
2.4 “计划”-以最紧迫的需求为第四阶段工作重点
2.4.1 求解功能方面
优先解决市场及工程验证中的各类问题及用户需求,版本快速更迭和反馈。目前有一些针对iSolver的实际项目需求,在求解功能发展方面还是比较明确的。第四阶段,我们会在完善已有功能的基础上新增瞬态动力学分析和常用的接触分析,目前这部分功能的理论研究工作已基本接近尾声,相应的编程实现正在计划中。同时,也进一步和专业领域的用户合作,共同实现用户专业的规范和标准集成,做有别与通用商软的专业软件。
2.4.2 求解精度方面
一直以来iSolver在的求解精度方面狠下了不少工夫,包括与标准算例的理论解对比、与Abaqus算例的计算结果对比以及过去一年内的实际工程问题验证,我们在求解精度问题上投入了大量的时间和心血。但也正是在进行实际工程问题验证的过程中,我们发现还是有更深入的空间。简单来说,即使对于实际问题,我们大多时候比较的也只是商软计算结果和iSolver求解结果,但有意思的是这次有多个实际工程问题我们的用户还给出了试验过程和结果,让我们能不局限在商软去考虑求解器的求解精度。接下来,我们不只是拿实际工程问题的算例计算出来后和商软对比,还要对比试验结果,考虑除了前处理因素在求解过程中理论与试验的差距。
2.4.3 效率方面
对于目前阶段的求解器,计算效率和内存仍有很大的优化空间,我们也初步构建了一些计划,比如对一些数据结构的调整和核心功能模块的重构。但下一步最重要的计划还是在提高资源的利用率上,我们把目标放在了并行。曾经微软有一道经典笔试题就是写一个简单的程序让CPU利用率达到100%,这也是一个科学计算求解器最希望做到的事情,我们希望能够在第四阶段让iSolver跑满我们的CPU,再在第五或第六阶段跑满我们的GPU。
2.5 感谢
最后,依然感谢技术邻这么多年来的支持,只有在技术邻上,我们才有机会和商软在同一个平台宣传推广,同时,也感谢广大的iSolver的使用者,每一次使用过程中的反馈可能都是我们一个小小的踏实的进步,也继续欢迎所有人有任何问题来和我们交流,前面的问题我们有可能临时有事后来如果我们忘了给你答复或者解决,也请告诉我们一声。谢谢支持。
查看更多评论 >