同 济 大 学 学 报
JOURNALOFTONGJIUNIVERSITYVol.32No.5
May2004
地下工程有限元程序面向对象的设计与实现
李晓军,朱合华
(同济大学地下建筑与工程系,上海 200092)
摘要:在综合现有的有限元面向对象设计的基础上,提出了一个完整的可用于地下工程计算分析的面向对象有限元程序框架.通过强调模型域与分析域相分离,单元、材料参数与本构模型相分离,并将有限元分析过程抽象为求解算法类、分析模型类、有限元方程组集类、约束处理类和自由度编号类,整个有限元分析过程清晰简洁,且具有很强的灵活性和很大的可扩展性.
关键词:地下工程;面向对象;有限元法
中图分类号:TP311 文献标识码:A
文章编号:0253-374X(2004)05-0580-05
Object2orientedDesignandImplementationofFiniteElement
AnalysisforGeotechnicalEngineeringLIXiao2jun,ZHUHe2hua
(DepartmentofGeotechnicalEngineering,TongjiUniversity,Shanghai200092,China)
Abstract:Basedoncomprehensiveanalysisofcurrentobject2orienteddesignoffiniteelementmethod,anintegratedobject2orientedframeworkoffiniteelementmethodwhichcouldbeusedintheanalysisofgeotechnicalengineeringispresentedinthispaper.Byemphasizingtheseparationofmodeldomainandanalysisdomain,andseparationofelement,materialandconstitutivemodel,thefiniteelementanalysisprocedureisabstractedassolutionalgorithmclass,analysismodelclass,finiteelementintegratorclass,constrainthandlerclassanddegreeoffreedomnumberclass.Itisshownfromthesampleprogramthattheobject2orientedframeworkpresentedinthispaperismoreflexibleandextensibleandtheanalysisoffiniteelementmethodismoreclearandconciseaswell.
Keywords:geotechnicalengineering;objectorient;finiteelementmethod(FEM)
面向对象的有限元软件,特别是用C++写成的有限元软件已证实与用传统的Fortran语言写成的软件在程序的执行效率上基本相当,而在程序的可维护性、可扩展性等方面有着巨大的优势[1,2].
1990年,Forde等发表了首篇利用面向对象方
元方法中最基本的构件是单元、节点、材料、边界条件和荷载等,并将这些基本构件抽象为类,这一思想至今仍为大多数学者采用.T.Zimmermann等人提出了一个可用于线性动力有限元分析的面向对象设计[4];Pidaparti等人提出了一个线性瞬态和特征值问题的面向对象有限元设计[5];Rihaczek等人提供
法对有限元进行详细设计的论文[3],作者指出有限
收稿日期:2003-04-17
基金项目:上海市重点学科建设资助项目
作者简介:李晓军(1957-),男,安徽天长人,讲师,工学博士.E2mail:xiaojli@online.sh.cn
第5期李晓军,等:地下工程有限元程序面向对象的设计与实现
581
了一个用面向对象方法解决热传导问题的实例[6];Zahlten等人提出了一个完整的材料类库[7],其中包括材料和本构模型关系的建立等;Archer提出了一个适合于线性和非线性、静力和动力分析的面向对象有限元程序设计[8];F.T.McKenna则提出了一个较复杂也较为完善的面向对象有限元计算模型[9],以及在并行计算上的扩展和应用.
在国内,曹中清等[10],孔祥安等[11]对有限元计算中的一些数学对象给出了面向对象的分析;张向等给出了一个面向对象的有限元程序设计的实例[12];蔡永昌等针对有限元静力分析给出了一个面向对象的设计[13];项阳等给出了面向对象有限元方法在岩土工程中的应用实例[14];陈健提出了一个面向对象的三维有限元程序初步设计[15];李晓军针对地下工程特点给出了面向对象的设计[16,17].从总体上看,经过十多年的发展,利用面向对象方法对有限元程序进行设计,得到越来越多的重视和认可,对系统的分析已从简单逐渐走向深入.但面向对象的有限元分析程序在岩土及地下工程中的运用还非常少,针对岩土及地下工程特点(例如考虑岩土材料复杂的本构模型及地下工程的开挖、施工顺序等)的面向对象有限元分析系统在国内和国外尚未见报道.本文针对岩土与地下工程领域的有限元分析系统给出了一个面向对象的设计与实现.
元分析部分包含用来进行有限元分析计算的类,例如形成有限元控制方程和方程组求解的类;数学分析部分包含用来处理分析过程中的数学计算的类.本文的研究工作主要针对前3部分.1.1 有限元建模部分建模类用于创建节点、单元、荷载和约束等有限元模型类,对于分析者来说,建模类应能以简单或描述性的多种方法创建有限元模型,例如由程序创建有限元模型、用数据文件生成有限元模型或用图形交互方式生成有限元模型.为了将上述多种有限元建模方法都考虑进来,本文定义了一个抽象的基类建模类ModelBuilder,该类定义一个纯虚函数build-fem-model(),由各个子类实现具体的有限元模型创建方法.1.2 有限元模型部分与传统有限元分析程序相似,面向对象有限元分析中将有限元建模类分为节点类Node、单元类Ele2ment、约束类Constraint、荷载类Load和分析域类Do2main.本文的有限元模型类的类层次关系见图1.1.2.1 节点类和单元类
节点对象代表空间中离散的点及其自由度,节点类Node的方法包括存取节点的坐标和自由度值等.本文中节点对象存储的自由度不是固定的,而是在使用时动态指定,此外,为了方便起见,自由度的值直接存放在Node类中,Node类也不再包含局部坐标系,这样的Node类已基本满足地下工程有限元静力分析的需求.单元类Element的基本功能是计算单元刚度矩阵和计算等效节点力,因此Ele2ment是一个抽象的基类;针对地下工程的特点,类中提供计算自重等效节点力和计算开挖释放应力的方法.
1 地下工程有限元面向对象的设计
面向对象有限元设计中的类可归纳为4大部分:建模、有限元模型、有限元分析和数学分析.建模部分用于创建有限元模型的类;有限元模型部分包含用于描述有限元模型和存储分析结果的类;有限
图1 有限元模型类的类层次图
Fig.1 ClasshierarchyofFEMmodel
582
同 济 大 学 学 报第32卷
1.2.2 材料类和本构模型类
本构模型类定义材料的应力-应变关系(如弹性、弹塑性、粘弹性等),供单元使用,材料类为本构模型类提供计算所需的数据,单元类、本构模型类和材料类之间的关系可以用图2描述.
能,以及提供清除节点总位移(通常用于计算自重应力场后)、更新对象状态等功能.本文中,所有分析区域内的对象有4种状态,即新增(add)、正常(nor2mal)、开挖(excavating)和已挖去(excavated)4种状态.在一个施工步分析结束后,分析区域类要将域内对象的状态进行自动更新:对新增对象计算自重应力,已有对象更新为正常对象,新开挖对象计算释放应力,已开挖的对象更新为已挖去的对象,然后接着读入下一个施工步的分析数据.1.3 有限元分析部分对于线性问题来说,有限元分析过程可分为:①分析区域离散化;②形成单元刚度矩阵;③形成系统总体方程;④引入边界条件;⑤求解系统方程组得到节点自由度;⑥根据自由度计算单元应力.非线性问题与线性问题区别在于系统方程组是非线性的,通常用增量法或迭代法对方程组进行求解.
上述分析步骤中,第一步由分析人员借助前处理完成,第二步由单元完成,第三至第六步本文用下述类表示:求解算法类SolutionAlgorithm;分析模型类AnalysisModel;有限元方程组集类Integrator;约束处理类ConstraintHandler;自由度编号类DofNumberer.其类层次图见图3.
图2 单元、材料与本构模型类关系
Fig.2 Relationshipbetweenelement,materialand
constitutivemodelclass
1.2.3 约束类和荷载类
约束类可分为2类:①单点约束类,即指定自
由度的值;②多点约束类,即指定2个节点的自由度之间存在一定的依赖关系,经常用于不同类型单元之间的连接.
荷载分为节点荷载和单元荷载2种.节点荷载是指施加在节点上的集中力,单元荷载是指面力、体力或初始应力等.此外,为方便程序对荷载的组织管理,本文中还定义了荷载工况类.1.2.4 分析区域类分析区域类存放所有的有限元模型对象.针对地下工程特点,该类提供开挖单元、节点和荷载的功
图3 有限元分析算法的类层次图
Fig.3 ClasshierarchyofFEManalysis
1.3.1 求解算法类DofGroup和有限元单元类FEElement的对象,每
有限元求解算法类SolutionAlgorithm控制整个计算过程,以及分析类Analysis中各个对象操作的先后顺序.1.3.2 分析模型类
分析模型类AnalysisModel存放自由度组类
个自由度组类与一个节点类相对应;每个有限元单元类与分析区域类中的一个单元类相关联.由于在自由度组类和有限元单元类中已经对约束和荷载进行了处理,因此分析模型类中不用再考虑约束和荷载.
第5期李晓军,等:地下工程有限元程序面向对象的设计与实现
583
1.3.3 有限元方程组集类
有限元方程组集类Integrator负责将FEEle2ment类及DofGroup类对系统的贡献组集到系统方程中,此外,它还将求解所得的结果更新到DofGroup类中.
地下工程有限元方程组集类GeotechnicalInte2grator是Integrator的一个子类,该类考虑了地下工程的计算特点.例如在形成总体刚度矩阵方法form-tangent()中,对单元的状态进行判断,如果单元已被挖去,则该单元的刚度矩阵不被组集到系统总体方程组中去;在形成单元不平衡力方法form-el2ement-residual()中,如果是新增单元,要计算自重应力,如果是正在开挖的单元,则要计算开挖释放应
005 DofNumberer-dof-numberer;006 ConstraintHandler-constraint-handler;007 ProfileLinearSOEDirectSolver-linear-soe-solver;008 ProfileLinearSOE-linear-soe(-linear-soe-solver);009 GeotechnicIntegrator-integrator;010 Linear-solution-algorithm;
011 StaticAnalysis-geo-static-analysis(-domain,-analysis-model,-dof-num2berer,
012 -constraint-handler,-solution-algo2
rithm,-linear-soe,-integrator);013
014 /3performtheanalysis3/015 while(-continue){
016 -continue=-model-builder.read-timestep();
017 -geo-static-analysis.analyze(-sub2step,-inital);018 }
如要使用RCM(ReverseRuthill2McKee)法进行
力.
1.3.4 约束处理类
约束处理类ConstraintHandler创建所有的FEElement对象和DofGroup对象,进行约束处理并将之添加到分析模型类AnalysisModel中.1.3.5 自由度编号类自由度编号类DofNumberer完成对每个DofGroup对象的自由度进行编号,建立它们与系统方程未知量之间的映射关系,并根据该映射关系建立FEElement的单元自由度与系统方程未知量之间的映射关系.1.3.6 系统方程组类和求解器类
系统方程组类SystemOfEqn存储有限元总体方程组,由求解器类Solver对其进行求解.线性方程组类LinearSOE和线性方程组求解器类LinearSOESolver分别是它们的子类,用于描述线性的系
自由度编号优化,则只需将上述第005行改为:
005 RCMDofNumberer-dof-numberer;如果系统方程组要使用稀疏矩阵的存储方法,并用共轭梯度法求解,则只要将007,008改为:
007 ConjugateGradientSparseLinearSOESolver
-linear-soe-solver;
008 SparseLinearSOE-linear-soe(-linear-soe-solver);
统方程组.实际使用过程中,派生出一维变带宽方程
组ProfileLinearSOE和一维变带宽方程组求解器类ProfileLinearSOESolver来完成具体的操作.
2 程序示例
以下给出一段程序的代码,用于地下工程静力分析,其中系统方程组采用一维变带宽存储方式,方程组求解采用高斯消去法(LDLT)直接解法.
001 /3createtheanalysis3/002 Domain-domain;
003 TextFileModelBuilder-model-builder
(-domain);004 AnalysisModel-analysis-model;
如果问题是非线性的,则只要将010行改为如
下的代码即可实现非线性的Newton2Raphson求解算法:
010 NewtonRaphson-solution-algorithm;此外,只要从SolutionAlgorithm类派生新的类,即可扩展新的求解算法,然后将上述代码替换即可.
由此可见,采用本文中设计的类,不仅编写的有限元程序简洁、清晰,而且在程序的灵活性和可扩展性上有着相当的优势.
3 结语
有限元面向对象设计方法的研究工作已开展十
584
同 济 大 学 学 报第32卷
多年左右的时间,国外的研究已从初步设计走向深入设计,从设计方法的研究逐步走向实用,但是研究的主要对象还是针对结构计算,不是针对地下工程;国内的有限元面向对象设计研究基本上还处于初步阶段.本文根据地下工程的计算特点,在综合现有的有限元面向对象设计的基础上,完善并发展了有限元面向对象的设计方法,提出了一个完整的可用于地下工程计算分析的面向对象有限元程序框架,该框架充分考虑了地下工程的施工因素,例如开挖和释放力的计算;充分考虑了地下工程中复杂的材料,将材料、本构模型、材料参数分别用不同的类来管理,以及充分考虑了地下工程中的线性、非线性等不同计算模型.
实例程序表明,通过强调模型域与分析域相分离,单元、材料参数与本构模型相分离,将有限元分析过程抽象为求解算法类、分析模型类、有限元方程组集类、约束处理类和自由度编号类,整个有限元程序不仅显得清晰简洁,而且具有很强的灵活性和很大的可扩展性.参考文献:
[1] Dubois2PelerinY,ZimmermannT.Object2orientedfiniteelement
programming:Ⅲ.AnefficientimplementationinC++[J].ComputerMethodsinAppliedMechanicsandEngineering,1993,108(1~2):165-183.
[2] RukiMD,MillerGR.Analgorithmicframeworkforflexiblefi2
niteelement2basedstructuralmodeling[J].ComputerMethodsinAppliedMechanicsandEngineering,1996,136(3~4):363-384.
[3] FordeBWR,FoschiRO,StiemerSF.Object2orientedfiniteel2
ementanalysis[J].Computers&Structures,1990,34(3):355-374.
[4] ZimmermannT,Dubois2PelerinY,BommeP.Object2orientedfi2
niteelementprogramming:Ⅰ.Governingprinciples[J].Comput2erMethodsinAppliedMechanicsandEngineering,1992,98(3):291-303.
[5] PidapartiRMV,HudliAV.Dynamicanalysisofstructuresus2
ingobject2orientedtechniques[J].Computers&Structures,1993,49(1):149-156.
[6] RihaczekC,KroplinB.Object2orienteddesignoffiniteelement
softwarefortransientnon2linearcouplingproblems[A].SecondCongressonComputinginCivilEngineering[C].Atlanta:AS2CE,1994.545-552.
[7] ZahltenW,DemmertP,KratzigWB.Anobject2orientedap2
proachtophysicallynonlinearproblemsincomputationalmechan2ics[A].ComputinginCivilandBuildingEngineering[C].Berlin:BalkemaAA,1995.147-154.
[8] ArcherG.Object2orientednonlineardynamicfiniteelementanal2
ysis[D].Berkeley:UniversityofCaliforniaatBerkeley,1996.
[9] McKennaFT.Object2orientedfiniteelementprogramming:Frame2
worksforanalysis,algorithmsandparallelcomputing[D].Berkeley:UniversityofCaliforniaatBerkeley,1997.
[10] 曹中清,周本宽.面向对象有限元程序几种新的数据类型[J].
西南交通大学学报,1996,31(2):119-125.
[11] 孔祥安,翟 已.面向对象有限元程序的数据设计[J].西南交
通大学学报,1996,31(4):355-360.
[12] 张 向,许晶月.面向对象的有限元程序设计[J].计算力学学
报,1999,16(2):216-226.
[13] 蔡永昌,骆少明.面向对象的有限元静力分析程序设计[J].汕
头大学学报,1999,14(2):34-39.
[14] 项 阳,平 扬,葛修润.面向对象有限元方法在岩土工程中
的应用[J].岩土力学,2000,21(4):346-349.
[15] 陈 健.三维地层信息系统的建模与分析研究[D].武汉:中
国科学院武汉岩土力学研究所,2001.
[16] 李晓军.地下工程三维并行有限元分析系统面向对象的设计
与实现[D].上海:同济大学地下建筑与工程系,2001.
[17] 李晓军,朱合华.有限元可视化软件设计及其快速开发[J].同
济大学学报(自然科学版),2001,29(4):500-504.
・下期文章摘要预报・
污染数据半参数回归模型中的强相合估计
刘丽萍
同删失数据一样,在实际工作中经常遇到一些关于污染数据的统计分析问题.对于删
失数据已得到了一系列较为深刻的结果,但对污染数据问题的研究却不多.污染数据回归模型是生物统计中常用的模型.考虑一类污染数据半参数回归模型,建立了模型的参数、回归函数和污染系数的估计,并在适当条件下证明了它们具有强相合性.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- vipyiyao.com 版权所有 湘ICP备2023022495号-8
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务