第10章节 ABAQUS用户材料子程序二次开发及应用
ABAQUS-UMAT弹塑本构二次开发地实现

word前言有限元法是工程中广泛使用的一种数值计算方法。
它是力学、计算方法和计算机技术相结合的产物。
在工程应用中,有限元法比其它数值分析方法更流行的一个重要原因在于:相对与其它数值分析方法,有限元法对边界的模拟更灵活,近似程度更高。
所以,伴随着有限元理论以与计算机技术的开展,大有限元软件的应用证变得越来越普与。
ABAQUS软件一直以非线性有限元分析软件而闻名,这也是它和ANSYS,Nastran等软件的区别所在。
非线性有限元分析的用处越来越大,因为在所用材料非常复杂很多情况下,用线性分析来近似已不再有效。
比方说,一个复合材料就不能用传统的线性分析软件包进展分析。
任何与时间有关联,有较大位移量的情况都不能用线性分析法来处理。
多年前,虽然非线性分析能更适合、更准确的处理问题,但是由于当时计算设备的能力不够强大、非线性分析软件包线性分析功能不够健全,所以通常采用线性处理的方法。
这种情况已经得到了极大的改善,计算设备的能力变得更加强大、类似ABAQUS这样的产品功能日臻完善,应用日益广泛。
非线性有限元分析在各个制造行业得到了广泛应用,有不少大型用户。
航空航天业一直是非线性有限元分析的大客户,一个重要原因是大量使用复合材料。
新一代波音 787客机将全部采用复合材料。
只有像 ABAQUS这样的软件,才能分析包括多个子系统的产品耐久性能。
在汽车业,用线性有限元分析来做四轮耐久性分析不可能得到足够准确的结果。
分析汽车的整体和各个子系统的性能要求〔如悬挂系统等〕需要进展非线性分析。
在土木工程业, ABAQUS能处理包括混凝土静动力开裂分析以与沥青混凝土方面的静动力分析,还能处理高度复杂非线性材料的损伤和断裂问题,这对于大型桥梁结构,高层建筑的结构分析非常有效。
瞬态、大变形、高级材料的碰撞问题必须用非线性有限元分析来计算。
线性分析在这种情况下是不适用的。
以往有一些专门的软件来分析碰撞问题,但现在ABAQUS在通用有限元软件包就能解决这些问题。
ABAQUS二次开发在机构参数化建模及仿真的应用

文章编号:1674-9146(2016)02-0055-03应用有限元理论进行设计分析已经广泛应用到现代工业的方方面面,特别是材料科学、汽车、航空航天、兵器科学等。
目前各大工程分析软件公司陆续推出的有限元分析软件也给了人们越来越多的选择和便捷,其中ABAQUS 是较先进的非线性有限元分析软件,它提供了多种开发方式,应用自带的二次开发接口,用户根据自身的需要可以扩展单元类型库、材料类型库以及改善ABAQUS 的前后处理等功能。
随着计算机技术的发展,有限元软件在设计过程中的运用不断深化,火炮的设计已从以往的图纸设计升级到电脑制图,面对现代武器装备的复杂化,借助计算机技术,设计人员可便捷地对参数化的装备零件进行管理、修改和仿真分析。
1ABAQUS 的二次开发ABAQUS 的二次开发有多种途径,以下主要介绍其中的4种途径[1]:一是通过环境初始化文件改变ABAQUS 的缺省设置;二是ABAQUS 提供用户子程序接口,借助该用户子程序接口可以进行新模型开发的参数化建模和分析,通过自定义窗口界面控制ABAQUS 的计算过程和结果;三是ABAQUS 提供图形用户接口工具包(ABAQUS GUI Toolkit ),该工具包可以帮助用户创建交互式的窗口,便于用户查看新创建的模型和参数信息。
四是ABAQUS 为用户提供了脚本的接口(ABAQUS Script Interface ),调入的脚本会直接访问程序的内核,执行有限元分析的前处理建模、后处理计算分析和分析结果数据的查看。
1.1用户子程序在建模和有限元分析中,用户会用到各种单元和求解器,而在ABAQUS 的数据库中,为用户提供大量单元库和各类求解模型,借助信息庞大的数据库,能够为用户处理绝大多数问题。
尽管如此,ABAQUS 为了满足更多客户需求,还为用户提供了大量的子程序,为实现特定功能而创建合适的自定义模型。
在科学发展日新月异的今天,上述功能的应用加上ABAQUS 彪悍的有限元计算分析能力,为科研工作者提供了空前强大的有限元分析工具。
ABAQUS二次开发教程

ABAQUS(Python语言)二次开发人生苦短,我用Python作者:Fan Shengbao2017年12月目录第一章 Python程序基本语法 (1)1.1 Python语法结构 (1)1.2 Python元组 (1)1.3 Python列表 (2)1.4 Python字典 (3)1.5 Python集合 (3)1.6 Python字符串 (4)1.7 Python分支语句 (5)1.8 Python循环语句 (5)1.8.1for循环51.8.2while循环51.9 Python定义函数 (6)1.10 Python模块 (7)1.11 Python包 (7)1.12 Python文件和目录 (7)1.12.1 目录操作 (7)1.12.2 文件操作 (8)1.13 Python异常处理 (8)第二章 ABAQUS/Python二次开发 (9)2.1 ABAQUS执行Python程序 (9)2.2 编写ABAQUS/Python程序 (10)2.3 ABAQUS录制Python程序 (10)2.4 ABAQUS/Python对象介绍 (11)2.4.1 session对象 (11)2.4.2 mdb对象 (11)2.4.3 odb对象 (13)2.5 ABAQUS完整二次开发示例 (14)2.6 ABAQUS二次开发常用函数 (16)。
2.6.1 Part模块常用函数 (16)3ABAQUS(Python语言)二次开发教程第一章 Python程序基本语法1.1Python语法结构Python语言以缩进来约束每个程序块,编写程序时要特别注意每一行的缩进量,同一层次的语句应具有相同的缩进量。
下面是一段Python程序示例:#-*- coding:utf-8 -*-for i in range(1,10):for j in range(1,i+1):print str(j)+'x'+str(i)+' = '+str(i*j),print该段程序主要功能是实现乘法口诀表输出打印,其中“#-*- coding:utf-8 -*-”是约定文档的编码方式。
Abaqus二次开发

Abaqus二次开发——Abaqus/python入门体会入门实例#===========================================================自己的论文要用到有限元进行数值模拟分析,以前都用ansys计算,可ansys中岩土的本构模型只有D-P模型,无法准确的反映土的硬化/软化性质,模拟计算出的结果因此也和实际差别很大。
Abaqus有着丰富的材料模型,超强的非线性分析能力,岩土的模型也很多,因此才转学Abaqus。
Abaqus的cae建模功能还是很好的,但科研课题一般都要进行参数分析,采用cae的建模方法有些不切实际,学了没几天就放弃cae开始学习inp,也是学了一阵子才知道inp不能建立实体模型,只能直接建节点和单元。
复杂的模型inp也无法建立,但采用Python建模就可以解决这个问题。
由于Abaqus的学习资料不多,过了好些日子才知道Abaqus也可以采用Python语言进行建模计算,只是比Ansys的Apdl语言复杂得多,并且除了手册上的Script资料之外,没有较为系统的教程,刚一接触真是让人头痛。
通过查看Simwe论坛上关于Python的帖子,和论坛朋友的帮助,自己在慢慢积累,现在对Python有了一点点了解,算是入了个门。
接触Abaqus也没多久,对python更是一知半解,绝大多数地方根本都不清楚,抽空写一点认识体会主要是给像自己一样刚学习Abqus Python的朋友,能少走一些弯路,节约一些时间。
同时希望大家批评指正、共同讨论、补充。
#--------------------------------------------------------------------------------------------------学习Abaqus/Python基础:Abaqus的cae建模有比较全面的认识;了解一些Python语法知识(大家都不会有太多时间单独学习Python语言本身,只需要有概念了解即可,不懂的地方可以随时查询Python script手册)Abaqus/Python学会使用不太难,可要精通应用还是要付出一定的劳动。
Abaqus二次开发介绍

Abaqus⼆次开发介绍ABAQUS提供了两种⼆次开发的接⼝,⼀是⼦程序接⼝(user subroutine),⼀种是脚本接⼝(Abaqus scripting interface),Abaqus的脚本语⾔是在python语⾔的基础上进⾏的定制开发,它扩充了python的对象模型和数据类型,使Abaqus脚本接⼝的功能更加强⼤,⼀般来说,Abaqus脚本接⼝可以实现以下功能①创建、修改ABAQUS模型中的属性,如部件、材料、荷载和分析步等②创建、修改和提交分析作业③读取和写⼊ABAQUS输出数据⽂件④查看分析结果Abaqus中python脚本的通信关系如下图所⽰从图中可以看出,ABAQUS可以通过三种⽅式运⾏脚本⽂件(1)GUI。
Abaqus在采⽤GUI进⾏建模的同时,会⽣成⼀个rpy格式的脚本⽂件。
当然,也可以通过macro管理器录制⼀段宏命令(2)命令⾏。
在abaqus CAE界⾯底端的命令⾏键⼊python命令,点击回车后即可⾃动运⾏。
(3)编辑脚本⽂件。
预先编辑好脚本⽂件,在start session 对话框或者file按钮⾥选择run script运⾏脚本。
也可以在ABAQUS command窗⼝中键⼊命令运⾏脚本Abaqus cae script=myscript.pyAbaqus cae startup=myscript.py启动CAE界⾯并运⾏脚本Abaqus viewer script=myscript.pyAbaqus viewer startup=myscript.py启动Viewer并运⾏脚本Abaqus cae noGUI=myscript.pyAbaqus viewer noGUI=myscript.py不启动CAE或者Viewer运⾏脚本此外,ABAQUS也提供了⼀个python编译器,可以通过file→abaqus pde运⾏详细的python命令,⼤家可以通过帮助⽂件中的Abaqus Scripting Reference Guide进⾏查看。
abaqus-python二次开发方法

abaqus-python二次开发方法(超实用)基于的二次开发对于很多新手来说都是一个神秘的,感觉是高难度的问题,致使很多新手对二次开发的研究都处于初级了解阶段,或完全不感冒阶段。
其实二次开发很简单,某种意义上讲,常用的ABAQUS二次开发方式有两种,(1)直接修改inp文件,这种方式需要对inp文件中大量的节点和单元进行操作,一般不建议采用inp文件进行二次开发(除非有特殊的关键字或标识符,其实关键字也可以用python语言来进行二次开发,笔者亲证)。
采用inp文件进行二次开发数据量大,行数多,一旦发生问题难以检测错误原因(2)采用abaqus语言,自编脚本,简单容易,非常适合初学者。
这里主要介绍python入门python语言的开发远没有想象中的难,其实基于abaqus语言的二次开发更像是word或excel里的VBA,我们只要通过录制一段宏文件,就可以简单迅速的完成一个模型的建立,当我们人为的对这段宏文件进行修改,就可以完成对该模型的修改,非常适合有大量相同或类似模型的建立,防止用户一遍又一遍繁琐的建模操作。
简单的步骤如下:1.在建模前先打开file--Macro Manager,然后新建一个宏文件(在Home或Work都行,只要你最终能找到这个文件),此时会弹出Record Macro对话框,托至不碍事的地方2.进行正常的cae建模就行,至到建模完成3.点击Record Macro对话框的Stop Mecording,此时命令栏会显示“Macro "Macroname" has been added to "E:\Temp\Macroname.py"”,前期任务搞定4.此时用文本编辑器打开此py文件,py文件中有些文字是没有用的,把“def Macro1 ...import connectorBehavior”都可以删掉,每行字前的空格都要去掉(文本编辑器里一般有列模式,用列模式可以对整个文本的进行操作)5.复制你新生成的python文件,并对该文件中的参数进行修改,在提交给abaqus--cae就可以完成重复建模了,如此可以无限重复,其实python语言都是大白话,你能看懂的需要指出的是:1.可以结合其它编程语言如VB、VC 配合修改参数并生成py文件,使用更为灵活2.生成py文件可以直接在cae中选择file-run script,选择你生成的python文件3.可以用python文件直接生成cae模型文件,可在py文件最后添加"mdb.saveAs(pathName='" *** "')"4.可以通过cmd命令直接将py文件提交个abaqus内核,让abaqus进行运算,cmd命令为“Shell"C:\Windows\SysWOW64\cmd.exe /k abaqus cae noGUI=" **** ".py ", vbHide等待abaqus运算的py语言"myJob.submit(consistencyChecking=OFF, datacheckJob=True)"。
ABAQUS二次开发基础

ABAQUS二次开发基础第9章知识要点:ABAQUS 二次开发基础; ; ; ;ABAQUS 二次开发概述 ABAQUS 用户子程序接口 ABAQUS 用户子程序介绍应用举例本章导读:本章主要介绍了大型有限元软件 ABAQUS 二次开发的基本情况,主要包括:ABAQUS 二次开发概述、ABAQUS 用户子程序接口、ABAQUS 用户子程序介绍等,最后给出两个算例,介绍采用ABAQUS 进行二次开发以及建立ABAQUS 主程序与用户子程序之间口的基本过程。
9.1 ABAQUS 二次开发概述随着计算技术和计算机的快速发展,有限元软件的发展速度迅速,功能日渐强大。
目前国际上被广泛采用的通用有限元软件有 ANSYS、MSC、ABAQUS 等。
利用商业软件进行计算现在已是科学研究中的一项重要手段。
由于工程问题的千差万别,不同的用户有不同的专业背景和发展方向,通用软件不免在具体的专业方面有所欠缺,针对这些不足,大部分的通用软件都提供了二次开发功能,以帮助用户减少重复性的编程工作、提高开发起点、缩短研发周期、降低开发成本,并能简化后期维护工作,给用户带来很多方便。
基于通用软件平台进行开发,是目前研究的一个重要发展方向。
ABAQUS 也提供了若干用户子程序(User Subroutines)接口,它是一个功能非常强大且适用的分析工具,与命令行的程序格式相比,用户子程序的限制少得多,从而使用更加灵活方便。
ABAQUS 不仅提供标准的有限元分析程序,而且具有良好的开放性,可利用它提供的用户子程序接口生成非标准的分析程序来满足用户的需要,在实际工程中得到广泛应用。
ABAQUS 允许用户通过子程序以代码的形式来扩展主程序的功能,并给用户提供了强大而又灵活的用户子程序接口和应用程序接口(Utility Routine),ABAQUS 共有 42 个用户子程序接口,15 个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数值交换等等。
《2024年ABAQUS用户材料子程序开发及应用》范文

《ABAQUS用户材料子程序开发及应用》篇一一、引言ABAQUS是一款功能强大的工程仿真软件,广泛应用于各种工程领域。
其中,用户材料子程序(User-Defined Material Subroutines)的开发是ABAQUS使用中的一个重要环节。
通过用户材料子程序,用户可以根据自己的需求定义材料的本构关系、失效准则等,以更准确地模拟材料的力学行为。
本文将介绍ABAQUS用户材料子程序的开发过程及其应用。
二、ABAQUS用户材料子程序开发1. 需求分析在开发ABAQUS用户材料子程序之前,首先需要进行需求分析。
这包括明确模拟的目的、材料的性质以及所需的本构关系和失效准则等。
通过需求分析,可以确定需要编写的用户材料子程序的类型和功能。
2. 编写用户材料子程序根据需求分析的结果,编写相应的用户材料子程序。
ABAQUS提供了多种编程语言接口,如Fortran、C++等,用户可以根据自己的编程习惯选择合适的编程语言。
在编写用户材料子程序时,需要遵循ABAQUS的编程规范和语法要求。
3. 测试与验证编写完用户材料子程序后,需要进行测试与验证。
这包括对子程序的编译、链接以及在ABAQUS中的加载和运行。
通过对比模拟结果与实际实验数据,验证子程序的正确性和准确性。
如果发现错误或偏差,需要对子程序进行修改和优化。
三、ABAQUS用户材料子程序的应用1. 金属材料的模拟ABAQUS用户材料子程序可以用于模拟金属材料的力学行为。
例如,通过定义金属的本构关系和失效准则,可以模拟金属在拉伸、压缩、弯曲等不同条件下的力学行为。
这有助于研究金属的塑性变形、断裂等行为,为金属材料的性能评估和优化提供依据。
2. 复合材料的模拟ABAQUS用户材料子程序还可以用于模拟复合材料的力学行为。
复合材料由多种材料组成,具有复杂的力学性质。
通过定义复合材料的本构关系和失效准则,可以更准确地模拟复合材料在各种条件下的力学行为。
这有助于研究复合材料的性能优化和应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本章主要介绍了 ABAQUS 材料模型库和单元库、用户子程序 UMAT 接口原理以及 ABAQUS 对于材料非线性问题的处理,然后就岩土介质弹塑性本构积分算法以及 Drucker-Prager 模型和 Mohr-Coulomb 模型参数之间的转换关系进行了推导。最后,以修正的 Mohr-Coulomb 模型为例, 对用户材料子程序 UMAT 二次开发进行了讲解,并给出算例验证所开发子程序的可靠性和精确性。
1. ABAQUS 的通用单元介绍 ABAQUS 程序有一个庞大的单元库,每种单元都具有以下 5 个特征:单元族、自由度(和单 元族直接相关)、节点数目、数学描述、积分方式。 ① 单元族:单元族之间主要的区别是单元族各自假定的几何类型不同,ABAQUS 可以分成八 个大类,包括连续体单元、壳单元、梁单元、刚体单元、桁架单元、薄膜单元、无限元、弹簧粘壶 单元。 ② 自由度:自由度是计算中的基本变量。对于应力/位移模拟,自由度为平动,对于壳和梁单 元,还包括各节点的转动。例如,孔隙水压力单元用于模拟饱和、非饱和土体,自由度为位移和孔 隙水压力,所有孔隙水压力单元的名称都包括“P”,以示区别。 ③ 节点数:ABAQUS 只计算在节点处的位移、转角和温度,单元内任意点的这些变量是通过 节点插值得到,而插值的顺序要取决于单元节点的数目。 ④ 数学描述:单元的数学描述是指用来定义单元行为的数学理论,ABAQUS 所有的应力/位移 单元都是基于拉格朗日或材料行为的描述。为了适用于不同类型的行为,ABAQUS 中的一些单元族 包含具有几种不同数学描述的单元。 ⑤ 积分:在很多情况下,实际选取的高斯积分点数低于精确积分的要求。这种高斯积分级数低 于被积函数所有项精确积分所需要阶数的积分方案称为减缩积分。实际计算表明采用减缩积分常常 可以取得较完全积分更好的精度。 2. ABAQUS 中不同维数的单元 根据维数的不同,ABAQUS 中的单元可以分为 5 种:一维单元、二维单元、三维单元、轴对 称单元、不对称变形的非线性轴对称单元。 3. 用户自定义单元 ABAQUS 提供用户自定义开发单元的功能,用户可以应用 UEL 子程序来开发特殊类型材料的 单元。
10.1.1 ABAQUS 材料库
ABAQUS 具有完善的材料模型库可供选择,它定义了多种材料的本构关系及失效准则,包括: 1. 弹性 线弹性模型可以定义材料的模量、泊松比等弹性特征,具有多种典型失效理论,用于复合材料 结构分析多孔结构弹性模型;用于模拟土壤和可挤压泡沫的弹性行为亚弹性模型;可以考虑应变对 弹性的影响超弹性模型;模拟橡胶类材料的大变形影响粘弹性模型。 2. 塑性 符合 Mises 屈服准则的各向同性和遵循 Hill 屈服准则的各向异性塑性模型;拉伸为 Rankine 屈 服准则,压缩为 Mises 屈服准则的考虑时间硬化和应变硬化的各向同性和各向异性蠕变模型; Drucker-Prager 模型适合于土等粒状材料的模型;Capped Drucker-Prager 模型,适合于地质、隧道
10.2 用户子程序 UMAT 接口原理
ABAQUS 不仅提供标准的有限元分析程序,而且具有良好的开放性,可利用它提供的用户子程 序接口生成非标准的分析程序来满足用户的需要,在实际工程中得到广泛应用。
用户材料子程序(User-defined Material Mechanical Behavior,简称 UMAT)是 ABAQUS 提供给 用户定义自己的材料属性的 Fortran 程序接口,使用户能使用 ABAQUS 材料库中没有定义的材料模 型。用户材料子程序 UMAT 通过与 ABAQUS 主求解程序的接口实现与 ABAQUS 的资料交流。在
输入文件中,使用关键词“*USER MATERIAL”表示定义用户材料属性。 UMAT 子程序具有强大的功能,具体功能如下: 可以定义材料的本构关系,使用 ABAQUS 材料库中没有包含的材料进行计算,扩充程序 功能。 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予 ABAQUS 中 的任何单元。 必须在 UMAT 中提供材料本构的雅可比(Jacobian)矩阵,即应力增量对应变增量的变化 率。
第 10 章 ABAQUS 用户材料子程序二次开发及应用
知识要点:
; ABAQUS 材料模型库和单元库简介 ; 用户子程序 UMAT 接口原理 ; 本构积分算法 ; ABAQUS 对于材料非线性问题的处理 ; UMAT 材料子程序实现及应用 ; D-P 模型与 M-C 模型参数之间的关系 ; 算例分析
挖掘等领域;Cam-Clay 模型,适合于粘土类土壤材料模拟;Mohr-Coulomb 模型,这种模型与 Capped r 模型相似,但可以考虑不光滑小表面情况;泡沫材料模型可以模拟高度挤压材料, 可用于消费品包装及车辆安全装置等领域;混凝土材料模型,体现混凝土弹塑性破坏理论;渗透性 材料模型,定义依赖孔隙比率、饱和度和流速的各向同性和各向异性的渗透性材料。
10.1 ABAQUS 材料模型库和单元库简介
ABAQUS 被广泛地认为是功能最强的有限元软件之一,可以分析复杂的固体力学和结构力学系 统,特别是能够驾驭非常庞大复杂的问题和模拟高度非线性问题。岩土介质是一种具有非均匀、非 线性性状以及几何形状的任意性、不连续性等特性的特殊多孔介质,而 ABAQUS 的特长就是能够 计算各种不同的材料、复杂荷载加载过程以及变化接触条件的非线性组合问题,这使得已经成为国 内外岩土工程界使用最为普遍的有限元分析计算软件。
此外,ABAQUS 还提供 UMAT 功能,用户可以应用 UMAT 自定义特殊类型材料。
10.1.2 ABAQUS 单元库
ABAQUS 包括了内容极其丰富的单元库,单元种类多达 433 种,还包括其中针对特殊问题构建 的特殊单元如针对岩土工程的桩-土连接单元、针对海洋工程结构的土切管柱连接单元和锚杆单元 等,这些单元对解决各行业领域的具体问题非常有效。