找回密码
 注册
Simdroid-非首页
查看: 19846|回复: 344

[H. 有限元编程] 学习有限元编程-我倒着走路(更新中---)

[复制链接]
发表于 2007-6-6 11:15:52 | 显示全部楼层 |阅读模式 来自 江苏南京
本帖最后由 雪连天 于 2015-4-22 16:25 编辑

1.开始的困惑与无奈~:loveliness:
       知道编程自己是逃不过的,可是刚进办公室时连一个数组都不会开,看到别人的程序更是崇拜和畏惧,不知别人怎么能把几千行的代码,组织起来形成有限元程序,来解决很复杂的问题?也许很多人都有这种茫然与恐惧吧!~
后来有机会开始帮着师兄打下手,也就是剖剖网格、做做后处理什么的,至于编程没有任何概念。这样差不多过了一年多,看着别人轻车熟路的做事,自己心里也很着急,但总觉得无从下手。
    开始在网上看别人的帖子,请教师兄,发现他们讲的也含糊不清,自己也着不到头绪。尽管自己也看了一些有限元书,如有限元原理,清华王勖成的也看了,除了大堆看不懂的符号,一无所获。
在一筹莫展之际,也是偶然的,看到以前老板的一个程序。里面没有一句注释,只见他们都在用却不懂它。于是有种强烈的好奇或者说是渴求吧,一定要看懂它。这时找了些老板曾发表的文章,关于此算法的内容我如饥似渴的读了起来。大概花了2个多月时间,终于知道了程序的大概思路。这时自己开始尝试沿这它的路重新编一个。由于现在用了新求解器,与原来的CROUT分解差别很大,又花了很长时间在源程序上加新求解器。此间,自己一点一点摸索,包括很多语法都是从头学来,也恨自己硕士和本科没有编过程序,更没接触有限元。常听他们说看别人的不如自己编一个。当新求解器加上以后,心里开始有点自信,要知道,这个程序看懂的人不多,求解器之前没有加成功,也许自己是歪打正着吧!
后来自己开始按自己的思路把这个程序写了出来,大概也花了2个月时间,这个06年下半年到07年3月份时间都花在程序上了。只是这个程序框架搭好后开始有了新的思路,至于最后程序的效率当然h很高~,没有了当初的畏惧,程序也没有那么可怕,现在编程序也心平气和起来!
        现在发现,程序只是把思路和想法表达出来的方式,思路才是关键!所以我又从头开始看有限元原理~
呵呵,学习有限元我就是这么倒着走的路~
2 关于程序的思考--------------------------(续一)--------------
         随着时间的推移,也许是自己走过的弯路坎坷太多,才发现以前学过的东西哪些才是最有价值的,有限元的学习也是如此。从开始天书般的看变分方程,随后接触那些似乎神秘难测的程序,心里有期待也有恐惧,但熬过来后还是有点收获的,知道了有限元程序框架结构,那些输入(出)通道、形形色色的矩阵的形成、组合以及各种难懂的方程求解器。倒回来觉得程序的构思很重要,在后来就感觉是方程的有限元格式很重要,它毕竟关系到程序架构、收敛、精度........

        就像不懂力学就不知道牛顿的牛叉,不造原子弹不知道爱因斯坦的价值,其实有限元的灵魂就是数学物理方程,那些能提出能描述事物背景物理方程的人,才是学有限元的牛人,这也许才叫创新吧!提出的质能方程的爱因斯坦和能造出原子的奥本你说谁牛呢?呵呵答案就不言而喻了...........
         我想学习有限元的最终,能追索方程的源头背景,给以改造,或者另外提出物理方程,给出其合理的定解条件,然后变分后离散为有限元形式,至于写程序,呵呵
3.关于资料的选择---------------------------------------------------------------续(二)--------------------------------------
           在有限元学习中,资料的选择总是使人困惑甚至迷茫,河海徐之纶不愧是有限元的老前辈,他的书比较易懂,适合初学者。清华王勖成的书较为详尽,但对初学者来说是有点难度的,当然有了有限元基础以后,他的书是很好的教材了。老:) :) 外的就树欧文.欣顿、辛科维奇的比较通俗权威了。当然有不少高校老师自己编写的小册子讲义之类的,如果结合其课堂讲解是最好的不过的了。很多人困惑的程序其实也有很多是通用的,比如求解雅克比矩阵,以及各种解方程的求解器也是相对独立的模块,可以移用过来,大可不必为此花太大精力(当然前提是理解其原理和过程)。本人通过这2年的有限元学习,认为有限元的核心就是数学物理方程的建立,至于有限元实现过程是否顺利、高效,还要看方程的离散形式以及程序的架构。一人只见,仅供参考!


4.关于软件------------------------------------续(三)------------------------------2010-06-04-------------

       毕业即投入紧张的工作中,  很久没能来坛子了,近生活稍规律。首先感谢大家的关注和鼓励,在此续写点自己学习工作中的感受,但愿对大家有所裨益。
        首先学习是个循序渐进的过程,期间苦闷的摸索、无望的徘徊甚至是难以避免的,但朝着目标不断努力,终会有所收获,心态很重要。
        看着现在包装精美,功能强大的诸类有限元软件,有一段时期,曾经认为(也似乎是懒惰的托辞)他们能解决所有问题:静力、动力、电磁、流体、多场耦合------几乎无所不包。那我还何苦去费劲周折自己编程序?再说我编的程序能有他们功能强大、算法先进吗?身边不少人也曾有这种感触。
        随着对有限元的接触,才知道对于有进取心、求知欲渴望探求事物本质的人来讲,依赖软件的后果是严重的,思路会不断地被固化,甚至是扼杀。当然对于能利用软件进行二次开发的人除外。还记得硕士毕业的答辩会上,有位老师讲了一个事情:大意是有位硕士毕业答辩时,利用ANSYS计算的工程算例,模型结点多少,本构方程等一概不知,只看着那些花花绿绿的云图机械地描述一番。那位老师说话时的那种失望和痛心疾首的样子至今记得。
         不依赖不等于排斥。很多软件经过大量积累及团队开发有他优势的。   如前后处理、求解器等模块,可以部分的为我所用。例外对于相对简单的工程问题有时利用软件也能更快捷的得到答案。  
         如果你想探知原理,想在某个方面谋的深一点或走的远一点,最好开始不要有依赖软件的思想。仅供参考~




5.追根溯源-------关于基本理论、技术及文献的学习----(续四)----

    “江山代有人才出,各领风骚数百年”,其实学术上也是如此。很多前辈大师值de我们敬仰,他们的鸿篇巨制有时会使我们自己顿觉渺小,但时代的发展,我们虽不必像他们那样披荆斩棘,披星戴月,科技的进展及现实的需求仍需要我们继续前进。有些方面还需要去理解消化前辈成果,沿着他们的路继续前行;有些则需在新条件下去独立思考、去质疑、去开拓……..
      无论我们如何起步,都离不开基本的理论及技术手段,这就需阅读前人的文献著作,对于初学者而言,最好能做到追根索源,理论公式去亲自推导,而不是去东抄西凑,最后囫囵吞枣。对于有限元来讲,数理方程的物理背景和定界条件的处理极为关键,数理方程和广义变分则为基础教程,这些方面最好能去读读经典教程,公式自己推推;而对于具体的工程技术方法则更需要去从源头文献看起,国人习惯都是从被人引文里做引述,原著很少去读(很惭愧也包括我),本人自己感兴趣的东西当然想尽办法去读原著。此处也谈点自己的体会,国外文章的条理及引文自不必说,一篇文章动辄十几页,哪怕我们认为很浅显的公式原理人家都不含糊的告诉你过程及出处;但国内包括有些大专家学者的文献,其实都有很多事断章取义,有时自己都很纳闷他们是故意还是无意,对于崇拜者或初学者而言,这是极不负责的,有些明明是别人的东西,竟然没有引述文献,不知道的还以该理论方法为他所首创;因此也建议大家读文献时一定要学会鉴别,方法就是多读多质疑,不去忙不崇拜,哪怕是院士的文章。有时读文献会读一肚子的火,有些文章把被人的东西移花接木,改名换姓成了自己的创新,有些则故意隐去关键文献或数据,来体现自己或某人的观点;对我们学习的人而言,我们不去评论这些行为如何,但这有时确影响我们的鉴别,使我们的知识体系残缺。
    面对前辈巨人,我们可以迷恋,但不要迷信;面对文献理论,我们应追根索源,并带着质疑。。。。。。
当然,如果仅对某方面知识或技术做些了解,则不必去太较真,多读读文献,看看题目及摘要了解大概即可。

6对读研的思考…………………………………….
就业的压力或者知识的追求是很多人继续留在学校里读书,当然也有些人属于盲从,不知自己读研到底为什么?时代迅速改变使我们的期望也会有当初的理想或目标相距甚远。很多人在学校按部就班地去上课、读文献,完成导师布置的任务顺利毕业…….但我们的读研所学是否胜任岗位、学有所用或对工作有益?这些在读研期间想不出所以然或者不愿去想的东西会生生地要面对。。。。。。
以前有人说读研实际有三种境界:读研就像跟着导师捕鱼,有些人毕业时得到和老师一起捕的些鱼;有的人则得到导师的一张渔网;而有的人则学会了如何织渔网。很形象,你愿意做哪种人呢?对我们学有限元或者数值方法的人而言,无疑要学会织网的方法,自己能去织网!
读研毕业走进工作岗位,面对新工作,有合适的渔网或者会织网的人,能很快适应或胜任;但有些人则则无法适应,尽管是博士硕士,面对实际工程问题束手无策,有些人甚至工作了几年都不会做事情;目前设计院或者科研院所都是基本靠自己创造产值,因此,读研期间做应用研究的人实际工作中更容易适应;当然那些在高校继续做科学研究或者把学历当敲门砖的则另当别论。
本人读硕士期间尽管也很努力,但所研究的方向除能贡献几篇所谓研究论文外,几乎无实际工程应用价值科研,在苦恼之余选择了继续读书,尽管当时就业形势很好。后来顶着很大的压力选择了工程应用研究方向……其实,读书期间,选择研究方向时也未必自己能左右的,但从工作的角度看读研,尽量去选择有实际工程应用价值的研究方向或者课题去做。。。。。。


7.关于版权(著作权)的思考

搞计算的人都知道,国外的各种软件功能强大,前后处理界面及效果更给人一种炫目的感觉。有的国外软件功能尽管较简单,也能有很好的商业化应用,相比之下我国大量研究机构和高校自主开发的专业计算程序却在深闺无人识,会用的人甚至也极为有限,更别说推广商业化了。造成这一局面的主要原因在张国新教授的一篇文章中有较详细的阐述:(专业软件的开发倾注了开发者大量的劳动和心血,但是我国目前的有关政策对于这类劳动和心血承认不够。评职称不算分,著作权登记不能出现个人名字,软件销售和使用中开发者个人的利益得不到保证等。其结果就是,极大地挫伤了开发者的开发积极性和软件商业化积极性。目前我国仍然在花费数以亿计的经费大量引进……)。事实上,当专业程序具备了方法先进、计算可靠、操作方便等条件时,基本也具备了商业化基础,如有著作权或产权保护,必定有利于计算技术的发展。

从大的方面,除了无有效著作权保护政策使得国内专业软件无法商业化,更坏的结果是直接挫伤了程序开发者的积极性,特别年轻人的创新精神。试想一个倾注自己大量心血完成的软件,无法得到有效保护,缺少别人最起码的尊重,何来持续创新、更新?也许有人说,应该把好程序拿出来给大家分享,贡献出来,这是种极为不妥的想法,也是我们平常的教育中缺乏相应知识产权保护的思想所致;当然如果是公司赞助开发的软件,那当然版权公司所有。也是由于这个原因,国内某些专业在计算方法和技术水平方面一直处于低水平重复状态,在急功近利中甚至出现水平倒退。有些号称新方法、新技术的论文,其实玩些移花接木、偷梁换柱的伎俩,毫无先进性可言,当然对其个人而言,是在掩人耳目种能获得相应的利益罢了。相信将来哪天能有切实可靠地版权保护政策,中国也会出很多好的软件,呵呵,通常文章的结尾句。
2013.3.18
[ 本帖最后由 雪连天 于 2010-6-5 16:21 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

3

查看全部评分

发表于 2014-9-24 21:18:28 | 显示全部楼层 来自 湖北武汉
Simdroid开发平台
楼组的思路很值得借鉴,起始不懂得编程,自己不亲自对一些简单的问题编写点程序,就不能很好的理解一些理论,尤其是非线性有限元。

点评

确实如此,不经历不懂得。  发表于 2015-4-22 16:18
回复 1 不支持 0

使用道具 举报

发表于 2007-9-5 21:40:35 | 显示全部楼层 来自 湖北荆州
楼主,你太厉害了。以后得多向你请教啊
回复 0 不支持 1

使用道具 举报

 楼主| 发表于 2007-7-2 19:35:08 | 显示全部楼层 来自 江苏南京

回复 #9 cjhero 的帖子

是改进的SSOR-PCG方法,你可以看看林绍忠、程昭的文章都有介绍

另外,程序的效率与程序的编制方法也有很大关系,比如单元或节点循环的设置、劲度矩阵的形成以及指示矩阵的形成还有存取的效率都有关系。有些循环不当及其影响解题效率
回复 1 不支持 0

使用道具 举报

发表于 2007-7-1 10:42:21 | 显示全部楼层 来自 黑龙江哈尔滨
呵呵,你说的很对呀,其实程序就是你思路或者你对问题解决得一种表达而已。最重要的是思路,是想法。
回复 1 不支持 0

使用道具 举报

发表于 2007-6-10 21:59:19 | 显示全部楼层 来自 湖北武汉
佩服!!!!!!!
回复 0 不支持 1

使用道具 举报

发表于 2007-6-6 15:02:22 | 显示全部楼层 来自 陕西西安
佩服佩服,我现在也准备编,但是太难了,你用什么语言编写的呀!?
回复 不支持

使用道具 举报

 楼主| 发表于 2007-6-7 16:03:06 | 显示全部楼层 来自 江苏南京

回复 #2 lhaifei 的帖子

用的是FORTRAN,开始也想过用VB或VC,但是作为工程计算,FOR还是有它的优势的,再说有很多源码可以参考。语法相对也必VC等简单。摸索一下就很快适应了
回复 不支持

使用道具 举报

发表于 2007-6-17 00:53:23 | 显示全部楼层 来自 湖北武汉
你太有才了!向你学习!
我还处在困惑与拼命学习当中!
回复 不支持

使用道具 举报

发表于 2007-6-18 20:30:26 | 显示全部楼层 来自 山东青岛
呵呵,顶一个,不过也的确是这样,编过一个程序之后,很多东西就忘不掉了
回复 不支持

使用道具 举报

发表于 2007-6-21 08:05:32 | 显示全部楼层 来自 新加坡
高,实在是高!
回复 不支持

使用道具 举报

发表于 2007-7-1 17:50:06 | 显示全部楼层 来自 上海

回复 #1 雪连天 的帖子

您说:“最后程序的效率当然远在老板的程序之上,他的几万节点都要分块分次求解,而我的(也许是新求解器缘故)效率极高,曾解72万节点的算例,迭代一次也就30~40秒时间。”
不知能不能介绍一下你的新求解算法?或者建议一下看哪几篇文献?
谢谢!
回复 不支持

使用道具 举报

发表于 2007-7-8 15:22:58 | 显示全部楼层 来自 安徽合肥
恩 不错
回复 不支持

使用道具 举报

发表于 2007-7-11 22:20:47 | 显示全部楼层 来自 陕西西安
关注中  哈哈
回复 不支持

使用道具 举报

发表于 2007-7-21 15:50:01 | 显示全部楼层 来自 浙江杭州
赞楼主,我也是这么过来的.不过还没有达到楼主的那种境界,我正在研究怎么学习这个问题.
回复 不支持

使用道具 举报

发表于 2007-8-26 20:26:07 | 显示全部楼层 来自 陕西西安
原理是基础,程序只是实现计算目的的手段
回复 不支持

使用道具 举报

发表于 2007-8-31 09:15:34 | 显示全部楼层 来自 浙江温州
强人啊,在有限元的迷茫中...
回复 不支持

使用道具 举报

发表于 2007-9-4 11:46:01 | 显示全部楼层 来自 湖南湘潭
不错.....
回复 不支持

使用道具 举报

发表于 2007-9-23 02:40:28 | 显示全部楼层 来自 美国
楼主一定要多多回答大家的问题啊,理论基础很重要。
回复 不支持

使用道具 举报

发表于 2007-9-26 09:30:54 | 显示全部楼层 来自 天津
受鼓舞 ,虽然不敢想能象楼主,也要鼓起勇气前进!!
回复 不支持

使用道具 举报

发表于 2008-2-21 23:16:32 | 显示全部楼层 来自 北京
求解部分我还比较清楚,但是对前后处理部分确是一片茫然,希望楼主能指点一二,我的邮箱是:xjj_2008_2008@163.com
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-25 22:47 , Processed in 0.061166 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表