ABAQUSFortran二次开发.docx

上传人:b****8 文档编号:11423118 上传时间:2023-03-01 格式:DOCX 页数:97 大小:466.68KB
下载 相关 举报
ABAQUSFortran二次开发.docx_第1页
第1页 / 共97页
ABAQUSFortran二次开发.docx_第2页
第2页 / 共97页
ABAQUSFortran二次开发.docx_第3页
第3页 / 共97页
ABAQUSFortran二次开发.docx_第4页
第4页 / 共97页
ABAQUSFortran二次开发.docx_第5页
第5页 / 共97页
点击查看更多>>
下载资源
资源描述

ABAQUSFortran二次开发.docx

《ABAQUSFortran二次开发.docx》由会员分享,可在线阅读,更多相关《ABAQUSFortran二次开发.docx(97页珍藏版)》请在冰豆网上搜索。

ABAQUSFortran二次开发.docx

ABAQUSFortran二次开发

摘要I

ABSTRACTII

1.绪论1

1.1.课题的研究背景1

1.2.本文的研究内容和方法2

2.基于ABAQUS软件的二次开发3

2.1.ABAQUS介绍3

2.2.ABAQUS各模块简介3

2.3.ABAQUS的二次开发平台5

2.4.ABAQUS的二次开发语言6

3.用户材料子程序UMAT8

3.1.UMAT开发环境设置8

3.2.UMAT注意事项9

3.3.UMAT接口的原理10

3.4.UMAT的使用方法12

4.材料非线性问题14

4.1.材料的弹塑性本构关系14

4.2.非线性有限元算法理论17

4.3.增量理论常刚度法公式推导20

4.4.增量理论切线刚度法公式推导21

5.UMAT程序设计和编码25

5.1.本构关系描述25

5.2.常刚度法程序设计27

5.3.常刚度法程序编码29

5.4.切线刚度法程序设计32

5.5.切线刚度法程序编码36

5.6.程序的调试39

6.程序验证40

6.1.问题描述41

6.2.本构关系42

6.3.ABAQUS自带材料模型计算42

6.4.常刚度法的UMAT验证44

6.5.切线刚度法的UMAT验证46

6.6.两种算法的比较分析48

7.结论与展望52

7.1.结论52

7.2.展望52

致谢54

参考文献55

附1:

ABAQUS自带弹塑性材料验证的INP文件56

附2:

用于算法验证的INP文件62

ABAQUS软件功能强大,特别是能够模拟复杂的非线性问题,它包括了多种材料本构关系及失效准则模型,并具有良好的开放性,提供了若干个用户子程序接口,允许用户以代码的形式来扩展主程序的功能。

本文主要研究了ABAQUS用户子程序UMAT的开发方法,采用FORTRAN语言编制了各向同性硬化材料模型的接口程序,研究该类材料的弹塑性本构关系极其实现方法。

本文紧紧围绕UMAT的二次开发技术,首先对其接口原理做了详细介绍,然后针对非线性有限元增量理论中的常刚度法和切线刚度法的算法理论做了深入的剖析,推导出了常刚度法和切线刚度法的算法理论的具体表达式,然后分别编制了两种算法的UMAT程序,最后建立了一个具体的验算模型,通过与ABAQUS自带弹塑性本构关系的计算结果相比较,验证两者的正确性。

本文还对常刚度法和切线刚度法得算法效率做了对比,得出了在非线性程度较高时切线刚度法效率高于常刚度法的结论。

关键字:

ABAQUS、UMAT、有限元、材料非线性、FORTRAN、切线刚度

ABSTRACT

ABAQUSsoftwarepowerful,especiallytosimulatecomplexnon-linearproblem,whichincludesawiderangeofmaterialconstitutivemodelandfailurecriteria,andhasagoodopen,providinganumberofusersubroutineinterfacethatallowsuserstocodeformtoexpandthefunctionsofthemainprogram.

ThispaperstudiestheusersubroutineUMATofABAQUSdevelopmentmethods,theuseofFORTRANlanguageisotropichardeningmaterialmodeloftheinterfaceprogram,studiedtheeffectsofsuchmaterialisextremelyelastic-plasticconstitutiverelationmethod.

ThisarticleUMATtightlyaroundthesecondarydevelopmentoftechnology,thefirstprincipleofitsinterfacedetail,andthenforthetheoryofnonlinearfiniteelementincrementalstiffnessoftheregulartangentstiffnessmethodandthetheoryofalgorithmstodoanin-depthanalysisofdeducedaregulartangentstiffnessandrigidityofthelawofthespecificexpressionofalgorithmtheory,andthenthepreparationofthetwoalgorithms,respectively,oftheUMATprogram,andfinallytheestablishmentofaspecificmodelchecking,bringingwithABAQUSelasto-plasticconstitutiverelationofthecalculatedresultscomparedtoverifythecorrectnessofthetwo.

Thisarticlealsooftenstiffnessandtangentstiffnessmethodwastodoacomparisonofalgorithmefficiencyisobtainedwhenahigherdegreeinthenon-lineartangentstiffnessmethodmoreefficientthantheconclusionsoflawoftenstiffness.

KEYWORDS:

ABAQUS、UMAT、Finiteelement、Materialnonlinearity、FORTRAN、Tangentstiffness

1.绪论

1.1.课题的研究背景

有限单元法基本思想的提出,可以追溯到克劳夫(R.W.Clough)在1943年的工作[1],他第一次尝试应用定义在三角形区域上的分片连续函数和最小位能原理相结合,来求解St.Venant扭转问题。

1960年克劳夫进一步处理了平面弹性问题,并第一次提出了“有限单元法”的名称,使人们开始认识了有限单元法的功效。

四十多年来,随着电子计算机的广泛应用和发展,有限单元法的理论和应用都得到迅速的,持续不断的发展,其应用己由弹性力学平面问题扩展到空间问题、板壳问题,由静力学问题扩展到稳定问题、动力问题和波动问题。

分析的对象从弹性材料扩展到塑性、粘弹性、粘塑性和复合材料等,从固体力学扩展到流体力学、传热学等连续介质力学领域。

在工程分析中的作用已从分析和校核扩展到优化设计并和计算机辅助设计。

利用有限元软件解决工程和科学问题,是有限元理论应用于工程设计和科学研究实践的主要形式。

由于工程设计的巨大市场需要,有限元软件的发展是很迅速的,目前常用的大型有限元软件常见的有Sap2000,ADINA,MSC/NASTRAN,MSCMarc,ANSYS,ABAQUS等,这些软件的共同特点是具有丰富的单元库和求解器,强大而可靠的分析功能,人们利用这些软件解决了很多工程建设和工业产品设计中遇到的问题,取得了巨大的经济技术效益。

由于工程问题的千差万别,不同的用户有不同的专业背景和发展方向,通用软件不免在具体的专业方面有所欠缺,针对这些不足,大部分的通用软件都提供了二次开发功能,以帮助用户减少重复性的编程工作、提高开发起点、缩短研发周期、降低开发成本,并能简化后期维护工作,给用户带来很多方便。

基于通用软件平台进行开发,是目前研究的一个重要发展方向。

ABAQUS也提供了若干用户子程序(UserSubroutines)接口,它是一个功能非

常强大且适用的分析工具,与命令行的程序格式相比,用户子程序的限制少得多,从而使用更加灵活方便。

针对ABAQUS所提供的本构关系模型种类有限,无法满足工程应用需要的问题,用户子程序中的用户材料子程序(User-definedMateriaMechanicalBehavior,简称UMAT)接口可以帮助用户定义自己的材料本构模型和算法,这是ABAQUS的独到之处。

由于其操作方便,能被灵活地应用于各个领域中,尤其受到用户的青睐。

1.2.本文的研究内容和方法

ABAQUS中用户材料子程序UMAT的开发主要解决两方面的问题:

本构模型的建立和积分算法的选择。

本文主要研究非线性材料的UMAT实现方法,并重点研究其迭代算法部分,目前,用户材料子程序UMAT的迭代算法主要是常刚度法,常刚度法的优点在于算法原理较简单,程序编写较方便,缺点是当遇到复杂非线性材料时,其迭代次数较多,收敛速度也较慢,在这个情况下,本文采取的是一种迭代次数较少且收敛速度较快的切线刚度法,具体就是采用FORTRAN语言编制了基于Von-Mises模型的接口程序,并采用切线刚度算法,通过与ABAQUS自带本构关系计算的结果相比较,验证其正确性。

本文的研究工作紧紧围绕UMAT的二次开发技术,首先根据有限元方法推导材料非线性问题算法的公式,然后参考UMAT接口规范设计程序的算法流程,继而编写出该程序,最后建立一个具体的本构和具体的模型做测试,验证程序的正确性,在这一过程中,调试是一个非常重要的过程,占用了大量的时间,在调试程序时采用了将中间变量输出到文本的方式,这样能明确跟进迭代过程,发现算法或程序的缺陷。

本文采用的本构关系是经过归纳和抽象的,也就是说本文的程序并不仅仅是只针对某个具体模型和问题,而是针对所有符合抽象出的各向同性硬化材料,这样做的好处是能保证程序的通用性和复用性,避免以后的重复劳动,当然,这也是符合ABAQUS软件设计UMAT接口的宗旨的。

2.基于ABAQUS软件的二次开发

2.1.ABAQUS介绍

ABAQUS是一套功能强大的基于有限元法的工程模拟软件[2],其解决问题的范围从相对简单的线性分析到最富有挑战性的非线性模拟问题。

ABAQUS具备十分丰富的、可模拟任意实际形状的单元库。

并与之对应拥有各种类型的材料模型库,可以模拟大多数典型工程材料的性能,其中包括金属、橡胶、高分子材料、复合材料、钢筋混凝土、可压缩弹性的泡沫材料以及岩石和土这样的地质材料。

作为通用的模拟分析工具,ABAQUS不仅能解决结构分析中的问题,还能模拟和研究各种领域中的问题,如热传导、质量扩散、电子元器件的热控制(热一电耦合分析)、声学分析、土壤力学分析(渗流——应力耦合分析)和压电介质力学分析。

ABAQUS为用户提供了广泛的功能,且使用起来又十分简明。

最复杂的问题也可以很容易地建立模型[3]。

例如复杂的多部件问题可以通过对每个部件定义材料模型和几何形状,然后再把它们组装起来而构成。

在大部分模拟分析问题中,甚至在高度非线性问题中,用户也只需要提供结构的几何形状、材料性能、边界条件和荷载工况这样的工程数据就可以进行分析。

在非线性分析中,ABAQUS能自动选择合适的荷载增量和收敛精度。

不仅能选择这些参数值,而且能在分析过程中不断地调整参数来保证有效地得到高精度的解,很少需用户去定义这些参数。

2.2.ABAQUS各模块简介

ABAQUS有两个主要的分析模块:

ABAQUS/Standard和ABAQUS/Explicit。

ABAQUS/Standard还有两个特殊用途的附加分析模块:

ABAQUS/Aqua和ABAQUS/Design。

另外,还有ABAQUS分别与ADAMS/Flex,C-MOLD和Moldflow的接口模块:

ABAQUS/ADAMS,ABAQUS/C-MOLD和ABAQUS/MOLDFLOW。

ABAQUS/CAE是完全的ABAQUS

工作环境模块,它包括了ABAQUS模型的构造,交互式提交作业、监控作业过程以及评价结果的能力。

ABAQUS/Viewer是ABAQUS/CAE的子集,它具有后处理功能,这些模块之间的关系见图2-1

图2-1

ABAQUS/Standard

ABAQUS/Standard是一个通用分析模块,在数值方法上采用有限元方法常用的隐式积分。

它能够求解广泛的线性和非线性问题,包括结构的静态、动态问题、热力学场和电磁场问题等。

对于通常同时发生作用的几何、材料和接触非线性可以采用自动控制技术处理,也可以由用户自己控制。

ABAQUS/Explicit

ABAQUS/Explicit是一个在数值方法上采用有限元显式积分的特殊模块,它利用对时间的显式积分求解动态有限元方程。

它适合于分析诸如冲击和爆炸这样短暂、瞬时的动态问题,同时对高度非线性问题如模拟加工成型过程中接触条件的改变等也非常有效。

ABAQUS/CAE

ABAQUS/CAE是ABAQUS进行有限元分析的前后处理模块,也是建模、分析和后处理的人机交互平台。

该模块根据结构的几何图形生成网格,将材料和截面的特性分配到网格上,并施加载荷和边界条件。

该模块可以进一步将生成的模型投入到分析模块中进行高效率的后台运行,并对运行情况进行监测,对计算结果进行后处理。

ABAQUS/CAE的后处理支持ABAQUS分析模块的所有功能,并且对计算结果的描述和解释提供了范围

很广的选择,除了通常的云图,等值线和动画显示之外,还可以用列表,曲线(包括部分常用运算)等其他常用工具来完成对结果数据的处理。

该模块的许多独特功能与特点,例如CAD特征化建模、参数化建模、适应设计者要求的数据管理系统等极大的方便了ABAQUS的使用者。

ABAQUS/Aqua

ABAQUS/Aqua的一系列功能可以附加在ABAQUS/Standard中应用。

它偏向于模拟海上结构,如海洋石油平台。

它的功能包括模拟波浪,风载荷及浮力的影响。

在本指南中不讨论ABAQUS/Aqua。

ABAQUS/ADAMS

ABAQUS/ADAMS允许ABAQUS有限元模型作为柔性部件进入到MDIADAMS产品族中去进行分析。

ABAQUS/C-MOLD

ABAQUS/C-MOLD把注模分析软件C-MOLD中有限元网格、材料性质和初始应力数据转换成为ABAQUS输入文件。

ABAQUS/Design

ABAQUS/Design的一系列功能可附加在ABAQUS/Standard中进行设计敏度计算。

ABAQUS/MOLDFLOW

ABAQUS/MOLDFLOW模块把MOLDFLOW分析软件中的有限元模型信息转换成ABAQUVS输入文件的一部分。

2.3.ABAQUS的二次开发平台

ABAQUS的脚本语言接口非常友好,其自嵌的脚本语言是Python[4],系国际上广泛使用、功能强大、具有良好开放性的一种面向对象程序设计语言。

所以,应用Python在ABAQUS中进行二次开发也比较方便,且可移植性强。

ABAQUS以基于Python的语法规则向二次开发者提供了许多库函数,这些库函数主要是用来增强ABAQUS的交互式(GUI)操作功能。

用户可以通过ABAQUS的交互式(GUI)界面实现分析对象的特征造型、指定材料属性、完成网格剖分和控制、提交并监控分析作业,也可以使用ABAQUS脚本

语言越过ABAQUS的交互式(GUI)界面直接高效地向ABAQUS内核提交任务。

使用Python可以进行参数化建模,修改交互式建立的模型,还可以一次提交多个作业。

出了脚本语言接口,ABAQUS还为用户提供了功能强大的用户子程序接口(AbaqusUserSubroutines),以帮助用户开发基于ABAQUS内核的程序,常用的用户子程序包括UEL(Usersubroutinetodefineanelement,用户单元子程序),UMAT(Usersubroutinetodefineamaterial'smechanicalbehavior,用户材料子程序)[5],其中UMAT的使用最为广泛,它主要用于用户开发自己的材料模型,以弥补ABAQUS自带材料模型的不足,帮助用户完成各种材料分析,功能极为强大。

在国外,众多的有限元分析和研究者热衷于使用ABAQUS,一个很重要的原因就在于ABAQUS给用户提供了功能强大,使用方便的二次开发工具和接口,使得用户可以方便的进行富含个性化的有限元建模、分析和后处理,满足特定工程问题的需要。

通过用户材料子程序接口,用户可定义任何补充的材料模型,不但任意数量的材料常数都可以作为资料被读取,而且ABAQUS对于任何数量的与解相关的状态变量在每一材料计数点都提供了存储功能,以便在这些子程序中应用。

2.4.ABAQUS的二次开发语言

ABAQUS的二次开发语言主要有3种:

Python,FORTRAN,C++

Python语言主要用于GUI开发,FORTRAN语言主要用于用户子程序开发,而c++语言主要专注于其他高级开发部分。

本文主要是针对用户子程序的开发,所以采用FORTRAN语言,下面简要介绍一下该语言极其特点:

FORTRAN语言是世界上第一个被正式推广使用的高级语言[6]。

它是1954年被提出来的,1956年开始正式使用,至今已有三十多年的历史,但仍历久不衰,它始终是数值计算领域所使用的主要语言。

FORTRAN语言是FormulaTranslation的缩写,意为“公式翻译”。

它是为科学、工程问题或企事业管理中的那些能够用数学公式表达的问题而设计的,其数值计算的功能较强。

FORTRAN语言问世以来,根据需要几经发展,先后推出了不同的版本,主要版本有FORTRAN77,FORTRAN90,FORTRAN95,ABAQUS采用FORTRAN77,通常用固定格式编写代码。

FORTRAN77语言同C语言一样,是一种结构化编程语言

结构化程序设计方法规定,在结构化的程序中,只能有三种基本结构:

(1)顺序结构

这是一种最简单的基本结构形式,它的特点是,在这个结构内的各个功能模块或语句序列,是按其出现的先后顺序执行的,如赋值语句、输入/输出语句等。

它有一个入口和一个出口,并在入口和出口之间包含着若干个功能块,其中每一个功能块可以是一个非转移语句。

因此,顺序基本结构块是由一系列的顺序执行语句组成的。

(2)分支选择结构

在给定的条件下,分支选择结构判断选择哪一条路径执行,不同路径完成的功能是不同的。

实现分支选择结构主要由块IF语句、ELSE语句、ENDIF语句以及ELSEIF语句组成的IF-THEN-ELSE结构。

(3)循环结构

循环结构也称重复处理结构,即重复执行某一功能块,直到满足(或不满足)某一条件为止。

实现循环结构的FORTRAN90语句主要是DO语句、块IF语句和逻辑IF语句的结合。

以上三种基本结构,是组成结构化程序的基本结构形式。

这里有两层意思:

一是结构化的程序中,各个模块均由这三种基本结构组成;二是结构化程序本身,从宏观上也是这三种基本结构形式之一。

3.用户材料子程序UMAT

3.1.UMAT开发环境设置

由于UMAT是采用FORTRAN语言编写,那么要运行UMAT就需要安装FORTRAN的开发环境,同时还需要ABAQUS的支持,本文采用的ABAQUS版本为6.81,支持INTELFortran9.1-10.1,IntelFortran安装时又需要安装MicrosoftVisualStudio的相应版本,经过比较,本文选用ABAQUS6.81+IntelFortran10.1+MicrosoftVisualC++2005,相对于ABAQUS来说,UMAT开发环境的设置较为繁琐,这给子程序的使用带来诸多不便,为了解决这一问题,我用C#语言编制了ABAQUS子程序编译环境设置工具,只需要将安装文件解压到ABAQUS的安装目录,运行安装程序就可以了,整个过程不需要人工干预,也不需要安装庞大的VisualC++2005,如图3-1所示

图3-1

3.2.UMAT注意事项

ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照Fortran语法,用户自己编写的代码。

它是一个独立的程序单元,可以独立的被存储和编译,也能被其它程序单元引用,因此,利用它可带回大量数据供引用程序使用,也可以用它来完成各种特殊的功能。

它的一般结构形式是:

SUBROUTINES(x1,x2,……,xn)

INCLUDE‘ABA_PARAM.INC'(用于ABAQUS/Standard用户子程序中)

ORINCLUDE‘VABA_PARAM.INC')(用于ABAQUS/Explicit用户子程序中)

RETURN

ENDx1,x2,……,xn是ABAQUS提供的用户子程序的接口参数,有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINEDLOAD中的KSTEP、KINC、COORDS,有些是需要用户自己定义的,例如F,文件aba_param.inc和vaba_param.inc随着ABAQUS软件的安装而包含在操作系统中,它们含有重要的参数,帮助ABAQUS主求解程序对用户子程序进行编译和链接。

当控制遇到RETURN语句时便返回到引用程序单元中去,END语句是用户子程序结束的标志。

在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.for为扩展名的文件中。

运行带有用户子程序的算例同时有两种方法:

一是在CAE中运行,在EDITJOB菜单中的GENERAL子菜单的USERSUBROUTINEFILE对话框中选择用户子程序所在的文件即可;另外是在ABAQUS.COMMAND中运行,语法如下:

abaqusjob=job-nameuser={source-file|object-file}编制用户子程序时应注意

(1)用户子程序相互之间不能调用,但可以调用用户自己编写的Fortran子程序和ABAQUS应用程序。

ABAQUS应用程序必须由用户子程序调用。

当用户编写Fortran子程序时,建议子程序名以K开头,以免和ABAQUS内部程序冲突。

(2)当用户在用户子程序中利用OPEN打开外部文件时,要注意以下两点:

一是设备号的选择是有限制的,只能取15~18和大于100的设备号,其余的都已被ABAQUS占用;二是用户需提供外部文件的绝对路径而不是相

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1