UMAT全过程技术篇

合集下载

ABAQUS材料用户子程序UMAT学习报告

ABAQUS材料用户子程序UMAT学习报告

7、其他用户子程序
此外, 还包括特殊类型用途的子程序, 如定义多点约束的子 程序 MPC, 定义局部坐标的 ORIENT子程序等。上述子程序的分 类仅限于在岩土工程领域,其他领域有不同的分类方法。
UMAT使用方法
1、UMAT简介
用户材料子程序( User-defined Material Mechanical
6、用户定义的状态变量
状态变量主要包括定义场变量、与求解过程相关的状态变量,以 后重新定义材料点的状态变量,主要有 UFIELD 子程序、 SDVINI
子程序和 USDFLD 子程序。 此外还包括定义摩擦接触属性的子程序
,如定义摩擦接触行为的 FRIC 子程序,以及接触面行为定义的 UINTER 子程序等。
写到后处理结果文件中,如 UVARM 子程序;此外,读取结 边界的 DISP ;面力载荷可采用 DLOAD ;特殊分布的牵 果文件可采用 URDFIL ;温度场边界的 子程序。 引力的 UTRACLOAD UTEMP 。
4、用户定义的单元
对于特殊类型的单元,可采用 UEL 子程序进行定义。
5、用户定义的材料特性和本构关系
最后查看可视化后处理,得到如下云图。
2、验证利用UMAT进行二次开发的实例
实例:最简单的杆件单轴拉伸,材料本构模型采用线 弹性模型,E= 206000MPa, ν=0.3。左端约束,右端施加均 布力 q=1MPa。 分析:这是一个简单的杠杆拉
伸模型,ABAQUS内部就有这种模
型,但也可以使用材料用户子程序 UMAT对ABAQUS进行二次开发进 行求解。
NDI:某一点上直接应力组件数。 NSHR:某一点上剪切应力组件数。 NTENS:总应力分量个数,(=NDI+NSHR)。 NSTATV:存储与解有关的状态变量数组个数。 PROPS (NPROPS):材料常数数组。 COORDS:当前积分点坐标。DROT(3,3) :旋转增量矩阵。

学习UMAT

学习UMAT

弹塑性模型的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子程序编写教程简介•什么是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子程序需要输出一些计算结果,以便有限元分析软件进行后续处理。

硅微MEMS加工工艺_图文

硅微MEMS加工工艺_图文

EPW腐蚀条件
• 腐蚀温度:115℃左右 • 反应容器在甘油池内加热,加热均匀; • 防止乙二胺挥发,冷凝回流; • 磁装置搅拌,保证腐蚀液均匀; • 在反应时通氮气加以保护。 • 掩膜层:用SiO2,厚度4000埃以上。
腐蚀设备
影响腐蚀质量因素
• 腐蚀液成分
– 新旧腐蚀液 – 试剂重复性
• 温度 • 保护 • 搅拌
– 腐蚀窗口短边存在最小尺寸:
各向异性腐蚀液
• 腐蚀液:
– 无机腐蚀液:KOH, NaOH, LiOH, NH4OH等 ;
– 有机腐蚀液:EPW、TMAH和联胺等。
• 常用体硅腐蚀液:
– 氢氧化钾(KOH)系列溶液; – EPW(E:乙二胺,P:邻苯二酚,W:水)系
列溶液。
• 乙二胺(NH2(CH2) 2NH2) • 邻苯二酚(C6H4(OH) 2)
牺牲层技术
• 属硅表面加工技术。 • 是加工悬空和活动结构的有效途径。 • 采用此种方法可无组装一次制成具有活
动部件的微机械结构。 • 牺牲层材料
影响牺牲层腐蚀的因素
• 牺牲层厚度 • 腐蚀孔阵列 • 塌陷和粘连及防止方法
– 酒精、液态CO2置换水; – 依靠支撑结构防止塌陷。
典型牺牲层腐蚀工艺
• 流程2(不出现针孔):
• 热氧化SiO2,LPCVD Si3N4; • 背面光刻,腐蚀Si3N4,不去胶; • 正面光刻,腐蚀Si3N4和SiO2,去胶; • 体硅腐蚀。
凸角腐蚀补偿
• 凸角腐蚀是指在硅岛或硅梁的腐蚀成型 过程中,凸角部分被腐蚀掉的现象,体 硅各向异性腐蚀时经常出现,这是因为 对(100)晶面的硅片体硅腐蚀时,凸角的 边缘与[110]方向平行,而腐蚀液对此方 向的腐蚀速度较快。若要腐蚀出带凸角 的整齐的台面结构,必须采取凸角补偿 。

ABAQUS子程序UMAT的应用

ABAQUS子程序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全过程-技术篇

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为此设置了一个残余力容差。

(完整word)ABAQUS-UMAT弹塑本构二次开发的实现

(完整word)ABAQUS-UMAT弹塑本构二次开发的实现

前言有限元法是工程中广泛使用的一种数值计算方法。

它是力学、计算方法和计算机技术相结合的产物。

在工程应用中,有限元法比其它数值分析方法更流行的一个重要原因在于:相对与其它数值分析方法,有限元法对边界的模拟更灵活,近似程度更高。

所以,伴随着有限元理论以及计算机技术的发展,大有限元软件的应用证变得越来越普及。

ABAQUS软件一直以非线性有限元分析软件而闻名,这也是它和ANSYS,Nastran等软件的区别所在。

非线性有限元分析的用处越来越大,因为在所用材料非常复杂很多情况下,用线性分析来近似已不再有效。

比方说,一个复合材料就不能用传统的线性分析软件包进行分析。

任何与时间有关联,有较大位移量的情况都不能用线性分析法来处理。

多年前,虽然非线性分析能更适合、更准确的处理问题,但是由于当时计算设备的能力不够强大、非线性分析软件包线性分析功能不够健全,所以通常采用线性处理的方法。

这种情况已经得到了极大的改善,计算设备的能力变得更加强大、类似ABAQUS这样的产品功能日臻完善,应用日益广泛。

非线性有限元分析在各个制造行业得到了广泛应用,有不少大型用户。

航空航天业一直是非线性有限元分析的大客户,一个重要原因是大量使用复合材料。

新一代波音 787客机将全部采用复合材料。

只有像 ABAQUS这样的软件,才能分析包括多个子系统的产品耐久性能。

在汽车业,用线性有限元分析来做四轮耐久性分析不可能得到足够准确的结果.分析汽车的整体和各个子系统的性能要求(如悬挂系统等)需要进行非线性分析。

在土木工程业, ABAQUS能处理包括混凝土静动力开裂分析以及沥青混凝土方面的静动力分析,还能处理高度复杂非线性材料的损伤和断裂问题,这对于大型桥梁结构,高层建筑的结构分析非常有效。

瞬态、大变形、高级材料的碰撞问题必须用非线性有限元分析来计算。

线性分析在这种情况下是不适用的。

以往有一些专门的软件来分析碰撞问题,但现在ABAQUS在通用有限元软件包就能解决这些问题。

UMAT子程序详解

UMAT子程序详解

C TO CALCULATE THE SCD, ENERGY CAUSED BY VISCOUS REGULARIZATION C STATEV(1) damage variable df C STATEV(2) damage variable dm C STATEV(3) regularized damage variable dfv C STATEV(4) regularizaed damage variable dmv C STATEV(5:10) TEMPORARY ARRAYS TO SAVE DOLD_STRESS C************************** ************************************************************************************** ************************************************************************************** **在INP文件中,调用*USER MATERIAL,将所输入材料参数赋予局部变量矩阵PROPS(14) **PROPS(1)--PROPS(6)为使用Engineering Constants给出的材料参数; **PROPS(7)—PROPS(14)为所定义材料失效参数、断裂能参数及粘性参数。 ************************************************************************************** C C GET THE MATERIAL PROPERTIES---ENGINEERING CONSTANTS C TENL = PROPS(1) !YOUNG'S MODULUS IN DIRECTION 1 (L) TENT = PROPS(2) !YOUNG'S MODULUS IN DIRECTION 2 (T) SHRLT = PROPS(3) !SHEAR MODULUS IN 12 PLANE SHRTT = PROPS(4) !SHEAR MODULUS IN 23 PLANE XNULT = PROPS(5) !POISON'S RATIO POI_12 XNUTT = PROPS(6) !POISON'S RATIO POI_23 μ μ XNUTL = XNULT / TENL * TENT !POI_21 由关系 TL = LT 得到 C C C GET THE FAILURE PROPERTIES
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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传到用户子程序中的。

相关文档
最新文档