ABAQUS-二次开发资料-UMATword资料42页.doc
《ABAQUS-二次开发资料-UMATword资料42页.doc》由会员分享,可在线阅读,更多相关《ABAQUS-二次开发资料-UMATword资料42页.doc(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流ABAQUS-二次开发资料-UMAT【精品文档】第 42 页各个楼层及内容索引2-什么是UMAT3-UMAT功能简介4-UMAT开始的变量声明5-UMAT中各个变量的详细解释6-关于沙漏和横向剪切刚度7-UMAT流程和参数表格实例展示8-FORTRAN语言中的接口程序Interface9-关于UMAT是否可以用Fortran90编写的问题10-17-Fortran77的一些有用的知识简介20-2530-32-弹塑性力学相关知识简介34-37-用户材料子程序实例JOhn-cook模型压缩包下载38-JOhn-cook模型本构简介图40-用户材料子程序实例J
2、Ohn-cook模型完整程序+david详细注解欢迎大家来看看,并提供意见,完全是自己的diy的,不保证完全正确,希望共同探讨,以便更正,带?部分,还望各位大师同仁指教1 什么是UMAT?1.1 UMAT功能简介!-摘自庄茁老师的书UMAT子程序具有强大的功能,使用UMAT子程序:(1)可以定义材料的本构关系,使用ABAQUS材料库中没有包含的材料进行计算,扩充程序功能。ABAQUS软件2003年度用户年会论文集(2)几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQUS中的任何单元;(3)必须在UMAT中提供材料本构模型的雅可比(Jacobian)矩阵,即应力增量对应
3、变增量的变化率。(4)可以和用户子程序“USDFLD”联合使用,通过“USDFLD”重新定义单元每一物质点上传递到UMAT中场变量的数值。1.2 UMAT开始的变量声明由于主程序与UMAT之间存在数据传递,甚至共用一些变量,因此必须遵守有关书写格式,UMAT中常用的变量在文件开头予以定义,通常格式为:SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,1 RPL,DDSDDT,DRPLDE,DRPLDT,2STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME3 NDI,NSHR,NTENS,N
4、STATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)CINCLUDEABA_PARAM.INC-此处是将ABAQUS本身自带的参量精度定义的文件包含进来后面详说CCHARACTER*80 CMNAMEDIMENSION STRESS(NTENS),STATEV(NSTATV),1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1
5、),DPRED(1),3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)-以上是变量声明吧!user coding to define DDSDDE,STRESS,STATEV,SSE,SPD,SCDand,if necessary,RPL,DDSDDT,DRPLDE,DRPLDT,PNEWDT-此处,看来是将用户定义材料属性的fortran程序编入RETURN-这是返回值END-结束UMAT中各个变量的详细解释凡是-注明david的,都是我自己猜的,仅供参考DDSDDE (NTENS ,NTENS)是一个NTENSNumbe
6、r of the Tensions-david维的方阵,称作雅可比矩阵,应力增量/应变增量的偏导数,DDSDDE (I ,J)表示增量步结束时第J个应变分量的改变引起的第I个应力增量的变化!雅可比是一个对称矩阵,除非在“*USER MATERIAL”语句中加UNSYMM参数STRESS (NTENS)应力张量矩阵,对应NDINumber of the Direct Components-david个直接分量和NSHRNumber of the shear Components-david个剪切分量.在增量步的开始,应力张量矩阵中的数值通过UMAT和主程序之间的接口传递到UMAT中,在增量步的结
7、束,UMAT将对应力张量矩阵更新,即return.对于包含刚体转动的有限应变问题,一个增量步条用UMAT之前就已经对应力张量进行了刚体转动,因此在UMAT中只需处理应力张量的共旋部分-这部分我没看明白,敬请高手指点.UMAT中应力张量的度量为柯西(真实)应力STATEV (NSTATEV)STATE VARIABLES (Number of the State Variables) 用于存储状态变量的矩阵,在增量步开始时将数值传递到UMAT中。也可在子程序USDFLD或UEXPAN中先更新数据,然后增量步开始时将更新后的数据传递到UMAT中。在增量步的结束必须更新状态变量矩阵中的数据。 和应力
8、张量矩阵不同的是:对于有限应变问题,除了材料本构行为引起的数据更新以外,状态变量矩阵中的任何矢量或者张量都必须通过旋转来考虑材料的刚体运动。-不懂,请高手指教 状态变量矩阵的维数NATATEV,等于关键字“*DEPVAR”定义的数值。状态变量矩阵的维数通过ABAQUS输入文件中的关键字“*DEPVAR”定义,关键字下面数据行的数值即为状态变量矩阵的维数。 材料常数的个数,等于关键字“*USER MATERIAL”中“CONSTANTS”常数设定的值。PROPS (NPROPS)材料常数矩阵,矩阵中元素的数值对应于关键字“*USER MATERIAL”下面的数据行。SSE,SPD,SCD分别定义
9、每一增量步的弹性应变能Elastic Strain Energy,塑性耗散Plastic Dissipation和蠕变耗散Creep Dissipation。它们对计算结果没有影响,仅仅作为能量输出。STRAN (NTENS):应变矩阵;DSTRAN (NTENS):D-大抵代表Deta,增量的意思-david应变增量矩阵;DTIME:增量步的时间增量;NDI:直接应力分量的个数;NSHR:剪切应力分量的个数;NTENS:总应力分量的个数,NTENS =NDI +NSHR。1.3关于沙漏刚度控制和横向剪切刚度使用UMAT时需要注意单元的沙漏控制刚度和横向剪切刚度。通常减缩积分单元的沙漏控制刚度
10、和板、壳、梁单元的横向剪切刚度是通过材料属性中的弹性性质定义的。这些刚度基于材料初始剪切模量的值,通常在材料定义中通过“*ELASTIC”选项定义。但是使用UMAT的时候,ABAQUS对程序输入文件进行预处理的时候得不到剪切模量的数值。所以这时候用户必须使用“*HOURGLASS STIFFNESS”选项来定义具有沙漏模式的单元的沙漏控制刚度,使用“*TRANSVERSE SHEAR STIFFNESS”选项来定义板、壳、梁单元的横向剪切刚度。一个问题:得不到剪切模量的数值和解决方案:用户必须使用“*HOURGLASS STIFFNESS”选项来定义具有沙漏模式的单元的沙漏控制刚度,使用“*T
11、RANSVERSE SHEAR STIFFNESS”选项来定义板、壳、梁单元的横向剪切刚度1.4关于UMAT的流程图和参数表格实例跟大家说说所谓的接口程序Interface-FORTRAN的知识在Fortan语言中,主调程序和被调程序是分别编译的.由于Fortran90对过程的许多功能做了扩充,有些功能单靠简单的调用语句已经无法反应,因而系统也就无法进行正确的编译,这时需要在主调程序中加入interface接口块,通过它为主调程序和被调程序指明一个显示的接口.如果被调用中哑元含有假定形状assumed-shape数组,或可选变元,或含键盘输入的参数,就需要interface接口块说明.一般来讲
12、,在Fortran90程序之间需要提供interface块有三种方法:1.将interface接口块直接写入调用程序,并复制被调用程序的参数列表这种方法简单易用,但也相应增加了维护代码的工作量,因为只要被调用程序的参数列表发生变化,就必须相应改变interface接口块和调用call语句.2.可以将一个软件包中所有程序的interface块写入一个模块中,该模块被软件包中的所有程序使用.这样做的优点是只需一个模块来检查interface定义,缺点是仍需对此模块和调用语句进行维护.3.Fortran90编译器可在contains语句后自动提供过程之间的interface块,这种interface
13、块可用于使用模块的任何程序.建议在同一个软件包中使用23的形式,在调用软件包的入口程序时采用12的形式!是不是在UMAT中,我们所编译的带接口的Fortran程序为调用程序,原ABAQUS主程序为被调用程序,调用程序中的第一部分我们先复制被调入程序的参数列表?似乎和ABAQUS主程序调用UMAT有些相反了?不过个人认为interface作为一个接口块,在Fortran语法中应该放在主调程序中,且复制被调程序的参数列表.而UMAT的参数变量的声明,只不过是为了和ABAQUS使用一致的变量格式,当Fortran程序处理完材料的本构定义之后再以这一致的形式将变量值返回到ABAQUS主程序中吧2 关于
14、UMAT用Fortran90可不可以的问题在论坛上搜索了关于这个问题,某位高手说是可以的,只要你自己装的Fortran编译器能成功编译你的Fortran90程序即可,个人认为也是如此,不过我还没有证明过!2.1关于Fortran77的一些有用的简介1:Fortran77的基本结构:1. 一个Fortran源程序由一个或者多个程序单位组成,每个独立的程序单位以end语句结束2. 每个程序单位包括若干行不能一行写多条语句,但是可以一个语句写成行;分为语句行执行语句行和非执行语句和非语句行注释行源程序的书写格式:1. 不区分大小写:每行只能80列以内,并把80列分为四个区2. 1-5列:标号区1-5
15、位整数;第一列为*或者C时,为注释行3. 第6列,续行标志区非空格或非0;最多19个续行4. 7-72列:语句区书写语句:一行只能写一个语句5. 73-80列:语句注释区一般做编号注释程序的编辑与运行:1. 创建源程序文件并编写源程序2. 编译并连接源文件3. 运行程序编译生成的可执行文件常量:六种1. 整型常量Integer4位:正负整数和02. 实型常量Real4位:小数和指数形式3. 双精度常量Double precision8位4. 复型常量Complex8位5. 逻辑性常量Logical4位6. 字符型常量Character1位变量 变量名1. 第一个字符是字母第一个字符后可跟1-5
16、个字母或者数字2. 不区分大小写3. 空格不起作用4. 允许变量名与语言中具有特定含义的字同名,但尽量不适用5. 尽量见名知义 变量类型 不同的变量类型用来存放不同类型的常量数据.变量相应的也有六种;变量在使用前必须首先对其进行类型说明,三种说明方法: 按优先级别排列 1. 类型说明语句:类型 变量名列表,多个变量名之间用逗号隔开,如 REAL A,B,C DOUBLE PRECISION X,Y,Z或者REAL*8 X,Y,Z CHARACTER*5 缺省字符长度5 STR1,STR2*8,STR3*19 此处,STR1未指明长度,则默认使用缺省长度5;STR2的长度为 8;STR3的长度为
17、19 2. IMPLCIT语句:IMPLICIT 类型字母表,类型字母表,. 如: IMPLICITREAL(A-D),INTERGER(I-M),DOUBLE PRECISION(X,Z) 3. I-N规则:Fortran规定,不加说明的情况下,I-N为整型,其他都为实型几点说明类型语句说明位于所有可执行语句的前面;IMPLICIT语句位于最前面;IMPLICIT NONE取消IMPLICIT说明和I-N规则,所有的变量必须显式说明;只在本程序单位有效.2.2关于Fortran77的一些有用的简介2:算术表达式:1. 运算符: +,-,*,/, *2. 优先级: ( ),* ,* / ,+-
18、3. 书写问题1. * 不能省略2. 括号不分大小写,成对出现3. 多次乘方,按先右边后左边处理4. 运算符不能连续出现,要用小括号隔开5. 运算顺序)-函数-*-*,/-+,-6. 运算中的类型问题:运算类型相同:结果仍为原类型;不同,则自动转换成同一类型7. 误差问题:1. 溢出:超出有效数字范围-解决:很大或者很小的数用实型的指数表示2. 误差:由于有效数字的位数限制,实型数运算存在误差-解决:转换成双精度型或者避免因为书写不当造成有效数字的丢失简单输出输入语句:输入输出三要素:对象哪些数据;格式;设备.输出语句输出语句的分类:格式输出表控格式输出系统标准格式;无格式输出二进制1. 表控
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ABAQUS 二次开发 资料 UMATword 42
限制150内