UMAT子程序在复合材料强度分析中的应用
ABAQUS材料用户子程序UMAT学习报告

具有友好的用户 界面和易用的操 作流程,方便用 户进行学习和使 用
UMAT子程序简介
UMAT子程序是 ABAQUS材料用户 自定义模块,允许 用户根据实际需求 编写材料本构模型。
UMAT子程序采用C 语言编写,用户需要 具备一定的编程基础。
UMAT子程序可以实 现多种材料本构模型 ,如弹性、塑性、蠕 变等。
UMAT子程序实现细节
编程语言和接口
A B A Q U S 材 料 用 户 子 程 序 U M AT 使 用Fortran语言编写
U M AT 子 程 序 中 可 以 定 义 材 料 属 性 、 本构关系等
添加标题
添加标题
添加标题
添加标题
U M AT 子 程 序 通 过 A B A Q U S 提 供 的 接口与主程序进行交互
不足:使用门槛较高,需要用户具备一定的编程基础
未来展望:期待更多的用户参与开发,不断完善子程序功能
总结:UMAT子程序为用户提供了强大的材料模型描述能力,但使用过程中需要注意其局 限性
在ABAQUS中的未来发展方向
开发更高效的材料模型 集成人工智能和机器学习技术 增强与CAD软件的集成 扩展对多物理场模拟的支持
适用于金属材料
适用于复合材料
适用于橡胶材料
适用于陶瓷材料
参数的合理选择
参数选择需符合实际物理模型 参数选择需考虑材料特性 参数选择需经过实验验证 参数选择需注意收敛性和稳定性
收敛性和稳定性问题
收 敛 性 : U M AT 子 程 序 在 迭 代 过 程 中应满足收敛条件,否则可能导致 计算失败或结果不准确。
边界条件和初始条件
边界条件:描述模型在边界上的行为,如位移、速度等 初始条件:描述模型在初始时刻的状态,如温度、压力等
Abaqus材料用户子程序UMAT基础知识及手册例子完整解释

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )?很简单,当ABAQUS 没有提供我们需要的材料模型时。
所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。
UMAT 子程序具有强大的功能,使用UMAT 子程序:(1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。
(2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。
(3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。
(4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。
2、需要哪些基础知识?先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话:Warning: The use of this option generally requires considerable expertise(一定的专业知识). The user is cautioned that the implementation (实现) of any realistic constitutive (基本) model requires extensive (广泛的) development and testing. Initial testing on a single eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。
abaqus子程序umat编写hashin准则

Hashin准则是一种常用的材料失效准则,用于模拟复合材料的损伤和失效。
在ABAQUS中,你可以使用UMAT(用户自定义材料行为)子程序来实现Hashin准则。
以下是一个简单的UMAT子程序示例,用于实现Hashin准则:```c#include "umat.h"#define N 10void UMAT(const int *nIntPoints, const int *nExtPoints, const double *dS, const double *dSP, const double *dStrain, const double*dStress, double *dStrainInc, double *dStressInc, double *dStress历史, int *nFail){double S[N], S0[N];int i;double E1 = dStrain[0];double E2 = dStrain[1];double E3 = dStrain[2];double sigma1 = dStress[0];double sigma2 = dStress[1];double sigma3 = dStress[2];double sigma历史1 = dStress历史[0];double sigma历史2 = dStress历史[1];double sigma历史3 = dStress历史[2]; double m1 = 0.0;double m2 = 0.0;double m3 = 0.0;double n1 = 0.0;double n2 = 0.0;double n3 = 0.0;for (i=0; i<N; i++) {S[i] = sqrt(dS[i]);S0[i] = sqrt(dSP[i]);m1 += S[i] / sigma1;m2 += S[i] / sigma2;m3 += S[i] / sigma3;n1 += S0[i] / sigma历史1;n2 += S0[i] / sigma历史2;n3 += S0[i] / sigma历史3;}if (m1 < 1.0e-6) m1 = 1.0e-6;if (m2 < 1.0e-6) m2 = 1.0e-6;if (m3 < 1.0e-6) m3 = 1.0e-6;if (n1 < 1.0e-6) n1 = 1.0e-6;if (n2 < 1.0e-6) n2 = 1.0e-6;if (n3 < 1.0e-6) n3 = 1.0e-6;double sigmaT = sqrt(m1*m2*m3);double sigmaLT = sqrt(n1*n2*n3);if (sigmaT < sigmaLT) {*nFail = 1; // 损伤发生,将nFail设为1表示材料失效return; // 退出UMAT函数,不再进行应力和应变增量计算} else {*nFail = 0; // 没有损伤发生,将nFail设为0表示材料仍然有效return; // 退出UMAT函数,继续进行应力和应变增量计算}}```以上代码实现了Hashin准则的简单形式,即当总剪切应力小于长纤维方向的纤维应力时,复合材料发生损伤。
ABAQUS子程序UMAT的应用

目录摘要 (I)ABSTRACT (II)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.用户材料子程序UMAT (8)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)16.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语言编制了各向同性硬化材料模型的接口程序,研究该类材料的弹塑性本构关系极其实现方法。
abaqus复合材料larc05失效准则umat子程序开发的相关案例教程

abaqus复合材料larc05失效准则umat子程序开发的相关案例教程开发一个用于模拟复合材料的UMAT子程序是一个复杂的过程,涉及到对材料行为的深入理解以及高级编程技巧。
下面是一个基本的案例教程,演示如何为ABAQUS开发一个用于模拟LARC05失效准则的UMAT子程序。
1. 准备工作•安装ABAQUS: 确保你已经安装了ABAQUS软件。
•编程环境: 准备一个适合C++的开发环境,如Visual Studio或Eclipse。
•材料数据: 收集或计算所需的材料属性,如弹性模量、泊松比、失效准则参数等。
2. 创建UMAT子程序框架•打开ABAQUS: 启动ABAQUS软件。
•创建新的UMAT: 在ABAQUS的插件菜单中选择“用户材料”>“用户材料子程序”>“创建”。
选择C++作为编程语言。
•编写框架: 创建一个新的C++文件,并添加必要的头文件和命名空间。
定义UMAT所需的输入和输出变量。
3. 实现LARC05失效准则•理解LARC05准则: LARC05是一种复合材料失效准则,涉及到最大应力、最大应变等参数。
确保你理解这些参数如何影响材料行为。
•编写代码: 根据LARC05准则,使用C++编写UMAT子程序代码。
这可能涉及到计算应力、应变,以及应用失效准则。
4. 测试和验证UMAT•创建测试案例: 在ABAQUS中创建一个简单的模型,用于测试UMAT子程序。
•运行模拟: 运行模拟,并检查结果是否符合预期。
如果结果不符合预期,回到代码中调试问题。
•验证: 使用更多的测试案例验证UMAT的准确性。
确保UMAT在各种工况下都能正确预测材料的失效行为。
5. 优化和调整•优化性能: 如果UMAT运行速度较慢,考虑优化代码以提高性能。
•调整参数: 根据模拟结果调整UMAT中的参数,以获得更准确的结果。
6. 文档和分享•编写文档: 为UMAT子程序编写详细的文档,包括输入和输出变量、材料参数、测试案例等。
ABAQUS-UMAT复合材料渐进失效分析-附子程序

INTRODUCTION
*Author to whom correspondence should be addressed. E-mail: huangzm@ Figure 12 appears in color in color online:
Downloaded from at ZHEJIANG UNIV LIB on May 23, 2009
Inelastic and Failure Analysis of Laminate Structures by ABAQUS Incorporated with
Published by:
Additional services and information for Journal of Reinforced Plastics and Composites can be found at: Email Alerts: /cgi/alerts
Los Angeles, London, New Delhi and Singapore
Downloaded from at ZHEJIANG UNIV LIB on May 23, 2009
1135
பைடு நூலகம் 1136
Z.-M. HUANG
Unfortunately, the nonlinear mechanical behavior of a composite is not well understood in the current literature. Recently, the present author proposed a general constitutive theory, the bridging model [3,4], for composites. By combining the bridging model with the classical lamination theory, a general constitutive relationship was established for any fibrous laminate, and was summarized in References [1,2]. A recently completed worldwide failure exercise [5–8] has indicated that the bridging model constitutive theory had two unique features. The first feature was that it was the only model in the exercise that could be used to calculate the thermal stresses in the fiber and matrix materials due to a thermal load (temperature variation) applied on the composite (see Reference [6], p. 450). The second feature lay in the fact that the model is consistent in that the laminate nonlinear constitutive equations automatically deteriorate to those of the isotropic matrix material when the fiber content becomes zero or when the fiber becomes the same as that of the matrix. It is noted that, the other nonlinear constitutive models used in the exercise [9–15] described the composite constitutive equations in a way somewhat similar to Hooke’s law. Namely, a shear stress would not cause an extensional strain whereas a normal stress had no contribution to a shear strain. According to a classical plasticity theory such as Prandtl–Reuss theory for isotropic materials, however, a normal (or shear) stress will generate a shear (or extensional) plastic strain if the material is subjected to a combination of the shear and normal stresses.
Abaqus子程序经典介绍————复合材料固化温度场所用到四个子程序详解

复合材料固化仿真所用到四个子程序详解冯希金目录1. 子程序FILM详解 (3)1.1 子程序FILM的功能描述 (3)1.2 程序界面 (3)1.3 需要定义的变量 (3)1.4 从例程中传递进来的信息 (4)1.5 FILM子程序与INP文件的关系 (5)2. 用户子程序HETVAL (7)2.1子程序HETVAL的功能描述 (7)2.2 程序界面 (7)2.3 需要定义的变量 (7)2.4 可以被更新的变量 (7)2.5 传递到子程序中的信息 (8)2.6子程序HETVAL与INP文件的关系 (8)3. 子程序disp (9)3.1 子程序DISP的功能描述 (9)3.2 程序界面 (9)3.3 需要定义的变量 (9)3.4 传递到子程序中的信息 (9)1. 子程序FILM详解1.1 子程序FILM的功能描述该子程序在热交换分析中用来定义非均匀的对流换热系数和环境温度(sink temperature)。
它的应用在于:(1)可以用来定义基于节点的、基于单元的或者是基于面的非均匀对流换热系数。
(2)可以用来定义环境温度,这个环境温度可以是空间位置、时间、温度、节点号、单元号、积分点号等的函数。
(3)在允许热交换的过程中被调用,这些热交换可以是节点间的、或者是面的积分点间的,它们可以是基于节点、单元或面的非均匀对流条件。
(4)忽略了振幅(5)不论是基于单元的还是基于面的对流换热,都采用一阶热传导单元的节点作为面积分点。
1.2 程序界面1.3 需要定义的变量H(1) ——节点上的对流换热系数,单位是:JT–1L–2–1. H(1) 作为基于节点、基于单元或者是基于面的对流换热条件的数值被传递到例程中参与计算。
如果没有定义值,那么H1(1)被初始化为0,这个系数不能作为输出变量用于输出目的。
H(2) ——,在该积分点上,对流换热系数相对于表面温度的变化率。
其单位是JT–1L–2–2. 通过定义这个值,可以提高非线性分析中的收敛速度,尤其是当对流换热系数是表面温度的函数时更是如此。
Abaqus材料用户子程序UMAT基础知识及手册例子完整解释

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )?很简单,当ABAQUS 没有提供我们需要的材料模型时。
所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。
UMAT 子程序具有强大的功能,使用UMAT 子程序:(1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。
(2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。
(3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。
(4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。
2、需要哪些基础知识?先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话:Warning: The use of this option generally requires considerable expertise(一定的专业知识). The user is cautioned that the implementation (实现) of any realistic constitutive (基本) model requires extensive (广泛的) development and testing. Initial testing on a single eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UMAT子程序在复合材料强度分析中的应用本例使用UMAT用户子程序进行复合材料单层板的应力分析和渐进损伤压缩强度分析,介绍UMA T用户子程序编写方法及在Abaqus/CAE中的设置。
本章使用最大应变强度理论作为复合材料单层板的失效准则,相应的Fortran程序简单易读,便于理解UAMT子程序的工作原理。
知识要点:强度分析UMAT用户子程序最大应变理论刚度折减讲师:孔祥宏版本:Abq 6.14 难度:关键词:强度分析,UMAT&.1 本章内容简介本章通过两个实例介绍UMAT用户子程序在复合材料单层板的应力分析和强度分析中的应用。
在第一个实例中,对一个简单的复合材料单层板进行应力分析,UMAT子程序主要计算应力,不进行强度分析,本例用于验证UMA T子程序的计算精度。
在第二个实例中,对复合材料单层板进行渐进损伤强度分析,UMAT子程序用于应力计算、强度分析和刚度折减。
本章所用复合材料为T700/BA9916,材料属性如表&-1所示。
表&-1 T700/BA9916材料属性参数值强度值E1/GPa 114 X T/MPa 2688E2/GPa 8.61 X C/MPa 1458E3/GPa 8.61 Y T/MPa 69.5μ120.3 Y C/MPa 236μ130.3 Z T/MPa 55.5μ230.45 Z C/MPa 175G12/GPa 4.16 S XY/MPa 136G13/GPa 4.16 S XZ/MPa 136G23/GPa 3.0 S YZ/MPa 95.6&.2 实例一:UMAT用户子程序应力分析&.2.1问题描述复合材料单层板几何尺寸为15mm×10mm×0.15mm,纤维方向为45°,单层板的3D实体模型如图&-1所示,X轴方向为0°方向,左侧面施加X轴向对称边界条件,下侧面施加Y轴向对称边界条件,垂直于Z轴且Z=0的平面施加Z轴向对称边界条件,右侧面施加100MPa 的拉力。
图&-1 单层板边界条件及加载情况本例中单位系统为mm、MPa。
在使用UMA T用户子程序进行高级应用之前,应该先了解UMAT 子程序,熟悉UMAT子程序的工作原理,了解UMA T中的参数、变量的含义。
为了便于读者快速了解和使用UMA T,本例通过复合材料单层板的应力分析来介绍一个简单的UMA T子程序。
读者可将本例中的单层板替换为层压板,进行对比分析。
&.2.2 UMAT用户子程序本例使用的UMAT用户子程序UMA T-Stress.for的全部代码如下,字母C及“!”之后为注释内容。
1SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,2 1 RPL,DDSDDT,DRPLDE,DRPLDT,3 2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,4 3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,5 4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)6 C7INCLUDE'ABA_PARAM.INC'8 C9CHARACTER*80 CMNAME10DIMENSION STRESS(NTENS),STATEV(NSTATV),11 1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),12 2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),13 3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3),14 4 JSTEP(4)1516DIMENSION EG(6), XNU(3,3), STRAND(6), C(6,6), STRESS0(6)17C****************************18 C EG.....E1,E2,E3,G12,G13,G2319 C XNU.....NU12,NU21,NU13,NU31,NU23,NU3220 C STRAND.....STRAINT AT THE END OF THE INCREMENT21 C C.....6X6 STIFFNESS MATRIX22 C STRESS0.....STRESS AT THE BEGINNING OF THE INCREMENT23C****************************24 C INITIALIZE XNU & C MATRIX25 XNU=026 C=027 C GET THE MATERIAL PROPERTIES---ENGINEERING CONSTANTS28 EG(1) = PROPS(1) !E1,YOUNG'S MODULUS IN DIRECTION 129 EG(2) = PROPS(2) !E2,YOUNG'S MODULUS IN DIRECTION 230 EG(3) = EG(2) !E3,YOUNG'S MODULUS IN DIRECTION 331 XNU(1,2) = PROPS(3) !POISON'S RATIO POI_1232 XNU(2,1) = XNU(1,2)*EG(2)/EG(1) !POISON'S RATIO POI_2133 XNU(1,3) = XNU(1,2) !POISON'S RATIO POI_1334 XNU(3,1) = XNU(1,3)*EG(3)/EG(1) !POISON'S RATIO POI_3135 XNU(2,3) = PROPS(4) !POISON'S RATIO POI_2336 XNU(3,2) = XNU(2,3)*EG(3)/EG(2) !POISON'S RATIO POI_3237 EG(4) = PROPS(5) !G12,SHEAR MODULUS IN 12 PLANE38 EG(5) = EG(4) !G13,SHEAR MODULUS IN 13 PLANE39 EG(6) = PROPS(6) !G23,SHEAR MODULUS IN 23 PLANE40C****************************41 C FILL THE 6X6 STIFFNESS MATRIX C(6,6)42 RNU = 1/(1-XNU(1,2)*XNU(2,1)-XNU(1,3)*XNU(3,1)-43 1 XNU(3,2)*XNU(2,3)-2*XNU(1,3)*XNU(2,1)*XNU(3,2))44 C STIFFNESS MATRIX C(6,6)45 C(1,1) = EG(1)*(1-XNU(2,3)*XNU(3,2))*RNU46 C(2,2) = EG(2)*(1-XNU(1,3)*XNU(3,1))*RNU47 C(3,3) = EG(3)*(1-XNU(1,2)*XNU(2,1))*RNU48 C(4,4) = EG(4)49 C(5,5) = EG(5)50 C(6,6) = EG(6)51 C(1,2) = EG(1)*(XNU(2,1)+XNU(3,1)*XNU(2,3))*RNU52 C(2,1) = C(1,2)53 C(1,3) = EG(1)*(XNU(3,1)+XNU(2,1)*XNU(3,2))*RNU54 C(3,1) = C(1,3)55 C(2,3) = EG(2)*(XNU(3,2)+XNU(1,2)*XNU(3,1))*RNU56 C(3,2) = C(2,3)57 C**************************** 58 C CALCULATE STRAIN 59 DO I = 1, 660 STRAND(I) = STRAN(I)+DSTRAN(I) 61 ENDDO62 C CALCULATE STRESS 63 DO I = 1, 664 STRESS0(I) = STRESS(I) 65 STRESS(I) = 0 66 DO J = 1, 667 STRESS(I) = STRESS(I)+C(I,J)*STRAND(J) 68 ENDDO 69 ENDDO70 C CALCULATE SSE 71 DO I = 1, 672 SSE = SSE+0.5*(STRESS0(I)+STRESS(I))*DSTRAN(I) 73 ENDDO74 C**************************** 75 C UPDATE DDSDDE 76 DO I = 1, 6 77 DO J = 1, 678 DDSDDE(I,J) = C(I,J) 79 ENDDO 80 ENDDO 81 RETURN 82 END第1到14行及第81、82行为UMAT 子程序固定格式,其中,第1到5行括号内的变量为UMAT 子程序中可以使用的变量,第10到14行定义各变量数组的维数和长度。
部分主要变量的含义如表&-2所示。
表&-2 UMA T 部分变量名及其含义STRESS增量步开始时的应力(S11, S22, ...),用增量步结束时的应力计算结果对其更新 STATEV(NSTATV) 状态变量(状态变量个数),如果在材料中定义了状态变量,则在UMA T 中需要对其更新STRAN 增量步开始时的应变(E11, E22, ...) DSTRAN当前增量步的应变增量(ΔE11, ΔE22, ...) NDI, NSHR, NTENS 应力、应变的个数,NDI 为正应力或正应变的个数,NSHR 为剪应力或剪应变的个数,NTENS=NDI+NSHR PROPS, NPROPS 材料参数、材料参数的个数 DDSDDE 雅克比矩阵,εσ∆∂∆∂/SSE, SPD, SCD特定的弹性应变能、塑性耗散、蠕变耗散,只对能量输出有影响,对其他计算结果无影响,在UMAT 中需要对其更新CELENT单元特征长度第15到83行为用户自己编写的固定格式的Fortran 程序,用于计算刚度矩阵、应力、应变能、雅克比矩阵。
由于本例中没有使用状态变量,因此不需要更新STATEV ,只需要更新STRESS 、DDSDDE 和SSE 即可。