UMAT全过程技术篇
- 格式:docx
- 大小:135.69 KB
- 文档页数:18
弹塑性模型的UMAT 子程序UMAT 主要功能:已 知第n 步的应力、应变,然后给出一个应变增量, 计算新的应力,并要计算雅克比矩阵—DDSDDE 。
UMAT 中经常使用的变量说明:DDSDDE (NTENS , NTEN):雅可比矩阵,表示应力增量/应变增量的偏导数STRESS (NTENS):应力张量矩阵STATEV:存储状态变量矩阵,需要不断更新 PROPS:材料常数矩阵,如弹性模量、泊松比 STRAN:应变矩阵 DSTRAN:应变增量矩阵 DTIME:增量步的时间增量NDI:直接应力分量个数,即正应力个数 NSHR:切应力个数 NTENS:总应力个数举例:弹塑性模型本构关系)1()1ln(1)(*0m n T C B A -⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+++=••εεεσ (1) 其中参数A 、B 、n 、C 、m 已知,STATEV 状态变量矩阵中包括六个弹性应变分量、六个塑性应变分量和一个等效塑性应变量。
UMAT子程序说明SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,1 RPL,DDSDDT,DRPLDE,DRPLDT,2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)CINCLUDE 'ABA_PARAM.INC'CCHARACTER*80 CMNAMEDIMENSION STRESS(NTENS),STATEV(NSTATV),1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)(开头为固定格式,主要定义了刚度、应力、应变矩阵等变量)DIMENSION EELAS(6),EPLAS(6),FLOW(6),PARAMETER(ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,SIX=6.0D0,HALF=0. 5D0)DATA NEWTON,TOLER/40,1.D-6/(用户自定义弹性应变、塑性应变、应变流、常量参数)定义各种参数C PROPS(1)-YANG'S MODULUS (杨氏模量) C PROPS(2)-POISSON RATIO (泊松比)C PROPS(3)-INELASTIC HEAT FRACTION (塑性耗散比) C PROPS(4)-AC PROPS(5)-B C PROPS(6)-nC PROPS(7)-CC PROPS(8)-m (以及公式1中的五个参数)定义拉梅常数EMOD=PROPS (1) ENU=PROPS (2)IF (ENU.GT.0.4999.AND.ENU.LT.0.5001) ENU=0.499) EBULK3=EMOD/ (ONE -TWO*ENU)) 即 μ21-EEG2=EMOD/ (ONE+ENU) 即μ+1EEG=EG2/TWO 拉梅常数)1(2μ+=EGEG3=THREE*EG 即)1(23μ+EELAM= (EBULK3-EG2)/THREE )1)(21(12131μμμμμλ+-=⎪⎪⎭⎫ ⎝⎛+--=E E E定义弹性刚度矩阵DO 20 K1=1, NTENS DO 10 K2=1, NTENSDDSDDE (K2, K1) = 0.0 10 CONTINUE20 CONTINUE (先将弹性矩阵清零)DO 40 K1=1, NDI DO 30 K2=1, NDIDDSDDE (K2, K1) =ELAM 即λ 30 CONTINUEDDSDDE (K1, K1) =EG2+ELAM 即G +λ 40 CONTINUEDO 50 K1=NDI+1, NTENSDDSDDE (K1, K1) =EG 即G 50 CONTINUE得出初始DDSDDE=⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡+++G GGGGG0000000000000200020002λλλλλλλλλDO 70 K1=1, NTENS DO 60 K2=1, NTENSSTRESS(K2)=STRESS(K2)+DDSDDE(K2,K1)*DSTRAN(K1) ({应力}=[弹性模量矩阵]{应变})60 CONTINU 70 CONTINUEDO 80 K1=1, NTENSEELAS (K1) = STATEV (K1) + DSTRAN (K1) EPLAS (K1) = STATEV (K1+NTENS) 80 CONTINUEEQPLAS=STATEV (1+2*NTENS) (给弹性和塑性应变矩阵赋值)IF (NPROPS.GT.5.AND.PROPS(4).GT.0.0)THENSMISES=(STRESS(1)-STRESS(2))*(STRESS(1)-STRESS(2))+ 1(STRESS(2)-STRESS(3))*(STRESS(2)-STRESS(3))+ 1(STRESS(3)-STRESS(1))*(STRESS(3)-STRESS(1)) DO 90 K1=NDI+1, NTENSSMISES=SMISES+SIX*STRESS (K1)*STRESS (K1) 90 CONTINUESMISES= SQRT (SMISES/TWO) (计算MISES 屈服应力)()[])(6)()(21231223212211332332222211σσσσσσσσδσ+++-+-+-=-CALL USERHARD (SYIEL0, HARD, EQPLAS , PROPS(4)) IF(SMISES.GT.(1.0+TOLER)*SYIEL0)THENSHYDRO=(STRESS(1)+STRESS(2)+STRESS(3))/THREE ONESY=ONE/SMISES DO 110 K1=1,NDIFLOW(K1)=ONESY*(STRESS(K1)-SHYDRO即3,2,1);3(1)(321=++-=-i i FLOW i σσσσσ110 CONTINUEDO 120 K1=NDI+1,NTENSFLOW(K1)=STRESS(K1)*ONESY 即6,5,4;3)(321=++=j j FLOW jjσσσσ120 CONTINUECA=PROPS(4) B=PROPS(5)EN=PROPS (6)C=PROPS (7) EM=PROPS(8) SYIELD=SYIEL0DEQPL=(SMISES -SYIELD)/EG3 DSTRES=TOLER*SYIEL0/EG3DEQMIN=HALF*DTIME*EXP(1.0D -4/C) DO 130 KEWTON=1,NEWTON DEQPL=MAX(DEQPL,DEQMIN)CALL USERHARD(SYIELD,HARD,EQPLAS+DEQPL,PROPS(4) TVP=C*LOG(DEQPL/DTIME) TVP1=TVP+ONEHARD1=HARD*TVP1+SYIELD*C/DEQPL SYIELD=SYIELD*TVP1RHS=SMISES -EG3*DEQPL -SYIELD DEQPL=DEQPL+RHS/(EG3+HARD1)IF(ABS(RHS/EG3).LE.DSTRES)GOTO 140 130 CONTINUE WRITE(6,2)NEWTON2 FORMAT(//,30X,'***W ARNING -PLASTICITY ALGORITHM DID N 1'CONVERGE AFTER',I3,'ITERATIONS') 140 CONTINUEEFFHRD=EG3*HARD1/(EG3+HARD1)增量迭代法,这一部分不清楚重新计算正应力、切应力,并更新塑性应变和弹性应变数据 DO 150 K1=1,NDISTRESS(K1)=FLOW(K1)*SYIELD+SHYDROEPLAS(K1)=EPLAS(K1)+THREE*FLOW(K1)*DEQPL/TWO EELAS(K1)=EELAS(K1)-THREE*FLOW(K1)*DEQPL/TWO 150 CONTINUEDO 160 K1=NDI+1,NTENSSTRESS(K1)=FLOW(K1)*SYIELDEPLAS(K1)=EPLAS(K1)+THREE*FLOW(K1)*DEQPL EELAS(K1)=EELAS(K1)-THREE*FLOW(K1)*DEQPL160 CONTINUEEQPLAS=EQPLAS+DEQPLSPD=DEQPL*(SYIEL0+SYIELD)/TWO RPL=PROPS(3)*SPD/DTIME计算雅克比矩阵DDSDDEEFFG=EG*SYIELD/SMISES-+σσμs )1(2EEFFG2=TWO*EFFG EFFG3=THREE*EFFG2/TW-+σμσ)1(23SEEFFLAM=(EBULK3-EFFG2)/THREE ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+---σμσμ)1(2131S E EDO 220 K1=1,NDIDO 210 K2=1,NDIDDSDDE(K2,K1)=EFFLAM 210 CONTINUEDDSDDE(K1,K1)=EFFG2+EFFLAM 220 CONTINUEDO 230 K1=NDI+1,NTENS DDSDDE(K1,K1)=EFFG 230 CONTINUEDO 250 K1=1,NTENS DO 240 K2=1,NTENSDDSDDE(K2,K1)=DDSDDE(K2,K1)+FLOW(K2)*FLOW(K1) 1*(EFFHRD -EFFG3) 240 CONTINUE 250 CONTINUE ENDIF ENDIF存储更新状态变量矩阵中的弹性应变、塑性应变、等效塑性应变的变量 DO 310 K1=1,NTENS STATEV(K1)=EELAS(K1)STATEV(K1+NTENS)=EPLAS(K1) 310 CONTINUESTATEV(1+2*NTENS)=EQPLAS计算屈服应力强度和硬化率SUBROUTINE USERHARD(SYIELD,HARD,EQPLAS,TABLE) INCLUDE'ABA_PARAM.IN DIMENSION TABLE(3) A=TABLE(1) B=TABLE(2) EN=TABLE(3)HARD=0.0 硬化率初始值设为0 IF(EQPLAS.EQ.0.0)THENSYIELD=A 如果等效塑性应变等于0,则屈服强度为材料常数 ELSEHARD=EN*B*EQPLAS**(EN -1) 否则1-⋅⋅n B n ε SYIELD=A+B*EQPLAS**EN n s B A εσ+= END IF RETURN END首先确定材料常数矩阵PROPS ,包括拉梅常数、模量、泊松比等。
umat子程序编写教程UMAT子程序编写教程简介•什么是UMAT子程序•UMAT子程序在有限元分析中的作用准备工作1.安装有限元分析软件2.了解有限元分析基本原理3.熟悉编程语言(Fortran, C, C++)UMAT子程序的结构•输入参数•输出参数•局部变量UMAT子程序的编写步骤1.了解材料的力学特性2.确定子程序类型(弹性/塑性/粘弹性等)3.根据子程序类型选择合适的模型4.实现模型的数学表达式5.编写子程序的计算逻辑6.调试和验证子程序的正确性UMAT子程序的编写技巧•使用合适的数学函数库•以简洁高效的方式计算材料力学响应•优化子程序的性能UMAT子程序的调试与验证•使用有限元分析软件进行单元测试•比较子程序结果与已有模型的结果•调整子程序参数以优化模型效果UMAT子程序的应用领域•刚性材料的模拟•弯曲和扭转问题的分析•温度和压力效应的建模•…UMAT子程序的使用注意事项•确定使用的有限元分析软件支持UMAT子程序•遵守有关材料性质和试验数据的规范•了解相关软件的编程规范和限制总结•UMAT子程序是有限元分析的重要组成部分•编写高质量的UMAT子程序需要深入理解材料力学和编程技巧•调试和验证是确保子程序正确性和可靠性的关键步骤以上是一份简要的UMAT子程序编写教程,希望能为您提供一些有价值的信息和指导。
详细的UMAT子程序编写教程还需要结合具体的有限元分析软件和编程语言进行深入的学习和实践。
祝您编写成功的UMAT子程序!UMAT子程序编写教程(续)UMAT子程序的结构UMAT子程序是一个由用户自定义的有限元分析子程序,用于模拟材料的力学响应。
它具有以下基本结构:输入参数UMAT子程序需要接收一些输入参数,以便计算材料的力学响应。
常见的输入参数包括应变、时间步长、温度等。
在编写UMAT子程序时,需要明确输入参数的意义和单位。
输出参数UMAT子程序需要输出一些计算结果,以便有限元分析软件进行后续处理。
目录摘要.................................................................... ABSTRACT.................................................................1.绪论..................................................................1.1.课题的研究背景 ..................................................1.2.本文的研究内容和方法 ............................................2.基于ABAQUS软件的二次开发.............................................2.1.ABAQUS介绍......................................................2.2.ABAQUS各模块简介................................................2.3.ABAQUS的二次开发平台............................................2.4.ABAQUS的二次开发语言............................................3.用户材料子程序UMAT...................................................3.1.UMAT开发环境设置................................................3.2.UMAT注意事项....................................................3.3.UMAT接口的原理..................................................3.4.UMAT的使用方法..................................................4.材料非线性问题........................................................4.1.材料的弹塑性本构关系 ............................................4.2.非线性有限元算法理论 ............................................4.3.增量理论常刚度法公式推导 ........................................4.4.增量理论切线刚度法公式推导 ......................................5.UMAT程序设计和编码...................................................5.1.本构关系描述 ....................................................5.2.常刚度法程序设计 ................................................5.3.常刚度法程序编码 ................................................5.4.切线刚度法程序设计 ..............................................5.5.切线刚度法程序编码 ..............................................5.6.程序的调试 ......................................................6.程序验证..............................................................6.1.问题描述 ........................................................6.2.本构关系 ........................................................6.3.ABAQUS自带材料模型计算..........................................6.4.常刚度法的UMAT验证 .............................................6.5.切线刚度法的UMAT验证 ...........................................6.6.两种算法的比较分析 ..............................................7.结论与展望............................................................7.1.结论 ............................................................7.2.展望 ............................................................ 致谢.................................................................... 参考文献................................................................. 附1:ABAQUS自带弹塑性材料验证的INP文件................................. 附2:用于算法验证的INP文件..............................................摘要ABAQUS软件功能强大,特别是能够模拟复杂的非线性问题,它包括了多种材料本构关系及失效准则模型,并具有良好的开放性,提供了若干个用户子程序接口,允许用户以代码的形式来扩展主程序的功能。
UMAT全过程-"技术篇"之一:相关知识标签: UMAT技术篇知识2010-03-04 20:24UMAT全过程-"技术篇"[写在前面:这篇文章是UMAT全过程-感想篇的姊妹篇,答应要给大家写的一篇帖子,同时也是为了记录自己的学习过程,与大家分享!首先指出,俺的"技术篇"--是加了引号的,因为确实称不上有多么大的技术含量,还望大家莫笑偶!只不过一是跟那个感想篇形成一个对照,同时主要内容为自己编子程序过程中涉及的技术边边上的小问题的一些解决方法,供仿友们参考!偶不是谦虚,也不是一个低调的人,大家谢谢和支持的话,我先行谢过啦!更希望大家能提出质疑或者别的更好的办法,大家相互交流,共同进步!]----------------------------------------------------------------------------*转*入*正*题*第一部分:相关知识[特别声明,这部分来自于华中科技大学杨曼娟同学的硕士学位论文,在此对作者表示感谢!--大家可以去知网下载]----------------------------------------------------------------------------1.ABAQUS中材料非线性问题的处理ABAQUS中材料非线性问题用Newton-Raphson法来求解。
首先将载荷分为若干个微小增量,结构受到一个微小增量△P。
ABAQUS用与初始结构位移相对应的初始刚度矩阵K0和荷载增量△P计算出结构的在这一步增量后的位移修正Ca、修正后的位移值Ua和相应的新的刚度矩阵Ka。
ABAQUS用新的刚度矩阵计算结构的内力Ia,荷载P和Ia的差值为迭代的残余力Ra,即Ra=P-Ia。
如果Ra在模型内的每个自由度上的值都为零,如图2-2中的a点,则结构处于平衡状态。
但在非线性问题中,通常Ra是不可能为零,ABAQUS为此设置了一个残余力容差。
前言有限元法是工程中广泛使用的一种数值计算方法。
它是力学、计算方法和计算机技术相结合的产物。
在工程应用中,有限元法比其它数值分析方法更流行的一个重要原因在于:相对与其它数值分析方法,有限元法对边界的模拟更灵活,近似程度更高。
所以,伴随着有限元理论以及计算机技术的发展,大有限元软件的应用证变得越来越普及。
ABAQUS软件一直以非线性有限元分析软件而闻名,这也是它和ANSYS,Nastran等软件的区别所在。
非线性有限元分析的用处越来越大,因为在所用材料非常复杂很多情况下,用线性分析来近似已不再有效。
比方说,一个复合材料就不能用传统的线性分析软件包进行分析。
任何与时间有关联,有较大位移量的情况都不能用线性分析法来处理。
多年前,虽然非线性分析能更适合、更准确的处理问题,但是由于当时计算设备的能力不够强大、非线性分析软件包线性分析功能不够健全,所以通常采用线性处理的方法。
这种情况已经得到了极大的改善,计算设备的能力变得更加强大、类似ABAQUS这样的产品功能日臻完善,应用日益广泛。
非线性有限元分析在各个制造行业得到了广泛应用,有不少大型用户。
航空航天业一直是非线性有限元分析的大客户,一个重要原因是大量使用复合材料。
新一代波音 787客机将全部采用复合材料。
只有像 ABAQUS这样的软件,才能分析包括多个子系统的产品耐久性能。
在汽车业,用线性有限元分析来做四轮耐久性分析不可能得到足够准确的结果.分析汽车的整体和各个子系统的性能要求(如悬挂系统等)需要进行非线性分析。
在土木工程业, ABAQUS能处理包括混凝土静动力开裂分析以及沥青混凝土方面的静动力分析,还能处理高度复杂非线性材料的损伤和断裂问题,这对于大型桥梁结构,高层建筑的结构分析非常有效。
瞬态、大变形、高级材料的碰撞问题必须用非线性有限元分析来计算。
线性分析在这种情况下是不适用的。
以往有一些专门的软件来分析碰撞问题,但现在ABAQUS在通用有限元软件包就能解决这些问题。
说明:由于时间仓卒,未能把提问和回答问题的作者标明,请这两方面的同志予以谅解!得感谢这些热心的朋友,在论坛上替别人释疑解惑,才使得论坛繁荣昌盛,也让我们学到了不少知识!除问题七来自傲雪论坛»『 ABAQUS、DIANA、ADINA及ADAMS 』论坛以外,其它问题全部来自---SimWe---仿真论坛»ABAQUS论坛!一、两个有用文件的诠释:在Site文件夹下的那两个aba_param_dp.inc和aba_param_sp.inc就是的。
ABAQUS自动根据你的机器类型调用,你也可以将aba_param_sp.inc的内容改为和aba_param_dp.inc一样,这样ABAQUS就都采用双精度计算了。
二、显式/隐式之区别:>>请教大侠什么是显式和隐式及其区别,俺已经憋了很久了>>n+1个时间步的量可以由第n个时间步的量直接求得,称为显式例如:an+1=bn+cnbn+1=an+cncn+1=an+bn优点是计算量比较小缺点是有累计误差n+1个时间步的量不可以由第n个时间步的量直接求得,称为隐式例如:an+1+bn+1=cnbn+1+cn+1=anan+1+cn+1=bn优点是计算量比较大,需要通过方程组求解缺点是没有累计误差>>请问大侠是否显式和隐式正好反过来?在固体力学里面具体指什么?>>用比较通俗的话说:显式就是可以直接通过自变量求得因变量的解,自变量和因变量可以分离在等式的两侧;隐式正好相反,因变量与自变量混和在一起,不能进行分离。
>>在显示动力学中,比如冲击,为什么物体是运动的(当然包含刚体位移了),而刚度矩阵不奇异?>>呵呵,因为显式解法里,就没有刚度矩阵一说呀!>>大侠呀,请详细地说说好吗?>>in explicit method, each equation can be solved directly from initial condition and boundary condition, do not need to form stiffness matrix to slove simultaneous eqautions.Simply speaking,implicit method, we have [K] {u} = {f}we need to form [K] to slove {u}explicit method,k1 u1 = f1k1' u1+ k2 u2 = f2...we can solve u1 from first equation, u2 from second equation...The advantage of explicit method is saving time.The disadvantage of explicit method is hard to know if the solution converge or not>>补充两句:显式解法基于牛顿第二定律,F=M*acce,其中F由上一时步的外载、内力确定;由acce --> velocity -->disp, 也就可相应求解应力、应变值了。
文章编号:1001-148X (2005)07-0032-03电子商务环境下的人力资源管理新模式汪明艳1,吴 忠2,王裕明1(11上海工程技术大学管理学院,上海 200336;21同济大学经济与管理学院,上海 200092)摘要:随着信息化的不断推进,电子商务的发展使企业管理,特别是人力资源管理成为企业获取成功的基本导向。
同时专门针对人力资源管理的电子解决方案———E -HR 应用而生。
作为人力资源管理的新模式的实施给企业带来诸多的利益,E -HR 成为很多企业的发展的趋势。
关键词:E -HR ;电子商务;人力资源管理中图分类号:F240 文献标识码:B 收稿日期:2003-12-24作者简介:汪明艳,上海工程技术大学教师,硕士。
基金项目:上海市教委青年基金项目(F302)资助。
一、引言面对新的竞争环境与挑战,有效管理人力资源成为企业获取并保持竞争优势的重要来源和途径。
对企业最重要的资产———“人员”进行战略性的管理,成为21世纪企业的重要使命。
电子商务是一种全新的商业运作模式,电子商务无论从深度上还是从广度上,都强烈地冲击着传统的管理模式,给传统的管理理论和方法带来了严峻的挑战,同时也产生了许多新的管理问题。
经济全球化与贸易自由化带动下的全球经济一体化,将使多国企业成为国际市场竞争中的重要力量。
为了在全球化背景下获取并保持竞争优势,必须以一种崭新的全球思维(global mindsets )方式重新思考企业人力资源的角色与价值增值问题,建立新的模式和流程来培养全球性的灵敏嗅觉与核心能力。
如许多跨国公司坚持的“思维全球化,行动当地化”原则就是应对全球化给企业带来的挑战的有效策略。
国际竞争的深化必然推动企业在全球范围内配置资源,更包括人力资源的全球配置。
可以说,在E 时代,人力资源导向将成为企业获取成功的基本导向。
二、人力资源管理的新发展E -HR (Electronic -Human Resource )(一)电子商务对人力资源管理发展的影响人力资源是指包括组织内部成员与其所能运用的外在人力。
UMAT全过程-"技术篇"[写在前面:这篇文章是UMAT全过程-感想篇的姊妹篇,答应要给大家写的一篇帖子,同时也是为了记录自己的学习过程,与大家分享!首先指出,俺的"技术篇"--是加了引号的,因为确实称不上有多么大的技术含量,还望大家莫笑偶!只不过一是跟那个感想篇形成一个对照,同时主要内容为自己编子程序过程中涉及的技术边边上的小问题的一些解决方法,供仿友们参考!偶不是谦虚,也不是一个低调的人,大家谢谢和支持的话,我先行谢过啦!更希望大家能提出质疑或者别的更好的办法,大家相互交流,共同进步!]----------------------------------------------------------------------------*转*入*正*题*第一部分:相关知识[特别声明,这部分来自于华中科技大学杨曼娟同学的硕士学位论文,在此对作者表示感谢!--大家可以去知网下载]----------------------------------------------------------------------------1.ABAQUS中材料非线性问题的处理ABAQUS中材料非线性问题用Newton-Raphson法来求解。
首先将载荷分为若干个微小增量,结构受到一个微小增量△P。
ABAQUS用与初始结构位移相对应的初始刚度矩阵K0和荷载增量△P计算出结构的在这一步增量后的位移修正Ca、修正后的位移值Ua和相应的新的刚度矩阵Ka。
ABAQUS用新的刚度矩阵计算结构的内力Ia,荷载P和Ia的差值为迭代的残余力Ra,即Ra=P-Ia。
如果Ra在模型内的每个自由度上的值都为零,如图2-2中的a点,则结构处于平衡状态。
但在非线性问题中,通常Ra是不可能为零,ABAQUS为此设置了一个残余力容差。
如果Ra小于这个数字,ABAQUS就认为结构的内外力是平衡的。
一般这个缺省值取为平均内力的0.5%(如图2-2)。
在Ra 满足小于残余力容差的条件后,ABAQUS 还要检查位移修正系数Ca 是否远远小于结构的位移增量△Ua=Ua -Uo.如果大于位移增量的1%,ABAQUS 将自动继续进行迭代。
第二次迭代时,ABAQUS 用刚度矩阵Ka 和第一次迭代的残余力Ra 计算,得到一个新的位移修正值。
同理,第二次迭代中ABAQUS 用新的残余力、新的位移系数,继续验证收敛性,直到收敛为止(如图2-3)。
因此非线性问题的计算量要比线性问题的计算量大得多,计算的时候需要分配更多的内存和磁盘空间。
ABAQUS会自动调整荷载增量的大小,用户只需合理的设置一个第一次迭代的增量值即可,如果用户不给出第一次迭代的增量值,ABAQUS会在第一次迭代的过程中把设置的所有荷载都加到结构上去,然后不断的试算自动调整第一次迭代的增量大小。
寻找一个增量值的收敛解迭代的次数取决于系统非线性的程度。
ABAQUS中缺省的设置是,如果在一个增量值的作用下,迭代16次以后结果仍不收敛,ABAQUS将放弃这个增量值,把增量取为前一次增量值的25%再进行计算。
如果ABAQUS 在迭代次数小于5次的情况下就找到了收敛解,ABAQUS就自动把增量值增加50%再进行计算,得到更为合理的增量值。
2.用户子程序接口ABAQUS不仅提供标准的有限元分析程序,而且具有良好的开放性,可利用它提供的用户子程序接口生成非标准的分析程序来满足用户的需要,在实际工程中得到广泛应用。
ABAQUS允许用户通过子程序以代码的形式来扩展主程序的功能,并给用户提供了强大而又灵活的用户子程序接口和应用程序接口(Utility Routine),ABAQUS 6.4一共有42个用户子程序接口,15个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数值交换等等。
这些用户子程序接口使得用户解决一些问题时有很大的灵活性,同时大大的扩充了ABAQUS的功能。
例如:通过用户定义单元接口,用户自定义的任何类型的线性或非线性单元都可以被引入模型中,对于线性单元刚度矩阵和质量矩阵可以直接确定。
同时,用户子程序也可被用来定义这些单元的线性和非线性特性。
通过用户材料子程序接口,用户可定义任何补充的材料模型,不但任意数量的材料常数都可以作为资料被读取,而且ABAQUS对于任何数量的与解相关的状态变量在每一材料计数点都提供了存储功能,以便在这些子程序中应用。
3.用户子程序和主程序的结合ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照Fortran语法,用户自己编写的代码。
它是一个独立的程序单元,可以独立的被存储和编译,也能被其它程序单元引用,因此,利用它可带回大量数据供引用程序使用,也可以用它来完成各种特殊的功能。
它的一般结构形式是:SUBROUTINE S(x1,x2,……,xn)INCLUDE‘ABA_PARAM.INC’(用于ABAQUS/Standard用户子程序中)OR INCLUDE‘VABA_PARAM.INC’)(用于ABAQUS/Explicit 用户子程序中)……RETURNENDx1,x2,……,xn是ABAQUS提供的用户子程序的接口参数,有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP、KINC、COORDS;有些是需要用户自己定义的,例如F。
文件aba_param.inc和vaba_param.inc随着ABAQUS软件的安装而包含在操作系统中,它们含有重要的参数,帮助ABAQUS主求解程序对用户子程序进行编译和链接。
当控制遇到RETURN语句时便返回到引用程序单元中去,END语句是用户子程序结束的标志。
在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.for为扩展名的文件中。
运行带有用户子程序的算例同时有两种方法:一是在CAE中运行,在EDIT JOB菜单中的GENERAL子菜单的USER SUBROUTINE FILE对话框中选择用户子程序所在的文件即可;另外是在MAND中运行,语法如下:abaqus job=job-nameuser={source-file|object-file}编制用户子程序时应注意:(1)用户子程序相互之间不能调用,但可以调用用户自己编写的Fortran 子程序和ABAQUS应用程序。
ABAQUS应用程序必须由用户子程序调用。
当用户编写Fortran子程序时,建议子程序名以K开头,以免和ABAQUS内部程序冲突。
(2)当用户在用户子程序中利用OPEN打开外部文件时,要注意以下两点:一是设备号的选择是有限制的,只能取15~18和大于100的设备号,其余的都已被ABAQUS占用;二是用户需提供外部文件的绝对路径而不是相对路径。
(3)对于不同的用户子程序ABAQUS调用的时间是不同的,有的是在每个STEP的开始,有的是STEP的结尾,有的是在每个INCREMENT的开始等等。
当ABAQUS调用用户子程序时,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可把它们输出到外部文件中,这样就可清楚的知道ABAQUS何时调用该用户子程序。
为保证用户子程序的正确执行,子程序的书写必须遵循ABAQUS的相关规定.4.用户材料子程序UMAT接口的原理用户材料子程序(User-defined Material Mechanical Behavior,简称UMAT)是ABAQUS提供给用户定义自己的材料属性的Fortran程序接口,使用户能使用ABAQUS材料库中没有定义的材料模型。
用户材料子程序UMAT通过与ABAQUS主求解程序的接口实现与ABAQUS的资料交流.在输入文件中,使用关键词“*USER MATERIAL”表示定义用户材料属性。
[更详细相关知识,请看帖子ABAQUS-UMAT-自学知识整理贴[已经初步完成,不断完善更新,请跟帖讨论]/viewthread.php?tid=914547&fromuid=4502 47]由于UMAT子程序在单元的积分点上调用,增量步开始时,主程序路径将通过UMAT的接口进入UMAT,单元当前积分点必要变量的初始值将随之传递给UMAT的相应变量。
在UMAT结束时,变量的更新值将通过接口返回主程序。
ABAQUS调用UMAT过程及次数如图2-4所示。
5.UMAT子程序流程UMAT子程序采用Fortran语言编制,可以包括以下几个部分:子程序定义语句、ABAQUS定义的参数说明、用户定义的局部变量说明、用户编制的程序主体、子程序返回和结束语句。
主要求解过程:每一个增量加载步开始时,ABAQUS主程序在单元的积分点上调用UMAT子程序,并传入应变增量、时间步长及荷载增量,同时也传入当前已知状态的应力、应变及其它与求解过程相关的变量;UMAT 子程序根据本构方程求解应力增量并更新应力及其它相关的变量,提供Jacobian矩阵给ABAQUS主程序以形成整体刚度矩阵;主程序结合当前荷载增量求解位移增量,继而进行平衡校核;如果不满足指定的误差,ABAQUS将进行迭代直到认为收敛,然后进行下一增量步的求解。
ABAQUS中应力σ采用Cauchy应力张量描述,剪应变分量εij 按照工程剪应变的定义存储。
在求解的过程中,需记录保存与求解过程相关的变量,这可以储存在UMAT子程序的STATEV数组中,并且可以定义储存的数量。
对本文所述的本构方程,定义了13个与求解过程相关的变量,即6个弹性应变,6个塑性应变,1个塑性参数增量。
非非的ABAQUS用户子程序[zz]转自当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。
有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。
二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。
有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。
当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。
(子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下)首先介绍几个子程序:一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME)参数:1.F为用户定义的是每个积分点所作用的荷载的大小;2.KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值;3.TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值;4.NOEL,NPT为积分点所在单元的编号和积分点的编号;5.COORDS为当前积分点的坐标;6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。