(转载)OpenSees的自定义单元和材料 [原创]
(2013-03-07 01:04:11)分类: 工程软件 |
原文地址:http://blog.163.com/paulzxy@126/blog/static/14366276020115252648777/
OpenSees (OS) 是一个优秀的开源的C++ FEA Framework程序,可用来进行结构非线性与抗震、结构与土的相互作用、结构敏感性及可靠度分析等等。伯克利的牛人们很早就将OS的架子搭起来,并大大方方地将其放在网上供大家下载使用,感兴趣的还可在其基础上进行二次开发。
结构有限元分析早就不是什么新鲜神秘的事物了,每年都有成千上万的FEA相关论文由此而生。很多人都声称自己提出了很elaborate的本构,开发了非常powerful的单元,并得到了与物理试验十分相符的结果,但文章背后的源程序却是很少拿出来给大家溜溜的。
有了OS,这一状况得到了些许改善。很多国外研究者纷纷把自己文章或者博士论文背后所依托的源程序贡献出来,为开源的OS添砖加瓦。如美国休斯敦大学徐增全教授所在团队提出的一些RC非线性宏观单元、加州大学圣迭戈分校Conte教授主持的基于OS的结构灵敏度、可靠度及优化研究、加州大学洛杉矶分校Wallace教授课题组所提出的考虑弯剪耦合的剪力墙单元,还有一些比较精细的混凝土应力应变关系(如Concrete06、Concrete07)等等,都已嵌入了OS并给出了源程序。
熟悉并热爱C++的土木人无疑是幸福和幸运的。然而仅仅熟知C++的基本语法和面向对象的基本概念,要去编写真正的面向对象的大型有限元框架程序尚有许多工作要做。犹记得第一次打开OS的源代码阅读时,那种感觉就像是学了十几年的哑巴外语、某一天突然来了个真老外和你倾谈并进行点拨一样,让人兴奋而又局促不安:Eureka!原来还能这样!
夜深人静之时,阅读OS的源程序不啻是一种享受:既温习了编写面向对象的C++框架程序的技巧,又领略了各种结构单元、材料、数值解法的程序实现方法。基本掌握了OS的架构之后,便可在其基础上进行自己所在研究领域的相关二次开发了(如爱丁堡大学拓展了OS,将其用于火灾下的结构分析),有信心的话还能将自己的东西放在网上供大家研究和讨论。
OS的二次开发资料很少,值得推荐的是“How to Introduce a New Material ( / Element ) into OpenSees(如何在OS中引入新材料、新单元)”两篇小文以及Frank、Scott的博士论文,最近厦门大学古泉博士也在网上推出了OS开发的简介。当然,最有效的方法就是深入研读OS源代码。
本人断断续续学习了三、四年的OS,已经能比较熟练地利用OS进行二次开发了。相继实现了可考虑弯剪非线性耦合的梁柱单元、钢管混凝土( CFT )节点单元、热传导单元等,后续将利用OS平台做一些结构抗火、抗倒塌方面的研究工作。
有时间会写个例子放在Blog上。