正文

面向对象有限元软件Sfea介绍2007-06-08 18:36:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/oopfem/26535.html

分享到:

Sfea介绍       Sfea(Structual-Finite-Element-Analysis结构有限元分析)是一款正在研发中的计算力学软件,采用有限元方法、泛型和面向对象编程等技术(c++,stl,wxWidgets,opengl),主要用于求解土工结构力学分析中涉及较广的静动力流固耦合问题。       本软件目前研发阶段正在招新中,有意向者请将简历发自oopfem@163.com         Sfea相关问题回答      (一)、何为计算力学?     (二)、何为有限元方法?     (三)、有限元方法步骤?     (四)、有限元软件浅谈?     (五)、何为耦合问题?     (六)、为何Sfea采用泛型方法与面向对象技术?     (七)、何为wxWidgets?     (八)、何为stl?     (九)、何为opengl?     (十)、何为结构工程力学问题?    (一)、何为计算力学?       随着计算机的发展,计算机技术、计算数学和力学交叉而产生了一个新的学科分支,这就是计算力学。计算力学致力于研究采用计算机技术求解工程和科学中的力学及与力学有关的耦合问题的理论、算法和软件。计算机技术提供的可能性和来自工业和其他科学部门的需求推动着计算力学的飞速发展,而计算力学已经取得的成就,使得在这世纪之交,计算已经和实验及理论分析成为力学工作者解决工程和科学中的力学问题的三大支往,在推动力学学科自身发展中也起着越来越重要的作用。钱学森最近指出,“总起来一句话:今日的力学要充分利用计算机和现代计算技术去回答一切宏观的实际科学技术问题,计算方法非常重要;另一个辅助手段是巧妙设计的实验”。对于力学工作者来说,今天的计算力学已经成为他们通向工程的桥梁,为国民经济建设和国防建设服务的不可缺少的手段,也是力学学科和高新技术的结合点。----钟万勰 (二)、何为有限元方法?        有限元方法的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式 ,借助于变分原理或加权余量法,将微分方程离散求解。采用不同的权函数和插值函数形式,便构成不同的有限元方法。 (三)、有限元方法步骤?        对于有限元方法,其基本思路和解题步骤可归纳为       (1)建立积分方程,根据变分原理或方程余量与权函数正交化原理,建立与微分方程 初边值问题等价的积分表达式,这是有限元法的出发点。       (2)区域单元剖分,根据求解区域的形状及实际问题的物理特点,将区域剖分为若干 相互连接、不重叠的单元。区域单元划分是采用有限元方法的前期准备工作,这部分工 作量比较大,除了给计算单元和节点进行编号和确定相互之间的关系之外,还要表示节 点的位置坐标,同时还需要列出自然边界和本质边界的节点序号和相应的边界值。       (3)确定单元基函数,根据单元中节点数目及对近似解精度的要求,选择满足一定插值条 件的插值函数作为单元基函数。有限元方法中的基函数是在单元中选取的,由于各单元 具有规则的几何形状,在选取基函数时可遵循一定的法则。       (4)单元分析:将各个单元中的求解函数用单元基函数的线性组合表达式进行逼近;再将 近似函数代入积分方程,并对单元区域进行积分,可获得含有待定系数(即单元中各节点 的参数值)的代数方程组,称为单元有限元方程。       (5)总体合成:在得出单元有限元方程之后,将区域中所有单元有限元方程按一定法则进 行累加,形成总体有限元方程。       (6)边界条件的处理:一般边界条件有三种形式,分为本质边界条件(狄里克雷边界条件 )、自然边界条件(黎曼边界条件)、混合边界条件(柯西边界条件)。对于自然边界条件, 一般在积分表达式中可自动得到满足。对于本质边界条件和混合边界条件,需按一定法 则对总体有限元方程进行修正满足。       (7)解有限元方程:根据边界条件修正的总体有限元方程组,是含所有待定未知量的封闭 方程组,采用适当的数值计算方法求解,可求得各节点的函数值。 (四)、有限元软件浅谈?        而今的有限元程序可以称得上是琳琅满目,全世界成型的有限元程序有上千个,通用的也有几十个,从国外引进中国获得成功的有ANSYS、NASTRAN、ALGOR、MRAC等等,价钱一般都在100万RMB以上,国内自主研发的有限元程序销量不错的有JEFIX、FEPG、SAP84等等。有限元软件市场也渐渐被几家大型的公司所占据(垄断),很多游击队式的开发自然也因为人力和财力上的困难而半途终止。 似乎限元编程人才市场已经饱和 , 有限元的应用也已得到充分的体现。其实不然,有限元方法永远只是对现实世界的近似仿真,随着计算机科学的进一步前进,很多问题的求解对计算力学软件开发人才的要求愈来愈高,老一辈的程序员已很难跟得上时代的步伐。        拿真三维动力BIOT固结方程方程举例,该方程适用于很多岩土、土木类工程,尤其在地震荷载下,该方程能够很好的反应土与水的真实耦合作用,但由于计算水平的原因,能够直接求解该方程的大型程序非常少,仅有的几家软件计算结果也各自相去甚远。1941年Biot提出此静力固结方程,1956年又提出考虑惯性力的动力形式,1965年Zi推导出此方程的弱解形式,并进一步得到其有限元格式,但由于当时的计算机软硬件水平限制,直到70年代才第一次在计算机上进行求解。国内最早提出此问题算法和求解程序的是沈珠江院士于改革开放后。对于静力问题能够实现真正意义上的瞬态耦合,但对于考虑材料非线性时的动力问题,二十多年来一直是固液分步计算,即先计算动力问题,再进行静力消散,再计算动力...交替至计算结束。近年来对于瞬态耦合问题,很多学者都在研究,也提出了很多不同的算法和计算程序。很多博士生将整个攻读博士学位的时间(一般3年或4年)都用来研究此问题的求解,学术期刊上的此类论文已不下于1000篇。但这些程序都或多或少的存在着致命的缺陷,即无法商业化,至少到目前为止,ANSYS、NASTRAN、ALGOR、MRAC等大型软件都没有计算该问题地模块。由于问题的复杂性,对于在大型商业软件上进行二次开发也造成很大的困难。虽然MARC、FEPG等软件能够实现该问题的瞬态耦合求解,但最后的程序在PC机上的运行速度相当慢,在工程中很难应用。 (五)、何为耦合问题?        耦合问题主要分为两大类,一类属于界面上的耦合;另一类属于全场耦合。对于界面上的耦合,主要是指两物体在边界上产生位移或力的相互作用,例如,大坝上游坝面与上游水之间相互作用,或者储液罐与罐内液体之间的耦合作用等等都属于此类问题。对于第二类全场的耦合,一般是由于固体介质内部存在孔隙,流体在孔隙中流动造成的,例如,建筑地基中水的运动,或者煤层气运移等都属于此类问题。界面上的耦合问题,许多大型商业有限元程序如ansys等都能得到比较相近的解答。而对于全场的耦合问题,目前只有少数几家商业软件可以求解,如geo-slope,con2d,flac等等,但一般只能对静力问题得到比较满意的解答,动力问题稍复杂一点则各家的解答都不稳定。对于此类问题,许多科研单位或个人都编制了自己的程序,但基本上每作一次分析都需要修改程序,离商业化相差甚远。Sfea主要针对于第二类问题进行求解。 (六)、为何Sfea采用泛型方法与面向对象技术?        由来技术的推演,并不只是问一句“它有用吗”或“它现在有用吗”可以论断价值的。牛顿发表万有引力公式,并不知道三百年后人们用来计算轨道、登陆月球,即使在讲述“STL运用”的课堂上,都还有人觉得太前卫,期盼却焦躁不安,遑论“STL设计思维和内部实作”这种课,遑论Loki这般前卫技术。很多人的焦虑是:我这么学这么做这么写这么用,同僚大概看不懂吧,大概跟不上吧。此固值得关注,但个人的成长千万别被群体的惯性绊住脚步。我们曾经鄙夷的别人的“无谓”前卫,可能是因我们故步自封,陷自己于一成不变的行为模式;或因为我们只看到自家井口的天空。当然,也可能某些前卫思想和技术,确实超越了庞大笨重迟缓的现实世界的接受度。你有选择。作为一位理性思考者,身在单纯可爱的技术圈内,请不要妄评先锋,因为他实在站在远比你我高得太多的山巅上。不当的言语和文字并不能为你(我)堆砌楼台使与同高。----侯捷 (七)、何为wxWidgets?        Julian Smart 1992年在Edinburgh大学的人工智能程序学院开始开发wxWindows。在1995年 Markus Holzem完成了Xt版本的移植。在1997年Windows 和 GTK+ 的移植版整合并放入了 CVS 档案库. wxWidgets原名为wxWindows,由于04年微软公司告其侵权,遂改名为wxWidgets。 wxWindows是一个解决方案。wxWindows为你隐藏了全部平台相关的代码。它是一个与平台无关的framework,它有如下特点:        It is very complete. There are many utility classes.        It is still heavily developed.        Windows, Linux, Mac, Unix.        There's a lot of documentation.        It's free for personal and commercial use.        只要可能wxWindows就使用本地SDK。这表示如果一个程序是在Windows下编译的将有典型的windows程序的外观与行为, 当它在Linux下编译时它将拥有linux程序的外观与行为。 (八)、何为stl? (九)、何为opengl? (十)、何为结构工程力学问题?        主要分类:       (1)、水利水电工程       1、大跨度高边墙地下厂房施工围岩稳定性计算; 2、有压及无压水工隧洞衬砌加固分析; 3、拱坝坝基及坝肩稳定性计算;动力载荷作用下的接触计算; 4、重力坝基础处理及抗滑稳定性分析和加固分析; 5、坝体渗流分析和防渗措施评价; 6、水电站建设引起的坝区渗流场变化,及可能的灾害评价分析; 7、高速水流冲刷地基计算; 8、库岸及边坡稳定性分析; 9、大体积混凝土建筑中温控计算; 10、坝基坝体渗流、热应力和固体变形耦合分析;11、大坝修建前、中、后期的各类力学分析;       (2)、采矿工程       1、地下开采引起地表沉降分析; 2、巷道和采场的围岩稳定性计算;优化开采分析; 3、软岩热流固耦合分析及地压控制计算; 4、矿体破碎分析; 5、露天矿高边坡滑坡分析;       (3)、铁路和公路工程       1、高地应力区的岩爆计算; 2、城市地铁施工过程分析; 3、路基沉降计算; 4、高寒地区冻土分析; 5、公路和铁路隧洞洞脸稳定性处理及加固分析;       (4)、土木建筑工程       1、高层建筑地基处理与加固分析; 2、建筑物沉降、倾斜分析和纠偏措施分析; 3、基坑开挖稳定性计算; 4、桩基工程分析;桩土接触计算;群桩计算; 5、民用地下车库、储气库稳定性分析及渗漏计算; 6、砂质松散地基的动力液化分析; 7、基础固结计算;8、土木工程修建前、中、后期的各类力学分析;           (5)、石油工程       1、油藏模拟计算; 2、井壁稳定性分析; 3、流固耦合计算与套损分析; 4、多相裂隙流动计算; 5、地下储油库稳定性分析;       (6)、海洋勘探与开发       1、海底隧道稳定性与防渗计算; 2、盆地模拟       (7)、地热能开发       1、地下热水运移及储量计算; 2、地热水回灌计算;       (8)、地球物理学研究       1、地幔对流分析; 2、地层破碎带成因及力学特性模拟; 3、岩石破裂计算; 4、岩石爆破及破损分析; 5、岩土工程中的反分析计算; 6、应力波在岩土体中的传播分析; 7、岩土体原位地应力场的回归分析; 8、岩土体的侵彻计算;

阅读(8049) | 评论(5)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册