UMAT子程序在复合材料强度分析中的应用
混凝土材料umat子程序报告

umat子程序报告这一阶段主要目的是针对于应力——应变曲线问题进行研究,由于本用户子程序是基于abaqus有限元软件来模拟混凝土材料的弹塑性损伤行为,而众所周知混凝土材料在单轴压缩的情况下的应力——应变曲线具有以下三个较为明显的阶段(见图1)1.弹性阶段,应力——应变关系为一条直线。
2.强化阶段,在这一阶段,应力值还在上升,但是其切线刚度值要小于弹性阶段时的弹性刚度3.软化阶段,由于在这一阶段,混凝土内部形成了损伤,并且损伤连续发展成微小的裂纹,大大地降低了材料的承载力,应力——应变曲线呈现出一个下降的趋势。
图1.应力——应变曲线图2.弧长法简介作为一个数值模拟程序,如何判断其准确性与否,其中主要的一部分是检验应力——应变曲线是否能够拟合一些实验数据。
应力——应变曲线本身代表了应用数值模拟形式来表现材料解析的本构关系的这一过程,所以在这一过程中笔者有必要获得一个与以往混凝土压缩实验得到的应力——应变曲线相类似的曲线,这一曲线形式最好能够如图一所示,既有很明显的三个阶段,当然在数值上也必须满足混凝土实验的结果。
为了达到这一目的,笔者参考了相关的书籍和软件的帮助文件,发现了许多的问题,而主要困扰笔者的问题可以概括为这样几个方面:1.混凝土软化阶段如何用数值模拟。
2.在abaqus/standard中平衡方程的迭代是决定于有效应力还是决定于柯西应力。
3.关于子程序的一些疑问。
一、混凝土软化阶段的数值模拟利用newton-raphson迭代在很多问题中可以获得令人满意的解决方案。
但是对于一些具有损伤状态的本构关系时,由于存在承载力的下降,利用newton-raphson迭代在大多数情况下是无法得到下降段曲线。
在abaqus中自带了弧长法(riks method),这一方法可以解决一大部分承载力下降的问题。
这一方法的独特之处在将每一个增量部的长度也作为一个待求的未知量,同时弧长法还采用了寻求单一平衡路径的方法,利用在已经求得的平衡点上做一条切线,切线的长度则由abaqus内部自带的求解方法进行求解。
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 )而已。
碳纤维复合材料层合板钻削后拉伸剩余强度研究
碳纤维复合材料层合板钻削后拉伸剩余强度研究
余芬;崔乃葳;何振鹏;黎柏春
【期刊名称】《机械强度》
【年(卷),期】2024(46)3
【摘要】拉伸剩余强度是复合材料层合板的一个重要力学性能,对产品的使用寿命起着关键作用。
为了研究钻削工艺参数对碳纤维复合材料(Carbon Fiber Reinforced Plastics,CFRP)层合板钻削后拉伸剩余强度的影响,将所选用的失效准则和刚度退化模式编写Vumat子程序,在Abaqus软件中建立了CFRP层合板钻削后拉伸有限元模型。
通过正交试验探究主轴转速、进给量和钻头顶角对CFRP层合板钻削后拉伸剩余强度的影响。
研究结果表明,主轴转速、进给量和钻头顶角都对层合板拉伸剩余强度有显著影响,提高主轴转速,减小进给量和钻头顶角都可以有效地提高层合板钻削后拉伸剩余强度,为实际加工提供参考。
【总页数】7页(P588-594)
【作者】余芬;崔乃葳;何振鹏;黎柏春
【作者单位】中国民航大学交通科学与工程学院;中国民航大学航空工程学院【正文语种】中文
【中图分类】TB332
【相关文献】
1.高强度碳纤维增强复合材料层合板的钻削制孔过程及其缺陷形成分析
2.复合材料层合板的低能冲击损伤及剩余拉伸强度研究
3.钎焊套料钻钻削碳纤维增强复合材
料层合板出口撕裂缺陷的成因分析4.含分层复合材料层合板拉伸剩余强度研究5.表面浅裂纹损伤后碳纤维增强树脂复合材料层合板断裂强度研究
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UMAT子程序在复合材料强度分析中的应用进损伤压缩强度分析,介绍UMAT用户子程序编写方法及在Abaqus/CAE中的设置。
本章使用最大应变强度理论作为复合材料单层板的失效准则,相应的Fortran程序简单易读,便于理解UAMT知识要点:强度分析UMAT用户子程序最大应变理论刚度折减&.1 本章内容简介本章通过两个实例介绍UMAT用户子程序在复合材料单层板的应力分析和强度分析中的应用。
在第一个实例中,对一个简单的复合材料单层板进行应力分析,UMAT子程序主要计算应力,不进行强度分析,本例用于验证UMAT子程序的计算精度。
在第二个实例中,对复合材料单层板进行渐进损伤强度分析,UMAT子程序用于应力计算、强度分析和刚度折减。
本章所用复合材料为T700/BA9916,材料属性如表&-1所示。
表&-1 T700/BA9916材料属性参数值强度值E1/GPa114X T/MPa2688E2/GPa X C/MPa1458E3/GPa Y T/MPaμ12Y C/MPa236μ13Z T/MPaμ23Z C/MPa175G12/GPa S XY/MPa136G13/GPa S XZ/MPa136G23/GPa S YZ/MPa&.2 实例一:UMAT 用户子程序应力分析&.问题描述复合材料单层板几何尺寸为15mm ×10mm ×,纤维方向为45°,单层板的3D 实体模型如图&-1所示,X 轴方向为0°方向,左侧面施加X 轴向对称边界条件,下侧面施加Y 轴向对称边界条件,垂直于Z 轴且Z=0的平面施加Z 轴向对称边界条件,右侧面施加100MPa 的拉力。
图&-1 单层板边界条件及加载情况本例中单位系统为mm 、MPa 。
&. UMAT 用户子程序本例使用的UMAT 用户子程序的全部代码如下,字母C 及“!”之后为注释内容。
1 SUBROUTINE 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 C7 INCLUDE '' 8 C9 CHARACTER *80 CMNAME10 DIMENSION 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) 1516 DIMENSION EG(6), XNU(3,3), STRAND(6), C(6,6), STRESS0(6) 17C****************************在使用UMAT 用户子程序进行高级应用之前,应该先了解UMAT 子程序,熟悉UMAT 子程序的工作原理,了解UMAT 中的参数、变量的含义。
为了便于读者快速了解和使用UMAT ,本例通过复合材料单层板的应力分析来介绍一个简单的UMAT 子程序。
读者可将本例中的单层板替换为层压板,进行对比分析。
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)57C****************************58 C CALCULATE STRAIN59DO I = 1, 660 STRAND(I) = STRAN(I)+DSTRAN(I)61ENDDO62 C CALCULATE STRESS63DO I = 1, 664 STRESS0(I) = STRESS(I)65 STRESS(I) = 066DO J = 1, 667 STRESS(I) = STRESS(I)+C(I,J)*STRAND(J)68ENDDO69ENDDO70 C CALCULATE SSE71DO I = 1, 672 SSE = SSE+*(STRESS0(I)+STRESS(I))*DSTRAN(I)73ENDDO74C****************************75 C UPDATE DDSDDE76DO I = 1, 677DO 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 UMAT 部分变量名及其含义第15到83行为用户自己编写的固定格式的Fortran 程序,用于计算刚度矩阵、应力、应变能、雅克比矩阵。
由于本例中没有使用状态变量,因此不需要更新STATEV ,只需要更新STRESS 、DDSDDE 和SSE 即可。
第16行定义了5个数组,其中EG 、STRAND 、STRESS0为一维数组,XNU 、C 为二维数组。
第18到22行为注释部分,EG 存放材料的3个弹性模量和3个剪切模量;STRAND 存放当前增量步结束时的应变(E11,E22, ...);STRESS0存放增量步开始时的应力(S11, S22, ...);XNU为3×3的二维矩阵,存放泊松比ν12、ν21、ν13、ν31、ν23、ν32;C 为6×6的刚度矩阵。
第25、26行初始化二维数组XNU 、C ,使其每个元素都为0。
第28到39行,读取材料常数,计算泊松比。
泊松比的计算公式如下。
ji ji ij jji iij E E ννE νE ν⋅==, (&-1)第42到56行,计算刚度矩阵。
刚度矩阵的计算公式如下。
322113322331132112233213311221132123331123222323121333221311133213122233121112236613551244211233331132223223111211)()()()()()()1()1()1(νννννννννγγνννγνννγνννγνννγνννγνννγννγννγνν⋅⋅⋅-⋅-⋅-⋅-=⎪⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎧===⋅⋅-⋅=⋅⋅-⋅=⋅⋅-⋅=⋅⋅-⋅=⋅⋅-⋅=⋅⋅-⋅====⋅⋅-⋅=⋅⋅-⋅=⋅⋅-⋅=CC C C C C E E C E E C E E C G C G C G C E C E C E C (&-2) 对于本例所用材料,由于E 2=E 3,G 12=G 13,ν12=ν13,所以ν21=ν31、ν23=ν32,可以将式(&-2)化简后在UMAT 中计算刚度矩阵。