有限元软件开发的基本要求,你还差几条?

来源:互联网 发布:被覆盖的监控数据恢复 编辑:程序博客网 时间:2024/05/18 00:18

原帖:http://streda.blog.sohu.com/167339051.html


有限元分析软件在几何所有的行业领域里都会碰到。

虽然有许多开源软件可用,但作为出生于高校的开源软件,都是为了研究目的开发的。算算小的问题可以,一旦碰到大规模的问题,就不够用了。

有限元软件的开发综合了计算机、计算数学、应用力学、有限元等各方面的因素,没有个10年8年的积累,还真是干不了这个活儿。

常碰到一些刚毕业的硕士、博士,一开始就雄心勃勃地要搞什么通用有限元软件开发,那是连门儿还没有找到呢。

算起来,从事这个行业也快10个年头了,总结了一下这方面的经验,权当饭后谈资,和大家共同探讨一下吧。

 

1.内存管理(计算机方向)

对于大型有限元软件,对效率要求很高的。在CPU的频率及逻辑内核不断增加,多线程应用很广泛的情况下,内存的使用效率就显著影响了计算过程的效率了。目前竟然还有的程序在内外存缓冲时有64K的容量限值(老的FORTRAN程序中开数组的长度限制),可见咱们的FEA软件的研发水平处于什么程度了。

 

2.网格剖分(图形学/数值计算)

这方面的东西研究的人比较少,各软件公式都急功近利,谁还肯在这种东西上花时间呀。

2D的剖分算法(三角形/四边形)在FEA软件中是重中之重,研究的也最多。千万不要迷信那个什么NETGEN、TETGEN等开源的算法,不灵呀。

 

3.基本单元(有限元方向)

对于杆件单元,普遍认为现有的成果已经很不错了。

膜、板单元似乎各有各的主意,大家都说自己的单元好精度高。尤其是那些加了旋转自由度的膜单元的主儿们,都说自己的主意好,还申请什么专利!搞笑,用梁单元你给timoshenko付了多少钱?

3.静力求解器(应用力学+计算数学+图形学方向)

基本上都是基于LDLT分解算法的,有内存模式、内/外存交换模式、稀疏矩阵存贮系列。目前,稀疏矩阵求解器使用的状况还是不错的。可这方面的资料很少,中国人聪明,赔本赚吆喝的事情国家不作,没有纵向科研经费支持;公司也不作。太聪明了,外国从6、70年代都有专著出版,咱们仅有少的可怜的基本小册子作了蜻蜓点水的介绍而已。

 

4.动力求解器(应用力学+计算数学方向)

还静力求解器比较起来,动力求解器的使用情况还好点。Ritz向量及其改进版、Subspace、Lanczos方法也都用的不错。本身比较简单,上手也快。改一下初始迭代向量就能对某一类特定问题解决漏、伪频的问题,多多少少也还是有点成就感的。

 

5.动力时程分析

基本上用述的基本技术就可以完成了,只需要研究一下3种基本算法的过程就可以了:直接积分系列、振型位移叠加法、振型加速度叠加法。

 

以上说的5个方面的基础,至少掌握了前4个,再开始尝试作有限元软件开发吧,不要把时间都浪费在作一个半拉子产品上。