ABAQUS用户子程序二次开发——UMAT介绍(一)

2024-03-07 12:12

本文主要是介绍ABAQUS用户子程序二次开发——UMAT介绍(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

个人专栏—ABAQUS专栏

  1. Abaqus2023的用法教程——与VS2022、oneAPI 2024子程序的关联方法 Abaqus2023的用法教程——与VS2022、oneAPI 2024子程序的关联方法
  2. Abaqus有限元分析——有限元网格划分基本原则 Abaqus有限元分析——有限元网格划分基本原则
  3. 各向同性线弹性材料本构模型umat的应用 各向同性线弹性材料本构模型umat的应用
  4. ABAQUS用户子程序二次开发——UMAT介绍(一) ABAQUS用户子程序二次开发——UMAT介绍(一)

文章目录


UMAT Fortran固定格式程序代码基本架构如下:

C *** SUBROUTINE UMAT(
C *** 子程序参数列 *********************C    1 STRESS, STATEV, DDSDDE, SSE, SPD, SCD,2 RPL, DDSDDT, DRPLDE, DRPLDT,3 STRAN, DSTRAN, TIME, DTIME, TEMP, DTEMP, PREDEF, DPRED, CMNAME,4 NDI, NSHR, NTENS, NSTATV, PROPS, NPROPS, COORDS, DROT, PNEWDT,5 CELENT, DFGRD0, DFGRD1, NOEL, NPT, LAYER, KSPT, JSTEP, KINC)
C *** 声明参数(预设)类型 *******************CINCLUDE 'ABA_PARAM.INC'
C *** **************************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), 4 JSTEP(4)
C *** 材料模型主程序************C
C   在这里书写高端、大气、上档次的模型代码
C ****************************CRETURNEND SUBROUTINE UMAT

UMAT程序参数分为三类:需定义参数、可更新参数和不可更新参数

需定义参数 \color{blue}需定义参数 需定义参数
  • DDSDDE(NTENS,NTENS):DDSDDE为雅可比矩阵,NTENS为材料元素对应的应力/应变的元素个数(如实体单元NTENS=6,壳体单元NTENS=3。
    • Abaqus/Standard内定假设并强制DDSDDE为对称矩阵,若想使用非对称材料刚度矩阵,须启用非对称矩阵求解器。
    • 在定义频率域黏弹性(viscoelastic)材料行为时,DDSDDE维度为(NTENS,NTENS,2), 其中DDSDDE(NTENS,NTENS,1)存放储存模量,DDSDDE(NTENS,NTENS,2)存放损失模量。
  • STRESS(NTENS):STRESS为柯西应力
  • STATEV(NSTATV):STATEV为因应计算需求所增加的材料状态变量,可用于储存应力与应变外所有材料状态变量(如塑性应变和应变硬化参数等)
  • RPL
    • 在热应力分析或热电结构耦合分析时,RPL代表材料运动做功所产生的热功率。
    • 静土应力场程序或搭配胶结元素的多孔介质中流体扩散与应力耦合分析时,RPL用于代表材料点所处胶结元素是否允许空隙流体的切线流通过。RPL为0代表没有切线流,反之RPL不为0。
  • DDSDDT(NTENS):应力增量对温度增量的变化率
  • DRPLDE(NTENS):RPL增量对应变增量的变化率矩阵
  • DRPLDT:RPL增量对温度增量的变化率(仅用于热固耦合分析或热电结构耦合分析)
可更新参数 \color{blue}可更新参数 可更新参数
  • SSE, SPD, SCD:分别为比弹性应变能、比塑性消散能和比蠕变消散能,此三者只作输出项,不影响分析结果
  • PNEWDT:分析步时间增量(DTIME)调整系数,其所相对应的新时间增量值为PNEWDT*DTIME
不可更新参数 \color{blue}不可更新参数 不可更新参数
  • STRAN(NTENS):应变
  • DSTRAN(NTENS):应变增量(不包含温度应变增量)
  • TIME(2):分析步开始时,单一分析流程中经历时间和各分析流程累积经历时间
  • DTIME:时间增量
  • TEMP:增量步开始时的温度
  • DTEMP:温度增量
  • PREDEF:增量步开始时,使用者定义的场域变量值
  • DPRED:场域变量增量
  • CMNAME:材料名称
  • NDI:表示应力张量中,主对角线上独立的应力个数。一般实体单元有3个独立分量,平面应力单元为2
  • NSHR:用来表示应力张量中,剪切应力部分的独立张量个数,一般实体单元有3个独立分量,平面应力单元有1个独立的剪切分量
  • NTENS:为NDI与NSHR之和
  • PROPS(NPROSP):用来储存用户定义的材料参数
  • NPROPS:用户自定义材料参数个数
  • COORDS:材料点坐标,若分析考虑几何非线性,其代表变形后的坐标
  • DROT(3,3):刚性和坐标轴的旋转量增量
  • CELENT:单元特征长度,使用一阶线性的形状函数时,在一维单元中特征长度为单元长度,在二维单元中为面积平方根,在三维单元中为体积立方根;当使用二阶形状函数时,单元特征长度为一阶时长度的一半
  • DFGRD0(3,3):增量步开始时变形梯度矩阵F
  • DFGRD1(3,3):增量步结束时变形梯度矩阵F
  • NOEL:单元编号
  • NPT:材料点编号
  • LAYER:复合壳体单元和层状实体单元的夹层编号
  • KSPT:材料点对应的断面编号
  • JSTEP:分析流程信息,包含四个整数值
    • 第一个为分析流程编号
    • 第二个为分析流程工作代码
    • 第三个指出此分析是否考虑几何非线性,1代表考虑,0代表没考虑
    • 第四个指出此分析流程是否为线性扰动相关分析,1代表是,0代表不是
  • KINC:增量步数,(不含ABAQUS求解的迭代步数)。

欢迎对Abaqus感兴趣的朋友们查看:Abaqus-UMAT开发精品书籍及umat子程序学习
在这里插入图片描述

Abaqus非线性粘弹性模型子程序umat——广义MAXWELL粘弹性模型umat解析(朱-王-唐本构模型)

在这里插入图片描述

如果你喜欢以上内容,或者对Abaqus学习有兴趣,欢迎收藏关注,博主将持续更新。你的关注、收藏是我持续创作的动力!

这篇关于ABAQUS用户子程序二次开发——UMAT介绍(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/783469

相关文章

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

mysql删除无用用户的方法实现

《mysql删除无用用户的方法实现》本文主要介绍了mysql删除无用用户的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 1、删除不用的账户(1) 查看当前已存在账户mysql> select user,host,pa

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb