结构振动有限元分析计算机程序开发中问题
.范围:结构振动有限元计算机程序开发中的问题,仅限于线弹性范畴。
对象:正在从事程序编制的人士和有过这方面经验积累的人士。
目的:交流经验,解决困惑。
要求:提出的问题是自己通过努力所不及的问题,切记将毫无思索的问题随意抛出。
学习结构有限元,应该通过程序来掌握,仅仅依赖商业程序是很难达到目的。
积极提问、积极讨论、积极参与... ...
[ 本帖最后由 欧阳中华 于 2006-8-29 08:22 编辑 ] 先抛块砖
一般采用有限元法解决具体问题需要大量运算时间,不同的程序可能需要的计算时间差别也很大!
这时编程技巧就显得非常的重要,大家是否可以谈谈这方面的感受经验? .
至于程序运算时间实际上涉及的原因非常多,能够说得上来的有:
* 对于同样一个问题的求解,不同的网格剖分方式导致系统整体矩阵的带宽不一样,所占的内存空间和运算速度都受到很大影响,尤其是各人编制的程序,往往不带有网格剖分的优化过程,计算者的网络剖分技术就显得特别重要了,但一般来说仅仅影响速度。非商业开发以研究为目的的程序开发,不需要考虑增加节点优化,除非你就是坐这方面研究的;
* 程序编制的方式也是影响计算速度的,比如系统矩阵以原始的方阵存储,不仅占用非常大的内存空间,而且,极大的影响运算速度,这是由于,结构问题往往都是对应于大型悉数矩阵,大量的0元素运算占用了无为的时间和空间,一位压缩存储,不仅极大的节省了内存空间,而且成倍提高运算速度,当然,程序的编制要复杂的多。对于初学者,建议还是采用方阵形式,如果沿袭导师下师兄有这方面的基础和能够寻求到指导的,并希望研究内容和学位往高层延伸的,建议应该考虑采用后者的方式;
* 程序求解中采用的数学方法的差异,这个主要可以多参考文献和相关书籍的介绍,选择适当的,或常规的方法就可以了。
商业程序用来解决工程问题,研究程序低层目的是学习理论,高层目的是研究问题... ... .
看来现在自己开发程序的人很少了呀... ... 计算速度在很大程度上取决于计算精度,划分网格的大小,一般先进行粗分析,保证过程无误后再细划分网格 .
网格剖分显然影响结构有限元分析速度,网格剖分如果不当还将得到问题的误解,然而,这里是仅仅局限从程序编制的角度考虑,否则涉及的面太大... .
目前自己动手编程序的也来越少了,大家更感兴趣的是商业软件的使用命令的掌握,显然这种对商业软件的依赖无论从小还是从大都是值得深思的.. ..
回复 #7 欧阳中华 的帖子
这话说的在理,这应该从两个方面来考虑,或者说从两种不同出路的人来考虑,一种是做基础理论研究,他们需要的是对有限元编程的一些实质性的东西,需要考虑算法、精度等等,但另一种是做工程研究的,他们所在乎是出去后能找到一份好的工作,有现成的东西可以使用,为什么要舍近求远自己去编程序了,时间不允许,精力也不允许,反而掌握商业软件的使用命令,对于他们以后在工作中更有利。
再者,对于搞基础理论研究的人来说,自己动手编程序,需要花费多少时间啊,读个硕士,博士有多少时间能让你这样瞎折腾的。这就让更多人是寻找前人编写的程序,直接使用,也让自己动手编程序的人越来越少啊。
回复 #7 欧阳中华 的帖子
确实经常遇到这个问题,有时候得到的答案、仿真出来的结果总是令人怀疑它的真实性。回复 #8 rodge 的帖子
时间是个问题,重要的还是没有这个心思,大环境都是这样了,独自一个人做有风险啊。 1、现在已经有许多非常成熟的有限元程序,特别是线性有限元程序。2、如果想在有限元程序开发方面有所突破是比较困难的,不是一两个人能够所能实现的。
3、如有是为了学习,可以针对具体对象编一些有限元程序。不过,有限元程序涉及面比较广,比如有杆系问题,有平面单元问题,还有实体单元的问题。
回复 #11 wanyeqing2003 的帖子
现在我在想的是有些软件的可靠度,特别是一些具体的问题的时候。 程序都有他的局限性。如果能够针对具体问题来研究,或者开发软件,应该是有效的。 .
做程序的目的对不同层次的人目的是不一样的,做为学生我认为做程序是为了更好地掌握理论,工作时自然不需编制重复的程序;做研究也是需要编程序的,因为现行的商业软件都是基于成熟理论的.. ..