abaqus材料子程序

合集下载

ABAQUS用户材料子程序开发调研

ABAQUS用户材料子程序开发调研

ABAQUS用户材料子程序开发调研ABAQUS二次开发基础ABAQUS提供了标准有限元分析程序,而且具有良好的开放性,可利用它提供的用户子程序接口生成非标准的分析程序来满足用户的需要,在实际工程中得到广泛的应用。

同时,它允许用户通过子程序以代码的形式来扩展主程序的功能,并给用户提供了强大而又灵活的用户子程序接口和应用程序接口(Utility Routine),ABAQUS 共有42 个用户子程序接口,15 个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数值交换等等。

ABAQUS 程序具有良好的开放性,可利用它提供的用户子程序接口生成非标准的分析程序来满足用户的需要,在实际工程中得到广泛应用。

用户子程序大致可以分为7 类,下面为具体的分类及用户常用子程序。

1.用户定义的初始条件利用此类子程序可以在分析时定义初始条件,例如:初始应力场的定义,可以采用SIGINI 用户子程序来定义;在渗流场分析时定义初始孔隙水压力分析可采用UPOREP 用户子程序;多孔介质初始孔隙度分布的定义可采用VOIDRI 用户子程序。

2.用户定义的边界条件利用此类子程序可以在结构分析或耦合分析时定义特殊类型的边界条件,如定义节点位移,定义分布机械载荷,定义流体流速和流量等。

例如:定义非均布的渗流流速和流量可采用DFLOW 和DFLUX 用户子程序,以及定义非均布的渗流系数可采用FLOW 用户子程序;定义特殊类型的位移边界可采用DISP 用户子程序;定义特殊类型分布的面力载荷可采用DLOAD 子程序;定义特殊分布的牵引力可采用UTRACLOAD 子程序;定义温度场边界的UTEMP 子程序。

3.用户定义的材料特性和本构关系利用此类子程序可以定义各种本构模型,如各向异性或正交各向异性的弹性应力-应变关系,各种非线性弹塑性本构关系、也可以定义蠕变应变率演化方程、定义非线性应力-应变关系,定义加工硬化或应变硬化曲线等。

abaqus复合材料失效子程序

abaqus复合材料失效子程序

abaqus复合材料失效子程序摘要:一、引言1.复合材料的概念和应用背景2.abaqus 软件在复合材料失效分析中的重要性二、abaqus 复合材料失效子程序介绍1.子程序的定义和功能2.子程序的输入和输出参数3.子程序在abaqus 中的调用方法三、abaqus 复合材料失效子程序的使用方法1.材料属性的设置2.边界条件和加载条件的设定3.求解器和求解设置4.后处理工具在失效分析中的应用四、abaqus 复合材料失效子程序在实际工程中的应用1.应用案例一:复合材料梁的失效分析2.应用案例二:复合材料壳体的失效分析3.应用案例三:复合材料连接件的失效分析五、结论1.abaqus 复合材料失效子程序的优势和局限性2.未来发展趋势和前景正文:一、引言随着科技的发展,复合材料在航空航天、汽车制造、建筑结构等领域的应用越来越广泛。

复合材料具有轻质、高强、耐腐蚀等优点,但同时也存在着材料失效问题。

为了确保复合材料结构的安全性能,失效分析显得尤为重要。

abaqus 是一款强大的有限元分析软件,可以对复合材料进行失效分析。

本文将详细介绍abaqus 复合材料失效子程序的使用方法和应用案例。

二、abaqus 复合材料失效子程序介绍abaqus 复合材料失效子程序是基于abaqus 软件开发的,用于分析复合材料在各种工况下的失效行为。

该子程序集成了多种失效准则,可以分析包括纤维断裂、基体开裂、分层等在内的复合材料失效模式。

用户可以通过该子程序得到复合材料失效时的应力、应变、能量等数据,为结构设计提供依据。

三、abaqus 复合材料失效子程序的使用方法1.材料属性的设置:首先需要定义复合材料的各向异性属性,包括纤维和基体的弹性模量、泊松比、密度等。

2.边界条件和加载条件的设定:根据实际工况设置边界位移、固定约束、加载条件等。

3.求解器和求解设置:选择合适的求解器和求解设置,确保求解过程稳定且收敛。

4.后处理工具在失效分析中的应用:通过abaqus 的后处理工具,可以直观地观察到复合材料失效过程的应力、应变分布,以及失效模式。

《2024年ABAQUS用户材料子程序开发及应用》范文

《2024年ABAQUS用户材料子程序开发及应用》范文

《ABAQUS用户材料子程序开发及应用》篇一一、引言ABAQUS是一款广泛应用的工程仿真软件,可用于分析复杂的工程问题,包括结构力学、热传导、流体流动等多个领域。

其中,用户材料子程序(User Material Subroutine)是ABAQUS软件中用于描述材料行为的重要部分。

通过编写用户材料子程序,用户可以自定义材料的本构关系和物理属性,以满足特定仿真需求。

本文将介绍ABAQUS用户材料子程序的开发方法及其应用。

二、ABAQUS用户材料子程序开发1. 需求分析在开发ABAQUS用户材料子程序之前,首先需要对所研究的问题进行深入的需求分析。

这包括确定所使用的材料类型、材料的本构关系、物理属性等关键信息。

同时,还需要考虑所使用材料在不同条件下的性能变化以及可能出现的复杂行为。

2. 编程语言及工具ABAQUS提供了多种编程语言用于编写用户材料子程序,如Fortran、C++等。

用户可以根据自己的编程习惯和需求选择合适的编程语言。

此外,还需要使用相应的编译器和开发环境进行编译和调试。

3. 编写用户材料子程序在编写用户材料子程序时,需要遵循ABAQUS的编程规范和接口要求。

具体而言,需要定义材料的本构关系、物理属性等关键信息,并编写相应的计算过程和算法。

此外,还需要注意程序的稳定性和效率问题。

4. 调试与测试在完成用户材料子程序的编写后,需要进行调试和测试。

这包括检查程序的语法错误、逻辑错误等问题,并进行单元测试和整体测试。

同时,还需要对仿真结果进行验证和分析,确保所编写的用户材料子程序能够满足实际需求。

三、ABAQUS用户材料子程序的应用1. 金属材料仿真ABAQUS用户材料子程序可广泛应用于金属材料的仿真分析。

例如,在金属塑性成形过程中,可以通过编写用户材料子程序来描述金属的塑性行为、弹性行为等关键信息。

这有助于提高仿真精度和效率,为金属成形工艺的优化提供有力支持。

2. 复合材料仿真复合材料因其具有优异的性能而被广泛应用于航空、航天、汽车等领域。

ABAQUS材料用户子程序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 子程序 简单案例

abaqus 子程序 简单案例

abaqus 子程序简单案例1. 案例一:ABAQUS子程序在计算机辅助工程中的应用在计算机辅助工程中,ABAQUS子程序是一种被广泛应用的工具,用于求解各种复杂的物理问题。

它可以在ABAQUS有限元软件中调用,通过编写用户自定义的子程序来实现特定的功能。

下面将介绍一些常见的ABAQUS子程序案例。

2. 案例二:ABAQUS子程序在材料力学中的应用ABAQUS子程序在材料力学中的应用非常广泛。

例如,可以通过自定义的子程序来模拟材料的非线性行为、塑性变形、断裂行为等。

通过在子程序中编写相应的材料本构模型和损伤模型,可以准确地预测材料的力学性能。

3. 案例三:ABAQUS子程序在流体力学中的应用ABAQUS子程序在流体力学中也有重要的应用。

例如,可以通过自定义的子程序来模拟流体的非牛顿性、多相流动、湍流等现象。

通过在子程序中编写相应的流体本构模型和湍流模型,可以准确地模拟流体的流动行为。

4. 案例四:ABAQUS子程序在结构力学中的应用ABAQUS子程序在结构力学中也非常有用。

例如,可以通过自定义的子程序来模拟结构的非线性行为、接触和摩擦、动力响应等。

通过在子程序中编写相应的结构本构模型和接触模型,可以准确地预测结构的力学性能。

5. 案例五:ABAQUS子程序在热传导中的应用ABAQUS子程序在热传导中的应用也非常广泛。

例如,可以通过自定义的子程序来模拟材料的热传导行为、热辐射、相变等。

通过在子程序中编写相应的热传导模型和相变模型,可以准确地预测材料的热学性能。

6. 案例六:ABAQUS子程序在电磁场中的应用ABAQUS子程序在电磁场中的应用也有一定的研究价值。

例如,可以通过自定义的子程序来模拟电磁场的非线性行为、磁饱和、电磁感应等。

通过在子程序中编写相应的电磁场模型和电磁感应模型,可以准确地模拟电磁场的行为。

7. 案例七:ABAQUS子程序在声学中的应用ABAQUS子程序在声学领域中也有一定的应用。

Abaqus材料用户子程序UMAT基础知识及手册例子完整解释

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复合材料失效子程序

abaqus复合材料失效子程序

abaqus复合材料失效子程序摘要:1.复合材料失效子程序概述2.复合材料失效机制3.abaqus中复合材料失效子程序的编写4.应用案例及分析5.总结与展望正文:一、复合材料失效子程序概述复合材料因其优异的力学性能、轻质和高耐疲劳性等特点在各个领域得到了广泛应用。

然而,复合材料的失效分析一直是工程界面临的挑战。

为了更好地预测复合材料的失效行为,本文将介绍如何编写abaqus复合材料失效子程序。

二、复合材料失效机制复合材料的失效机制主要包括以下几点:1.纤维断裂:当复合材料中的纤维承受超过其拉伸强度或剪切强度时,纤维将发生断裂。

2.基体开裂:基体材料在受到外部载荷作用时,可能发生开裂,导致复合材料失效。

3.界面失效:当复合材料中的纤维与基体间的界面结合力不足以承受外部载荷时,界面发生失效。

4.宏观破裂:复合材料在受到外部载荷作用时,可能发生宏观破裂,导致整体失效。

三、abaqus中复合材料失效子程序的编写在abaqus中,可以通过编写复合材料失效子程序来实现对复合材料失效行为的模拟。

具体步骤如下:1.定义材料属性:根据复合材料的组成及性能,定义纤维、基体和界面的材料属性。

2.创建模型:建立复合材料的有限元模型,包括几何形状、边界条件和载荷。

3.编写失效子程序:根据复合材料的失效机制,编写相应的失效子程序。

例如,可以采用用户自定义的应力或应变作为失效判据。

4.求解:应用abaqus求解器,对复合材料模型进行求解。

5.后处理:分析失效模式、失效位置及失效原因。

四、应用案例及分析以下为一个复合材料梁的失效分析案例:1.建立模型:创建一个复合材料梁模型,考虑边界条件及外部载荷。

2.定义材料属性:设置纤维、基体和界面的材料属性。

3.编写失效子程序:根据实验数据,设置失效判据为纤维拉伸强度。

4.求解:对模型进行求解,得到失效模式及失效位置。

5.分析:分析失效原因,发现纤维强度不足是导致失效的主要原因。

五、总结与展望通过编写abaqus复合材料失效子程序,可以有效地预测复合材料的失效行为。

《2024年ABAQUS用户材料子程序开发及应用》范文

《2024年ABAQUS用户材料子程序开发及应用》范文

《ABAQUS用户材料子程序开发及应用》篇一一、引言随着计算机技术的迅猛发展,有限元分析软件在工程领域的应用越来越广泛。

ABAQUS作为一款功能强大的有限元分析软件,其在材料模拟、结构分析、热传导等方面具有广泛的应用。

其中,用户材料子程序的开发是ABAQUS功能的重要组成部分,它允许用户根据实际需求自定义材料模型,提高模拟的准确性和可靠性。

本文将介绍ABAQUS用户材料子程序的开发流程、应用领域及实际案例。

二、ABAQUS用户材料子程序开发流程1. 需求分析:明确材料模型的需求和特点,确定子程序的类型(如弹塑性、蠕变等)。

2. 理论建模:根据需求,建立相应的数学模型和物理模型。

3. 编程实现:使用ABAQUS提供的编程接口(如Fortran、C++等),编写用户材料子程序。

4. 调试与验证:对编写的子程序进行调试和验证,确保其正确性和可靠性。

5. 集成与测试:将子程序集成到ABAQUS中,进行整体测试,确保模拟结果的准确性。

三、ABAQUS用户材料子程序应用领域1. 金属材料:用户材料子程序可用于模拟金属的弹塑性、蠕变、疲劳等行为。

2. 聚合物材料:用于模拟聚合物材料的粘弹性、蠕变、塑性等行为。

3. 复合材料:用于模拟复合材料的力学性能和损伤演化等行为。

4. 高温超导材料:用于模拟高温超导材料的电性能和磁性能等行为。

四、实际案例分析以金属材料的弹塑性行为为例,介绍ABAQUS用户材料子程序的开发及应用。

1. 需求分析:金属材料在受到外力作用时,会表现出弹性和塑性行为。

为了更准确地模拟这一行为,需要开发一个弹塑性用户材料子程序。

2. 理论建模:根据金属的弹塑性理论,建立相应的数学模型和物理模型。

包括弹性阶段、屈服阶段和塑性流动阶段的描述。

3. 编程实现:使用Fortran或C++编写用户材料子程序,实现模型的数学描述。

4. 调试与验证:对编写的子程序进行调试和验证,确保其正确性和可靠性。

可以通过对比实验数据和模拟结果来验证子程序的准确性。

abaqus使用自定义材料umat子程序时出现ifort.exe问题解决方法

abaqus使用自定义材料umat子程序时出现ifort.exe问题解决方法

下方法适用于Abaqus v6.6 v6.7 v6.8 v6.9想要在ABAQUS里用子程序,必须安装Intel Visual Fortran,而安装Intel Visual Fortran前需要安装Microsoft Visual Studio,做好相关设置后通过Abaqus V erification测试子程序以及其他ABAQUS功能是否能正常使用。

子程序通过验证方法:1:先安装Microsoft Visual Studio(英文版),然后安装Intel Visual Fortran(若为64位系统,两个软件都选择自定义安装,勾上64位系统支持项)2:右键点击Abaqus V erification快捷方式,选择“属性”,在“目标”中的内容前面加上"X:\yourdir\Intel\Compiler\Fortran\$version$\IA32\Bin\i fortvars.bat" && (注意&&后有个空格,还要注意路径用双引号括起来,64位系统为"...\$version$\em64t\bin\ifortvars.bat" && )3:双击此Abaqus V erification快捷方式进行验证(必须先启动ABAQUS license)说明:1:ABAQUS先装后装都可以,没有影响,若已装上ABAQUS可不必卸载,完成以上步骤即可。

2:X:\yourdir为Fortran安装位置,$version$为版本号,比如我的Fortran 10.1.030装在了C:\Program Files,ABAQUS6.9装在了D:\ABAQUS6.9,则在Abaqus V erification快捷方式“目标”中的全部内容为:"C:\ProgramFiles\Intel\Compiler\Fortran\10.1.030\IA32\Bin\ifortvars .bat" && D:\ABAQUS6.9\Commands\abq691.bat -verify -all -log && notepad.exe verify.log || notepad.exe verify.log(本质上就是要把IVF的初始化文件ifortvars.bat找到,并和其路径一起添加进快捷方式,使点击此快捷方式时会先自动运行ifortvars.bat,进行环境变量的临时自动设置)若需要在Abaqus CAE或Abaqus Command中使用子程序,使用以下两种方法都可以:1)使用之前所述同样的方法修改其快捷方式,仅需修改一次,以后使用直接点击即可。

abaqus复合材料larc05失效准则umat子程序开发的相关案例教程

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用hashin子程序的材料参数-解释说明

abaqus用hashin子程序的材料参数-解释说明

abaqus用hashin子程序的材料参数-概述说明以及解释1.引言1.1 概述概述部分的内容可以涵盖以下方面:概述部分主要介绍本篇长文的背景和整体内容,向读者提供一个整体的认识和预期。

具体内容可以包括以下几个方面:1. 背景介绍:介绍ABAQUS软件及其在工程领域的应用。

概述ABAQUS是一款广泛应用于结构、土木、力学等领域的有限元分析软件,它可以对结构的力学性能进行模拟和预测,为工程设计和优化提供支持。

2. Hashin子程序的概述:简要介绍Hashin子程序在ABAQUS中的作用和重要性。

Hashin子程序是ABAQUS中用于模拟复合材料破坏行为的子程序,可以对复合材料的破坏过程进行可靠的分析和预测。

3. 目标和意义:说明本篇长文的目标和意义。

具体可以介绍本文将重点讨论ABAQUS中使用Hashin子程序时的材料参数,通过对材料参数的研究和优化,提高模拟结果的准确性和可靠性,为工程实际应用提供更好的支持。

通过概述部分的介绍,读者可以对本篇长文的背景和内容有一个初步的了解,为后续的正文部分提供一个逻辑和认知的框架。

同时,也可以激发读者对于ABAQUS和材料参数研究方面的兴趣,增加读者对本文的阅读欲望。

1.2文章结构1.2 文章结构本文总共分为三个主要部分,即引言、正文和结论。

每个部分都有特定的目标和内容。

在引言部分,我们将提供一些简要的背景信息,并对本文的目的进行概述。

我们将介绍ABAQUS软件及其在工程领域中的应用,并对Hashin 子程序进行概述。

此外,我们还将强调材料参数对于使用Hashin子程序的重要性。

在正文部分,我们将详细介绍ABAQUS软件的基本原理和功能,并对Hashin子程序进行详细说明。

我们将解释该子程序的工作原理以及如何在ABAQUS中使用它来进行材料参数分析。

我们还将探讨不同材料参数的意义和影响,以及如何选择合适的参数来实现预期的仿真效果。

最后,在结论部分,我们将总结整篇文章的主要内容和发现。

abaqus复合材料失效子程序

abaqus复合材料失效子程序

abaqus复合材料失效子程序(原创实用版)目录1.Abaqus 简介2.复合材料失效子程序的作用3.Abaqus 复合材料失效子程序的实施步骤4.Abaqus 复合材料失效子程序的应用案例5.总结正文一、Abaqus 简介Abaqus 是一款广泛应用于工程领域的有限元分析软件,它提供了强大的分析功能和灵活的模型设计能力,帮助工程师们解决各种复杂的工程问题。

在 Abaqus 中,用户可以通过定义材料属性、几何模型、边界条件和求解参数等,完成对模型的搭建和求解。

二、复合材料失效子程序的作用在 Abaqus 中,复合材料失效子程序主要用于分析复合材料在受力过程中可能出现的失效模式,例如拉伸、压缩、弯曲和剪切等。

通过失效子程序,工程师们可以更好地了解复合材料的性能和寿命,从而为材料设计和结构优化提供理论依据。

三、Abaqus 复合材料失效子程序的实施步骤1.创建几何模型:首先,根据所需分析的结构特点,在 Abaqus 中创建相应的几何模型。

2.定义材料属性:选择适当的材料类型,并输入复合材料的各项性能参数,如弹性模量、泊松比、强度等。

3.设置边界条件和求解参数:根据实际工程需求,为模型设置合适的边界条件和求解参数,如固定约束、对称条件、求解算法等。

4.编写失效子程序:在 Abaqus 中创建失效子程序,用于判断复合材料在受力过程中是否发生失效。

失效子程序一般包括以下几个部分:(1)失效判据:根据复合材料的失效标准,编写相应的失效判据函数。

(2)损伤参数:定义损伤参数,用于描述复合材料的损伤程度。

(3)损伤函数:根据失效判据和损伤参数,编写损伤函数。

(4)失效检查:在求解过程中,通过调用失效子程序,检查复合材料是否发生失效。

5.运行求解:根据设置的边界条件和求解参数,运行 Abaqus 求解器,得到模型的应力和损伤情况。

6.后处理:对计算结果进行后处理,提取感兴趣的参数,如应力分布、损伤演化等。

四、Abaqus 复合材料失效子程序的应用案例Abaqus 复合材料失效子程序广泛应用于航空航天、汽车工程、能源等领域。

Abaqus材料用户子程序UMAT基础知识及手册例子完整解释

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 )而已。

21ABAQUS用户材料子程序_1502407

21ABAQUS用户材料子程序_1502407

21 ABAQUS用户材料子程序(UMAT)虽然ABAQUS为用户提供了大量的单元库和求解模型,使用户能够利用这些模型处理绝大多数的问题;但是实际问题毕竟非常复杂,ABAQUS不可能直接求解所有可能出现的问题。

所以ABAQUS提供了大量的用户自定义子程序(User Subroutine),允许用户在找不到合适模型的情况下自行定义符合自己问题的模型。

这些用户子程序涵盖了建模、载荷到单元的几乎各个部分。

用户子程序具有以下的功能和特点:(1)如果ABAQUS的一些固有选项模型功能有限,用户子程序可以提高ABAQUS中这些选项的功能;(2)通常用户子程序是用FORTRAN语言的代码写成;(3)它可以以几种不同的方式包含在模型中;(4)由于它们没有存储在restart文件中,如果需要的话,可以在重新开始运行时修改它;(5)在某些情况下它可以利用ABAQUS允许的已有程序。

要在模型中包含用户子程序,可以利用ABAQUS执行程序,在执行程序中应用user 选项指明包含这些子程序的FORTRAN源程序或者目标程序的名字。

提示:ABAQUS的输入文件除了可以通过ABAQUS/CAE的作业模块中提交运行外,还可以在ABAQUS Command窗口中输入ABAQUS执行程序直接运行:ABAQUS job=输入文件名 user=用户子程序的Fortran文件名ABAQUS/Standard和ABAQUS/Explicit都支持用户子程序功能,但是他们所支持的用户子程序种类不尽相同,读者在需要使用时请注意查询手册。

在接下来的两章里,我们将讨论两种常用的用户子程序——用户材料子程序和用户单元子程序。

本章将通过在ABAQUS/Standard中创建Johnson-Cook的材料模型,介绍编写ABAQUS/Standard的用户材料子程序UMAT。

在ABAQUS/Explicit中编写用户材料子程序VUMAT与之相似,但是由于隐式和显式两种方法本身的差异,它们之间也有一些不同,请读者在具体使用前仔细查阅ABAQUS手册中的相关内容。

ABAQUS用户材料子程序UMAT介绍

ABAQUS用户材料子程序UMAT介绍

(一)UMAT简介
用户可以定义包括:边界条件、荷载条件、 接触条件、材料特性以及利用用户子程序 和其它应用软件进行数值交换等等。这些 用户子程序接口使得用户解决一些问题时 有很大的灵活性,同时大大的扩充了 ABAQUS 的功能。
(一)UMAT简介
通过用户材料子程序(User-defined Material Mechanical Behavior,简称UMAT) 接口,用户可定义任何补充的材料模型, 不但任意数量的材料常数都可以作为资料 被读取,而且ABAQUS 对于任何数量的与 解相关的状态变量在每一材料计数点都提 供了存储功能,以便在这些子程序中应用。
(四)子程序的调用
将这两个文件拷贝到分析目录D:>Temp下,将 子程序的后缀改为.for,然后在D:\Temp下面 用运行 在command中: abaqus job=your job name user=your umat


在cae中调用子程序可以采用以下方法:打开 job下面的edit菜单,点general,点击user subroutine后面的select,即可选择你所需要的 用户子程序。


PROPS(NPROPS)材料常数矩阵,矩阵中 元素的数值对应于关键字“*USER MATERIAL”下面的数据行。 SSE , SPD , SCD分别定义每一增量步 的弹性应变能,塑性耗散和蠕变耗散。 它们对计算结果没有影响,仅仅作为能 量输出。
(三)编程思路
其他变量: STRAN ( NTENS ) :应变矩阵; DSTRAN ( NTENS ) :应变增量矩阵; DTIME :增量步的时间增量; NDI :直接应力分量的个数; NSHR :剪切应力分量的个数; NTENS :总应力分量的个数, NTENS = NDI + NSHR 。

ABAQUS用户材料子程序开发及应用

ABAQUS用户材料子程序开发及应用

ABAQUS用户材料子程序开发及应用ABAQUS用户材料子程序开发及应用摘要:本文介绍了ABAQUS用户材料子程序的开发与应用。

首先,简要介绍了ABAQUS软件及其在工程领域的广泛应用。

然后,详细阐述了用户材料子程序的概念及作用,并介绍了子程序的开发流程和必要步骤。

接着,以一个具体的材料模型开发为例,详细介绍了子程序的实现方法和注意事项。

最后,以轴对称挤压模拟为例,展示了用户材料子程序在实际工程分析中的应用,并讨论了其优点和局限性。

关键词:ABAQUS;用户材料子程序;开发;应用一、引言ABAQUS是一款广泛应用于工程领域的有限元分析软件。

其强大的建模和分析能力使得工程师可以准确地模拟和分析各种结构和材料的行为。

然而,对于一些非标准材料或特殊材料,ABAQUS自带的材料模型可能无法满足工程师的需求。

此时,用户材料子程序的开发就显得尤为重要。

二、用户材料子程序的概念及作用用户材料子程序是指由ABAQUS用户自行编写的用于描述非标准材料行为的子程序。

它可以根据特定的材料性质和应变-应力关系,定义材料模型的行为,并将其与ABAQUS的有限元分析过程相结合。

通过用户材料子程序,工程师可以更加准确地模拟和分析特殊材料的行为,提高分析结果的可靠性和准确性。

三、用户材料子程序的开发流程和步骤用户材料子程序的开发包括以下几个基本步骤:1. 确定材料模型:根据实际需要和具体材料的性质,选择合适的材料模型。

常见的模型包括线弹性模型、塑性模型、粘弹性模型等。

2. 编写用户材料子程序:使用合适的编程语言(如Fortran)编写用户材料子程序,实现材料模型的行为。

子程序应包括材料刚度矩阵计算、应力和塑性应变更新等关键计算部分。

3. 软件接口设置:将编写好的用户材料子程序与ABAQUS 软件进行接口设置,以实现子程序与有限元分析的集成。

4. 验证与调试:使用合适的测试用例对子程序进行验证和调试,确保其计算结果与实际情况吻合。

第10章 ABAQUS用户材料子程序二次开发及应用

第10章  ABAQUS用户材料子程序二次开发及应用
下面对 UMAT 中用到的一些变量进行说明:
DDSDDE (NTENS NTENS):一个 NTENS×NTENS 的矩阵,称作 Jacobian 矩阵,即 ∂σ ,Δσ ∂ε
是应力的增量, Δε 是应变的增量,DDSDDE(i,j)表示增量步结束时第 j 个应变分量的改变引起的
第 i 个应力分量的变化。通常 Jacobian 矩阵是一个对称矩阵,除非在“*USER MATERIAL”语句 中加入了“UNSYMM”参数。
STATEV (NSTATEV):用于存储与解有关的状态变量的数组,在增量步开始时将数值传递到 UMAT 中,也可在子程序 USDFLD 或 UEXPAN 中先更新数据,然后增量步开始时将更新后的资料 传递到 UMAT 中。在增量步的结束必须更新状态变量矩阵中的数据。和应力张量矩阵不同的是: 对于有限应变问题,除了材料本构行为引起的资料更新以外,与解有关的状态变量矩阵中的任何向 量或者张量都必须通过旋转来考虑材料的刚体运动。状态变量矩阵的维数通过 ABAQUS 输入文件 中的关键词“*DEPVAR”定义,关键词下面数据行的数值即为状态变量矩阵的维数。
10.1.1 ABAQUS 材料库
ABAQUS 具有完善的材料模型库可供选择,它定义了多种材料的本构关系及失效准则,包括: 1. 弹性 线弹性模型可以定义材料的模量、泊松比等弹性特征,具有多种典型失效理论,用于复合材料 结构分析多孔结构弹性模型;用于模拟土壤和可挤压泡沫的弹性行为亚弹性模型;可以考虑应变对 弹性的影响超弹性模型;模拟橡胶类材料的大变形影响粘弹性模型。 2. 塑性 符合 Mises 屈服准则的各向同性和遵循 Hill 屈服准则的各向异性塑性模型;拉伸为 Rankine 屈 服准则,压缩为 Mises 屈服准则的考虑时间硬化和应变硬化的各向同性和各向异性蠕变模型; Drucker-Prager 模型适合于土等粒状材料的模型;Capped Drucker-Prager 模型,适合于地质、隧道

abaqus材料子程序

abaqus材料子程序

abaqus材料子程序DGX=PROPS(6) !Fracture energy in matrix ETA=0.001C Current strainDO I = 1, NTENSSTRANT(I) = STRAN(I) + DSTRAN(I)END DOC StiffnessDO I = 1, 6DO J = 1, 6C(I,J)=ZEROEND DOEND DOATEMP = (1+V12)*(1-TWO*V12)C(1,1) = E11*(1-V12)/ATEMPC(2,2) = E11*(1-V12)/ATEMPC(3,3) = E11*(1-V12)/ATEMPC(1,2) = E11*V12/ATEMPC(1,3) = E11*V12/ATEMPC(2,3) = E11*V12/ATEMPC(4,4) = G12C(5,5) = G12C(6,6) = G12DO I = 2, 6DO J = 1, I-1C(I,J) = C(J,I)END DOEND DOC Critical values of strainsXET=XT/(C(1,1)-2*V12*C(1,2))XEC=XC/(C(1,1)-2*V12*C(1,2))XES=XS/C(4,4)DMOLD = STATEV(1)C Strain initiation criterionA11 = STRANT(1)**TWO+STRANT(2)**TWO+STRANT(3)**TWOA12 = A11 / XET / XECA21 = STRANT(1)+STRANT(2)+STRANT(3)A22 = (XEC - XET) / XEC / XET * A21A31 = STRANT(4)**TWO+STRANT(5)**TWO+STRANT(6)**TWOA32 = A31 / XES**TWOA1= A12 + A22 + A32C B11 = STRANT(2)**TWOC B12 = B11 / XET / XECC B21 = STRANT(2)C B22 = (XEC - XET) / XEC / XET * B21 C B31 = STRANT(5)**TWOC B32 = B31 / XES**TWOC B1= B12 + B22 + B32C C11 = STRANT(3)**TWOC C12 = C11 / XET / XECC C21 = STRANT(3)C C22 = (XEC - XET) / XEC / XET * C21 C C31 = STRANT(6)**TWOC C32 = C31 / XES**TWOC C1= C12 + C22 + C32STATEV(2)=A1C STATEV(3)=B1C STATEV(4)=C1FMN = ZEROIF (A1.GT.ZERO) THENFMN =SQRT(A1)C IF (B1.GT.ONE) THENC FMN =FMN+SQRT(B1)C IF(C1.GT.ONE) THENC FMN =FMN+SQRT(C1)C END IFC END IFEND IFSTATEV(5)=FMNC write(*,*) FMNDM = ZERODDMDFMN = ZERODO I = 1, 6DFMNDE(I) = ZERODDMDE(I) = ZEROEND DOIF (FMN .GT. ONE) THENC CALCULATE DM, DDMDFMNC WRITE(6,*)FMNT1 = (C(1,1)-2*V12*C(1,2)) * XET**2 * CELENT / GXT2 = (ONE - FMN) * T1DM = ONE - EXP(T2)/FMNC WRITE(6,*)'T1 ',T1,' T2', T2, ' DM', DMC write(*,*) DMC CALCULATE THE DERIVATIVE OF DAMAGE VARIABLE WITH RESPECT TO FAILUREC RITERIONDDMDFMN = (ONE / FMN + T1) * (ONE - DM)C CALCULATE DFMNDEIF (DM .GT. DMOLD) THENDFMNDE(1) = HALF/FMN*(TWO*STRANT(1)+XEC-XET)/XET/XECDFMNDE(2) = HALF/FMN*(TWO*STRANT(2)+XEC-XET)/XET/XECDFMNDE(3) = HALF/FMN*(TWO*STRANT(3)+XEC-XET)/XET/XECDFMNDE(4) = ONE/FMN*TWO*STRANT(4)/XES**TWODFMNDE(5) = ONE/FMN*TWO*STRANT(5)/XES**TWODFMNDE(6) = ONE/FMN*TWO*STRANT(6)/XES**TWODO I = 1, 6DDMDE(I) = DFMNDE(I) * DDMDFMN END DOEND IFEND IFDM = MAX (DM, DMOLD)C write(6,*) DMC SAVE THE OLD STRESS TO OLD_STRESSDO I = 1, NTENSOLD_STRESS(I) = STRESS(I)END DOC Effective stiffnessDO I = 1, 6DO J = 1, 6CD(I,J)=C(I,J)END DOEND DOIF (DM.NE.ZERO) THENCD(1,1) = (ONE - DM)*C(1,1)CD(1,2) = (ONE - DM)*C(1,2)CD(2,1) = CD(1,2)CD(2,2) = (ONE - DM)*C(2,2)CD(1,3) = (ONE - DM)*C(1,3)CD(2,3) = (ONE- DM)*C(2,3) CD(3,2) = CD(2,3)CD(4,4) = (ONE - DM)*C(4,4) CD(5,5) = (ONE - DM)*C(5,5) CD(6,6) = (ONE - DM)*C(5,5) END IFC Elastic derivativeDO I = 1, 6DO J = 1, 6DCDDM(I,J) = ZEROEND DOEND DOCC CALCULATE DC/DDMCDCDDM(1,1) = -C(1,1)DCDDM(1,2) = -C(1,2)DCDDM(2,1) = -C(2,1)DCDDM(2,2) = -C(2,2)DCDDM(2,3) = -C(2,3)DCDDM(3,3) = -C(3,3)DCDDM(3,1) = -C(3,1)DCDDM(1,3) = -C(1,3)DCDDM(4,4) = -C(4,4)DCDDM(5,5) = -C(5,5)DCDDM(6,6) = -C(6,6)C UPDATE THE JACOBIANDO I = 1, NTENSATEMP1(I) = ZERODO J = 1, NTENSATEMP1(I) = ATEMP1(I) + DCDDM(I,J) * STRANT(J)END DOEND DODDSDDE=0DO I = 1, NTENSDO J = 1, NTENSDDSDDE(I,J)=CD(I,J)+(ATEMP1(I)*DDMDE(J))*DTIME/(DTI ME+ETA)END DOEND DOC Update stressesDO I = 1, NTENSSTRESS(I)=ZERODO J = 1, NTENSC IF(DM.LT.0.5) THENSTRESS(I)=STRESS(I)+ CD(I,J) * STRANT(J) C ELSEC STRESS(I)=STRESS(I)+ CD(I,J) * STRANT(J) * (1-DM)C ENDIFEND DOEND DOC EnergyDO I = 1, NDISSE = SSE + HALF * (STRESS(I) + OLD_STRESS(I)) * DSTRAN(I)END DODO I = NDI+1, NTENSSSE = SSE + (STRESS(I) + OLD_STRESS(I)) * DSTRAN(I)END DOSTATEV(1)=DMRETURNEND。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

各向同性材料损伤本构模型SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,+ RPL,DDSDDT,DRPLDE,DRPLDT,+ STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME, + NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT, + CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)INCLUDE 'ABA_PARAM.INC'CHARACTER*80 CMNAMEDIMENSION STRESS(NTENS),STATEV(NSTATV),+ DDSDDE(NTENS,NTENS),DDSDDT(NTENS),+ DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS),+ TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),+ COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)DIMENSION STRANT(6),TSTRANT(4),PT(1)DIMENSION OLD_STRESS(6)DIMENSION DOLD_STRESS(6),D_STRESS(6)DIMENSION C(6,6),CD(6,6),DSTRESS(6),BSTRESS(6),ROOT(3),+ DFMNDE(6),DDMDE(6),DCDDM(6,6),ATEMP1(6), ATEMP2(6)PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,FOUR=4.D0,HALF = 0.5D0) C startC IF (NPROPS.LT.2) THENC WRITE(7,*) '** ERROR: UMAT REQUIRES *NPROPS=2'C STOPC END IFE11 =PROPS(1)V12 =PROPS(2)G12 =PROPS(1)/TWO/(ONE+PROPS(2))C Critical values of stressesXT=PROPS(3)XC=PROPS(4)XS=PROPS(5)GX=PROPS(6) !Fracture energy in matrixETA=0.001C Current strainDO I = 1, NTENSSTRANT(I) = STRAN(I) + DSTRAN(I)END DOC StiffnessDO I = 1, 6DO J = 1, 6C(I,J)=ZEROEND DOEND DOATEMP = (1+V12)*(1-TWO*V12)C(1,1) = E11*(1-V12)/ATEMPC(2,2) = E11*(1-V12)/ATEMPC(3,3) = E11*(1-V12)/ATEMPC(1,2) = E11*V12/ATEMPC(1,3) = E11*V12/ATEMPC(2,3) = E11*V12/ATEMPC(4,4) = G12C(5,5) = G12C(6,6) = G12DO I = 2, 6DO J = 1, I-1C(I,J) = C(J,I)END DOEND DOC Critical values of strainsXET=XT/(C(1,1)-2*V12*C(1,2))XEC=XC/(C(1,1)-2*V12*C(1,2))XES=XS/C(4,4)DMOLD = STATEV(1)C Strain initiation criterionA11 = STRANT(1)**TWO+STRANT(2)**TWO+STRANT(3)**TWOA12 = A11 / XET / XECA21 = STRANT(1)+STRANT(2)+STRANT(3)A22 = (XEC - XET) / XEC / XET * A21A31 = STRANT(4)**TWO+STRANT(5)**TWO+STRANT(6)**TWOA32 = A31 / XES**TWOA1= A12 + A22 + A32C B11 = STRANT(2)**TWOC B12 = B11 / XET / XECC B21 = STRANT(2)C B22 = (XEC - XET) / XEC / XET * B21C B31 = STRANT(5)**TWOC B32 = B31 / XES**TWOC B1= B12 + B22 + B32C C11 = STRANT(3)**TWOC C12 = C11 / XET / XECC C21 = STRANT(3)C C22 = (XEC - XET) / XEC / XET * C21C C31 = STRANT(6)**TWOC C32 = C31 / XES**TWOC C1= C12 + C22 + C32STATEV(2)=A1C STATEV(3)=B1C STATEV(4)=C1FMN = ZEROIF (A1.GT.ZERO) THENFMN =SQRT(A1)C IF (B1.GT.ONE) THENC FMN =FMN+SQRT(B1)C IF(C1.GT.ONE) THENC FMN =FMN+SQRT(C1)C END IFC END IFEND IFSTATEV(5)=FMNC write(*,*) FMNDM = ZERODDMDFMN = ZERODO I = 1, 6DFMNDE(I) = ZERODDMDE(I) = ZEROEND DOIF (FMN .GT. ONE) THENC CALCULATE DM, DDMDFMNC WRITE(6,*)FMNT1 = (C(1,1)-2*V12*C(1,2)) * XET**2 * CELENT / GXT2 = (ONE - FMN) * T1DM = ONE - EXP(T2)/FMNC WRITE(6,*)'T1 ',T1,' T2', T2, ' DM', DMC write(*,*) DMC CALCULATE THE DERIVATIVE OF DAMAGE VARIABLE WITH RESPECT TO FAILURE C RITERIONDDMDFMN = (ONE / FMN + T1) * (ONE - DM)C CALCULATE DFMNDEIF (DM .GT. DMOLD) THENDFMNDE(1) = HALF/FMN*(TWO*STRANT(1)+XEC-XET)/XET/XECDFMNDE(2) = HALF/FMN*(TWO*STRANT(2)+XEC-XET)/XET/XECDFMNDE(3) = HALF/FMN*(TWO*STRANT(3)+XEC-XET)/XET/XECDFMNDE(4) = ONE/FMN*TWO*STRANT(4)/XES**TWODFMNDE(5) = ONE/FMN*TWO*STRANT(5)/XES**TWODFMNDE(6) = ONE/FMN*TWO*STRANT(6)/XES**TWODO I = 1, 6DDMDE(I) = DFMNDE(I) * DDMDFMNEND DOEND IFEND IFDM = MAX (DM, DMOLD)C write(6,*) DMC SAVE THE OLD STRESS TO OLD_STRESSDO I = 1, NTENSOLD_STRESS(I) = STRESS(I)END DOC Effective stiffnessDO I = 1, 6DO J = 1, 6CD(I,J)=C(I,J)END DOEND DOIF (DM.NE.ZERO) THENCD(1,1) = (ONE - DM)*C(1,1)CD(1,2) = (ONE - DM)*C(1,2)CD(2,1) = CD(1,2)CD(2,2) = (ONE - DM)*C(2,2)CD(1,3) = (ONE - DM)*C(1,3)CD(3,1) = CD(1,3)CD(2,3) = (ONE- DM)*C(2,3)CD(3,2) = CD(2,3)CD(4,4) = (ONE - DM)*C(4,4)CD(5,5) = (ONE - DM)*C(5,5)CD(6,6) = (ONE - DM)*C(5,5)END IFC Elastic derivativeDO I = 1, 6DO J = 1, 6DCDDM(I,J) = ZEROEND DOEND DOCC CALCULATE DC/DDMCDCDDM(1,1) = -C(1,1)DCDDM(1,2) = -C(1,2)DCDDM(2,1) = -C(2,1)DCDDM(2,2) = -C(2,2)DCDDM(2,3) = -C(2,3)DCDDM(3,2) = -C(3,2)DCDDM(3,3) = -C(3,3)DCDDM(3,1) = -C(3,1)DCDDM(1,3) = -C(1,3)DCDDM(4,4) = -C(4,4)DCDDM(5,5) = -C(5,5)DCDDM(6,6) = -C(6,6)C UPDATE THE JACOBIANDO I = 1, NTENSATEMP1(I) = ZERODO J = 1, NTENSATEMP1(I) = ATEMP1(I) + DCDDM(I,J) * STRANT(J)END DOEND DODDSDDE=0DO I = 1, NTENSDO J = 1, NTENSDDSDDE(I,J)=CD(I,J)+(ATEMP1(I)*DDMDE(J))*DTIME/(DTIME+ETA) END DOEND DOC Update stressesDO I = 1, NTENSSTRESS(I)=ZERODO J = 1, NTENSC IF(DM.LT.0.5) THENSTRESS(I)=STRESS(I)+ CD(I,J) * STRANT(J)C ELSEC STRESS(I)=STRESS(I)+ CD(I,J) * STRANT(J) * (1-DM)C ENDIFEND DOEND DOC EnergyDO I = 1, NDISSE = SSE + HALF * (STRESS(I) + OLD_STRESS(I)) * DSTRAN(I) END DODO I = NDI+1, NTENSSSE = SSE + (STRESS(I) + OLD_STRESS(I)) * DSTRAN(I) END DOSTATEV(1)=DMRETURNEND。

相关文档
最新文档