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

合集下载

ABAQUS-UMAT弹塑本构二次开发地实现

ABAQUS-UMAT弹塑本构二次开发地实现

word前言有限元法是工程中广泛使用的一种数值计算方法。

它是力学、计算方法和计算机技术相结合的产物。

在工程应用中,有限元法比其它数值分析方法更流行的一个重要原因在于:相对与其它数值分析方法,有限元法对边界的模拟更灵活,近似程度更高。

所以,伴随着有限元理论以与计算机技术的开展,大有限元软件的应用证变得越来越普与。

ABAQUS软件一直以非线性有限元分析软件而闻名,这也是它和ANSYS,Nastran等软件的区别所在。

非线性有限元分析的用处越来越大,因为在所用材料非常复杂很多情况下,用线性分析来近似已不再有效。

比方说,一个复合材料就不能用传统的线性分析软件包进展分析。

任何与时间有关联,有较大位移量的情况都不能用线性分析法来处理。

多年前,虽然非线性分析能更适合、更准确的处理问题,但是由于当时计算设备的能力不够强大、非线性分析软件包线性分析功能不够健全,所以通常采用线性处理的方法。

这种情况已经得到了极大的改善,计算设备的能力变得更加强大、类似ABAQUS这样的产品功能日臻完善,应用日益广泛。

非线性有限元分析在各个制造行业得到了广泛应用,有不少大型用户。

航空航天业一直是非线性有限元分析的大客户,一个重要原因是大量使用复合材料。

新一代波音 787客机将全部采用复合材料。

只有像 ABAQUS这样的软件,才能分析包括多个子系统的产品耐久性能。

在汽车业,用线性有限元分析来做四轮耐久性分析不可能得到足够准确的结果。

分析汽车的整体和各个子系统的性能要求〔如悬挂系统等〕需要进展非线性分析。

在土木工程业, 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二次开发教程

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二次开发——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⼆次开发介绍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-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二次开发基础

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用户材料子程序开发及应用》范文

《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用户材料子程序还可以用于模拟复合材料的力学行为。

复合材料由多种材料组成,具有复杂的力学性质。

通过定义复合材料的本构关系和失效准则,可以更准确地模拟复合材料在各种条件下的力学行为。

这有助于研究复合材料的性能优化和应用。

ABAQUS后处理二次开发在结构弹塑性分析中的应用

ABAQUS后处理二次开发在结构弹塑性分析中的应用

第33卷增刊2013年12月防灾减灾工程学报Journal of Disaster Prevention and Mitigation EngineeringVol.33Suppl.Dec.2013ABAQUS后处理二次开发在结构弹塑性分析中的应用*滕 军1,2,张 何3,李祚华2(1.福建工程学院,福州350108;2.哈尔滨工业大学深圳研究生院,广东深圳518055;3.中铁第四勘察设计研究院集团有限公司,武汉430063)摘要:在弹塑性分析的后处理阶段,通常需要依托大量的分析结果数据对结构进行抗震性能评价,而目前通用有限元软件ABAQUS的后处理功能无法详细提供结构设计过程中所需的数据。

为高效、准确的提高结构大震弹塑性分析的效率,节省工程人员在后处理分析时所花费的时间和精力,利用面向对象的脚本语言Python对有限元软件ABAQUS进行了二次开发,实现层间位移角和结构损伤指标的自动计算,并将计算结果以曲线方式输出。

文中讨论了ABAQUS自定义功能内核脚本的编写方法和图形用户界面开发的基本方法和流程,分析了插件程序开发中的问题及解决措施,并通过两个算例验证开发插件的正确性。

关键词:ABAQUS/CAE;GUI程序开发;后处理;结构损伤分析中图分类号:TU311.41 文献标识码:A 文章编号:1672-2132(2013)增刊-0009-06The Application of Secondary Development of Post-processingof ABAQUS in Structural Elastoplastic AnalysisTENG Jun1,2,ZHANG He3,LI Zuo-hua2(1.Fujian University of Technology,Fuzhou 350108,China;2.Shenzhen Graduate School Harbin Institute of Technology,Shenzhen 518055,China;3.China Railway Siyuan Survey and Design Group Co.Ltd,Wuhan 430063,China)Abstract:After calculation and analysis by ABAQUS,data such as inter-story drift angle anddamage index should be extracted to evaluate seismic performance of the structure.The basicpost-processing function of ABAQUS usually can not provide the result data for structure designin the elastoplastic analysis.In order to improve the accuracy and efficiency of elastoplastic analy-sis,this paper conducted secondary development based on ABAQUS using Python.The Python,the scripting language of ABAQUS,can realize the automatic processing of inter-story drift angleand structural damage value.Two basic methods for secondary development of ABAQUS and de-sign flow of plug-in program were introduced in this paper,and the correctness of the plug-inprogram for inter-story drift angle and structural damage evaluation was verified by two exact ex-amples.Key words:ABAQUS/CAE;GUI program development;post-processing;structural damageanalysis*收稿日期:2013-05-10;修回日期:2013-09-04基金项目:国家自然科学基金项目(50938001、51008048)资助作者简介:滕 军(1962-),男,教授,博导。

ABAQUS二次开发教程

ABAQUS二次开发教程

ABAQUS(Python语言)二次开发人生苦短,我用Python作者:Fan ShengbaoPython2.72017年12月目录第一章Python程序基本语法 (1)1.1Python语法结构 (1)1.2Python元组 (1)1.3Python列表 (1)1.4Python字典 (2)1.5Python集合 (3)1.6Python字符串 (3)1.7Python分支语句 (4)1.8Python循环语句 (5)1.8.1for循环 (5)1.8.2while循环 (5)1.9Python定义函数 (5)1.10Python模块 (6)1.11Python包 (7)1.12Python文件和目录 (7)1.12.1目录操作 (7)1.12.2文件操作 (7)1.13Python异常处理 (8)第二章ABAQUS/Python二次开发 (9)2.1ABAQUS执行Python程序 (9)2.2编写ABAQUS/Python程序 (10)2.3ABAQUS录制Python程序 (10)2.4ABAQUS/Python对象介绍 (11)2.4.1 session对象 (11)2.4.2 mdb对象 (11)2.4.3 odb对象 (13)2.5ABAQUS完整二次开发示例 (14)2.6ABAQUS二次开发常用函数 (16)2.6.1 Part模块常用函数 (16)第一章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中的二次开发Abaqus中的二次开发可以分为两大类:1)基于FORTRAN语言的用户子程序开发;2)基于Python的脚本开发。

其中第二大类基于Python的脚本开发又可以细分为如下三大类:1)通过Python脚本实现Abaqus参数化建模;2)通过Python脚本实现用户定制化后处理;3)应用Python语言通过FoxGUI Toolkit编写GUI(可视化用户界面)。

今天首先对Abaqus子程序二次开发进行一个概括性的介绍。

虽然Abaqus为用户提供了大量的单元库和求解模型,使用户能够利用这些模型处理绝大多数的问题,但是实际问题毕竟非常复杂,Abaqus不可能求解所有可能出现的问题,所以Abaqus提供了大量的用户自定义子程序(UserSubroutine),允许用户再找不到合适模型的情况下自定义符合自己问题的模型。

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

用户子程序具有以下功能和特点:1、如果Abaqus的一些固有模块功能有限,用户子程序可以提高和扩展Abaqus中相应的功能;2、通常用户子程序是用FORTRAN语言的代码写成(Abaqus也提供C++接口);3、它可以以不同的方式运行在模型的不同计算步骤和位置;4、可以在一次计算中包含多个用户子程序。

常用的Abaqus用户子程序举例:DLOAD:用户自定义载荷,例如在复杂工况下,载荷随时间和温度变化;FILM:用户自定义film coefficient,例如定义复杂热交换界面上的热交换系数;UEL:用户自定义单元,是Abaqus用户子程序中功能最强大的,理论上可以实现任意类型的有限元单元定义,通过用户自定义单元和Abaqus的高效求解器,实现任意类型的偏微分方程问题的数值求解;UMAT:用户自定义材料属性,可以用来定义复杂材料的连续模型,用以补充Abaqus材料定义模块功能,例如:自定义复杂特殊塑性模型,自定义复杂特殊损伤模型。

ABAQUS中HOEK-BROWN弹塑性模型的二次开发及应用

ABAQUS中HOEK-BROWN弹塑性模型的二次开发及应用

ABAQUS中HOEK-BROWN弹塑性模型的二次开发及应用作为国际上最先进的大型通用有限元软件之一,ABAQUS已广泛应用于各个行业领域,但其现有功能并不能完全满足各行业高级用户的某些要求,如该程序现有岩土材料模型很有限或存在某些缺陷,特别对于岩体材料并没有合适的本构模型,以反映其非线性破坏规律。

为此,本文依托其二次开发平台,采用Fortran语言和向后欧拉隐式积分算法开发了若干用户材料子程序(UMAT),并应用于实际工程数值模拟和分析,本文主要研究内容如下:(1)介绍并梳理Hoek-Brown强度准则在各时期的不同形式。

当将其应用于有限元数值分析时,Hoek-Brown屈服准则在一般应力空间表现为弯曲六棱锥形状,存在尖角,会导致数值奇异。

本文提出在屈服面夹角处采用圆弧代替原屈服面,即“圆化”,推导了该圆弧屈服函数表达式。

同时,为了反映岩体抗拉强度较低的特征,引入拉伸截断面,与圆化后Hoek-Brown屈服面一同作为修正后的Hoek-Brown准则屈服面。

(2)本文应力更新算法采用完全隐式向后欧拉积分,考虑相关联流动法则,对屈服函数和塑形势函数求一阶和二阶导数,得到一致性刚度矩阵,确保结果更精确,程序收敛性更好。

为了实现修正Hoek-Brown准则的应用,借助ABAQUS平台编写了相应的UMAT。

用室内常规三轴压缩试验、单轴拉伸试验、圆形隧道力学响应、群桩-岩体相互作用模型和隧道开挖模型验证程序的正确性,说明其对真三维问题的适用性。

探讨了用线性等效Mohr-Coulomb准则近似非线性Hoek-Brown准则的原理及应用方法,对比不同准则下研究对象的力学行为,并简要阐述剪胀角的影响。

探讨隧道开挖空间效应,研究了不同开挖进尺、不同初始应力条件下的隧洞纵向变形规律曲线(LDP曲线)及围岩力学行为,介绍了收敛-约束法的基本原理和应用条件。

(3)介绍Hoek-Brown材料参数值获取的定性和定量方法,提出用非参数统计方法研究Hoek-Brown参数敏感度。

第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_二次开发详解

#开头的为注释行.第一步,建立建模环境,这一步中p y将从a b a q u s中导入建模所需的所有程序模块.f r o m p a r t i m p o r t*接下来定义草图环境m d b.m o d e l s['M o d e l A'].S k e t c h(n a m e='__p r o f i l e__',s h e e t S i z e=200.0)m d b.m o d e l s['M o d e lA'].s k e t c h e s['__p r o f i l e__'].s k e t c h O p t i o n s.s e t V a l u e s(c o n s t r u c t i o n G e o m e t r y=O N,d e c i m a l P l a c e s=2,d i m e n s i o n T e x t H e i g h t=5.0,g r i d=O N,g r i d F r e q u e n c y=2,g r i d S p a c i n g=5.0,s h e e t S i z e=200.0,v i e w S t y l e=A X I S Y M)上面的设定为大小200*200,格栅间距为5,文字标注高度为5.m d b.m o d e l s['M o d e l A'].s k e t c h e s['__p r o f i l e__'].O b l i q u e C o n s t r u c t i o n L i n e(p o i n t1=(0.0,-100.0),p o i n t2=(0.0,100.0))本句语句设定轴对称模型的对称轴线位置m d b.m o d e l s['M o d e l A'].s k e t c h e s['__p r o f i l e__'].r e c t a n g l e(p o i n t1=(0.0,0.0),p o i n t2=(40.0, -40.0))该语句绘制矩形,从点0,0至点40,-40m d b.m o d e l s['M o d e l A'].P a r t(d i m e n s i o n a l i t y=A X I S Y M M E T R I C,n a m e='B o d e n',t y p e=D E F O R M A B L E_B O D Y)定义模型为轴对称,名字为b o d e n,为可变形体m d b.m o d e l s['M o d e l A'].p a r t s['B o d e n'].B a s e S h e l l(s k e t c h=m d b.m o d e l s['M o d e lA'].s k e t c h e s['__p r o f i l e__'])d e l m d b.m o d e l s['M o d e l A'].s k e t c h e s['__p r o f i l e__']绘图完成丌要忘记收回建模环境所占的内存第二节:材料定义--------------------2楼第三节:装配--------------------3楼第四节:分析步定义--------------------4楼第五节:接触定义--------------------5楼第六节:荷载边界定义-----------------6楼第七节:网格划分控制------------------7楼第八节,任务提交及杂项功能--------8楼关于如何在p y t h o n中提交多个任务的问题9楼第二节,材料定义f r o m m a t e r i a l i m p o r t*f r o m s e c t i o n i m p o r t*从A B A Q U S提供的接口中导入材料库和组件库m d b.m o d e l s['M o d e l-A'].M a t e r i a l(n a m e='B o d e n')定义材料名m d b.m o d e l s['M o d e l A'].m a t e r i a l s['B o d e n'].D e n s i t y(t a b l e=((2000.0,),))定义材料密度m d b.m o d e l s['M o d e l A'].m a t e r i a l s['B o d e n'].E l a s t i c(t a b l e=((210546.3,0.3333),))定义材料线弹性模量和泊松比,其它的材料,如弹塑性,粘弹性材料均对应丌同的对象函数. m d b.m o d e l s['M o d e l A'].H o m o g e n e o u s S o l i d S e c t i o n(m a t e r i a l='B o d e n',n a m e='b o d e n',t h i c k n e s s=1.0)m d b.m o d e l s['M o d e lA'].p a r t s['B o d e n'].a s s i g n S e c t i o n(r e g i o n=R e g i o n(f a c e s=m d b.m o d e l s['M o d e lA'].p a r t s['B o d e n'].f a c e s[0:1]),s e c t i o n N a m e='b o d e n')设定组件为坐标无关性材料,厚度为单位厚度,并将属性附给所用的组件第三节,装配f r o m a s s e m b l y i m p o r t*首先,导入装配所用到的对象m d b.m o d e l s['M o d e lA'].r o o t A s s e m b l y.D a t u m C s y s B y T h r e e P o i n t s(c o o r d S y s T y p e=C Y L I N D R I C A L,o r i g i n=(0.0, 0.0,0.0),p o i n t1=(1.0,0.0,0.0),p o i n t2=(0.0,0.0,-1.0))定义坐标类型为柱坐标,原点0,0,0,另外两个为单位向量,确定该坐标轴的方向.m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.I n s t a n c e(n a m e='B o d e n-1',p a r t=m d b.m o d e l s['M o d e l A'].p a r t s['B o d e n'])生成草图对像b o d e n的实体,名字叨B o d e n-1.无偏移插入第四节,定义分析步f r o m s t e p i m p o r t*象其它步一样,先导入分析步要用到的模块m d b.m o d e l s['M o d e l A'].I m p l i c i t D y n a m i c s S t e p(i n i t i a l I n c=0.005,m a x N u m I n c=1024,n a m e='S t e p-1',n o S t o p=O F F,n o h a f=O F F,p r e v i o u s='I n i t i a l',t i m e I n c r e m e n t a t i o n M e t h o d=F I X E D,t i m e P e r i o d=5.12)定义对劢力隐式分析,时长为0.005*1024=5.12个时间单位,前一步为I n i t i a lm d b.m o d e l s['M o d e l A'].f i e l d O u t p u t R e q u e s t s['F-O u t p u t-1'].s e t V a l u e s(v a r i a b l e s=('U',))定义输出到O D B文件的数据,这里叧定义了位移输出m d b.m o d e l s['M o d e l A'].f i e l d O u t p u t R e q u e s t s['F-O u t p u t-1'].s e t V a l u e s(f r e q u e n c y=1)定义位移输出的频率为每步都输出m d b.m o d e l s['M o d e l A'].s t e p s['S t e p-1'].R e s t a r t(f r e q u e n c y=1,o v e r l a y=O N)定义重启劢析,每一步记录,叧记录最后一次的正确状态第五节,定义接触f r o m i n t e r a c t i o n i m p o r t*依然是先导入所用的模块m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.P a r t i t i o n E d g e B y P a r a m(e d g e s=(m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.i n s t a n c e s['B o d e n-1'].e d g e s[3],),p a r a m e t e r=0.975)在上部即第3面的97.5%的地方设定一个点,用于定义接触m d b.m o d e l s['M o d e l A'].C o n t a c t P r o p e r t y('I n t P r o p-1')定义接触属性名m d b.m o d e l s['M o d e l A'].i n t e r a c t i o n P r o p e r t i e s['I n t P r o p-1'].T a n g e n t i a l B e h a v i o r(f o r m u l a t i o n=F R I C T I O N L E S S)m d b.m o d e l s['M o d e l A'].i n t e r a c t i o n P r o p e r t i e s['I n t P r o p-1'].N o r m a l B e h a v i o r(a l l o w S e p a r a t i o n=O F F,a u g m e n t e d L a g r a n g e=O F F,p r e s s u r e O v e r c l o s u r e=H A R D)定义接触特性,为无摩擦硬接触丌允许分开m d b.m o d e l s['M o d e l A'].S u r f a c e T o S u r f a c e C o n t a c t S t d(a d j u s t M e t h o d=N O N E,c r e a t e S t e p N a m e='I n i t i a l',i n t e r a c t i o n P r o p e r t y='I n t P r o p-1',m a s t e r=R e g i o n(s i d e1E d g e s=m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.i n s t a n c e s['f u n-1'].e d g e s[0:1]) ,n a m e='I n t-1',s l a v e=R e g i o n(s i d e1E d g e s=m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.i n s t a n c e s['B o d e n-1'].e d g e s[4:5]),s l i d i n g=F I N I T E)这一句是建立接触对,分别为两个面上的一条边,这里边的定义由A B A Q U S内定,具体可以查阅参考手册第六节,荷载边界定义f r o m l o a d i m p o r t*m d b.m o d e l s['M o d e l A'].P e r i o d i c A m p l i t u d e(a_0=1.0,d a t a=((3.0,1.1),(3.2,1.7)),f r e q u e n c y=2.454,n a m e='F o u r i e r',s t a r t=0.0,t i m e S p a n=S T E P)定义f o u r i e r级数表示的荷载m d b.m o d e l s['M o d e l A'].P r e s s u r e(a m p l i t u d e='F o u r i e r',c r e a t e S t e p N a m e='S t e p-1',d i s t r i b u t i o n=U N I F O R M,m a g n i t u d e=50.0,n a m e='L o a d-1',re g i o n=R e g i o n(s i d e1E d g e s=m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.i n s t a n c e s['f u n-1'].e d g e s[2:3]))定义压强,设定加载的分析步,区域及放大系数m d b.m o d e l s['M o d e l A'].D i s p l a c e m e n t B C(a m p l i t u d e=U N S E T,c r e a t e S t e p N a m e='I n i t i a l',d i s t r i b u t i o n=U N I F O R M,l o c a l C s y s=N o n e,n a m e='B C-1',r e g i o n=R e g i o n(e d g e s=m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.i n s t a n c e s['B o d e n-1'].e d g e s[0:1]+\m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.i n s t a n c e s['B o d e n-1'].e d g e s[2:3]+\m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.i n s t a n c e s['f u n-1'].e d g e s[3:4]), u1=S E T,u2=U N S E T,u r3=U N S E T)m d b.m o d e l s['M o d e l A'].D i s p l a c e m e n t B C(a m p l i t u d e=U N S E T,c r e a t e S t e p N a m e='I n i t i a l',d i s t r i b u t i o n=U N I F O R M,l o c a l C s y s=N o n e,n a m e='B C-2',re g i o n=R e g i o n(e d g e s=m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.i n s t a n c e s['B o d e n-1'].e d g e s[1:2]),u1=U N S E T,u2=S E T,u r3=U N S E T)设定边界位移为0的边界条件,注意语法中对象相加的方法.第七节,网格划分控制f r o m m e s h i m p o r t*i m p o r t m e s h导入网格划分模块e l e m T y p e1=m e s h.E l e m T y p e(e l e m C o d e=C A X8,e l e m L i b r a r y=S T A N D A R D,s e c o n d O r d e r A c c u r a c y=O F F,h o u r g l a s s C o n t r o l=S T I F F N E S S,d i s t o r t i o n C o n t r o l=O F F)e l e m T y p e2=m e s h.E l e m T y p e(e l e m C o d e=C A X6M,e l e m L i b r a r y=S T A N D A R D)a1=m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l yf1=a1.i n s t a n c e s['B o d e n-1'].f a c e sf a c e s1=f1[0:1]r e g i o n s=(f a c e s1,)a1.s e t E l e m e n t T y p e(r e g i o n s=r e g i o n s,e l e m T y p e s=(e l e m T y p e1,e l e m T y p e2))定义其中一个物体的网格为二次8结点单元,如果其中有无法划分成四边形单元的情况,则用三角形二次6结点单元.e l e m T y p e1=m e s h.E l e m T y p e(e l e m C o d e=C A X4,e l e m L i b r a r y=S T A N D A R D)e l e m T y p e2=m e s h.E l e m T y p e(e l e m C o d e=C A X3,e l e m L i b r a r y=S T A N D A R D)a1=m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l yf1=a1.i n s t a n c e s['f u n-1'].f a c e sf a c e s1=f1[0:1]r e g i o n s=(f a c e s1,)a1.s e t E l e m e n t T y p e(r e g i o n s=r e g i o n s,e l e m T y p e s=(e l e m T y p e1,e l e m T y p e2))定义其中一个物体的网格为一次4结点单元,如果其中有无法划分成四边形单元的情况,则用三角形一次3结点单元.m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.s e e d P a r t I n s t a n c e(r e g i o n s=(m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.i n s t a n c e s['f u n-1'],),s i z e=0.5)m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.s e e d P a r t I n s t a n c e(r e g i o n s=(m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.i n s t a n c e s['B o d e n-1'],),s i z e=1)定义网格划分全局单元大小.m d b.m o d e l s['M o d e l A'].r o o t A s s e m b l y.g e n e r a t e M e s h(r e g i o n s=(m d b.m o d e l s['M o d e lA'].r o o t A s s e m b l y.i n s t a n c e s['B o d e n-1'],m d b.m o d e l s['M o d e lA'].r o o t A s s e m b l y.i n s t a n c e s['f u n-1']))按照定义划分单元第八节,任务提交及杂项功能m d b.m o d e l s.c h a n g e K e y(f r o m N a m e='M o d e l A',t o N a m e='F a l l-M u s t e r')修改模型名称m d b.M o d e l(n a m e='F a l l-015',o b j e c t T o C o p y=m d b.m o d e l s['F a l l-M u s t e r'])拷贝模型m d b.m o d e l s['F a l l-015'].m a t e r i a l s['B o d e n'].e l a s t i c.s e t V a l u e s(t a b l e=((210546.3,0.15),))修改模型中的材料属性m d b.J o b(c o n t a c t P r i n t=O F F,d e s c r i p t i o n='',e c h o P r i n t=O F F,e x p l i c i t P r e c i s i o n=S I N G L E,h i s t o r y P r i n t=O F F,m o d e l='F a l l-015',m o d e l P r i n t=O F F,m u l t i p r o c e s s i n g M o d e=T H R E A D S,n a m e='J o b-015',n o d a l O u t p u t P r e c i s i o n=S I N G L E, n u m C p u s=1,n u m D o m a i n s=1,p a r a l l e l i z a t i o n M e t h o d E x p l i c i t=L O O P,p a r a l l e l i z a t i o n M e t h o d S t a n d a r d=T R E E,p r e M e m o r y=1024.0,s c r a t c h='',s t a n d a r d M e m o r y=2048.0,s t a n d a r d M e m o r y P o l i c y=M O D E R A T E,t y p e=A N A L Y S I S, u s e r S u b r o u t i n e='')生成任务m d b.s a v e A s(p a t h N a m e='D:/t e m p/F u n d a m e n t S c h w i n g u n g S t u d i e')保存模型m d b.j o b s['J o b-015'].s u b m i t()提交任务关于如何在p y t h o n中提交多个任务的问题:如果您使用下面这样的命令做的提交m d b.j o b s['J o b-01'].s u b m i t()m d b.j o b s['J o b-02'].s u b m i t()m d b.j o b s['J o b-03'].s u b m i t()你就会看到,所有的任务是一次性提交的,多个任务在一起运行,这肯定丌是你想看到的结果,如何完成一个接着一个的提交呢,其实很简单,在每个任务后面加上一句m d b.j o b s['J o b-01'].w a i t F o r C o m p l e t i o n()就可以了.那么上面的语句就改为m d b.j o b s['J o b-01'].s u b m i t()m d b.j o b s['J o b-01'].w a i t F o r C o m p l e t i o n()m d b.j o b s['J o b-02'].s u b m i t()m d b.j o b s['J o b-02'].w a i t F o r C o m p l e t i o n()m d b.j o b s['J o b-03'].s u b m i t()m d b.j o b s['J o b-03'].w a i t F o r C o m p l e t i o n()......就一切O K了。

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个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数值交换等等。

ABAQUS二次开发教程

ABAQUS二次开发教程

ABAQUS(Python语言)二次开发人生苦短,我用Python作者:Fan ShengbaoPython2.72017年12月目录第一章Python程序基本语法 (1)1.1Python语法结构 (1)1.2Python元组 (1)1.3Python列表 (1)1.4Python字典 (2)1.5Python集合 (3)1.6Python字符串 (3)1.7Python分支语句 (4)1.8Python循环语句 (5)1.8.1for循环 (5)1.8.2while循环 (5)1.9Python定义函数 (5)1.10Python模块 (6)1.11Python包 (7)1.12Python文件和目录 (7)1.12.1目录操作 (7)1.12.2文件操作 (7)1.13Python异常处理 (8)第二章ABAQUS/Python二次开发 (9)2.1ABAQUS执行Python程序 (9)2.2编写ABAQUS/Python程序 (10)2.3ABAQUS录制Python程序 (10)2.4ABAQUS/Python对象介绍 (11)2.4.1 session对象 (11)2.4.2 mdb对象 (11)2.4.3 odb对象 (13)2.5ABAQUS完整二次开发示例 (14)2.6ABAQUS二次开发常用函数 (16)2.6.1 Part模块常用函数 (16)第一章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语言)二次开发人生苦短,我用Python作者:Fan ShengbaoPython2.72017年12月目录第一章Python程序基本语法 (1)1.1Python语法结构 (1)1.2Python元组 (1)1.3Python列表 (1)1.4Python字典 (2)1.5Python集合 (3)1.6Python字符串 (3)1.7Python分支语句 (4)1.8Python循环语句 (5)1.8.1for循环 (5)1.8.2while循环 (5)1.9Python定义函数 (5)1.10Python模块 (6)1.11Python包 (7)1.12Python文件和目录 (7)1.12.1目录操作 (7)1.12.2文件操作 (7)1.13Python异常处理 (8)第二章ABAQUS/Python二次开发 (9)2.1ABAQUS执行Python程序 (9)2.2编写ABAQUS/Python程序 (10)2.3ABAQUS录制Python程序 (10)2.4ABAQUS/Python对象介绍 (11)2.4.1 session对象 (11)2.4.2 mdb对象 (11)2.4.3 odb对象 (13)2.5ABAQUS完整二次开发示例 (14)2.6ABAQUS二次开发常用函数 (16)2.6.1 Part模块常用函数 (16)第一章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 -*-”是约定文档的编码方式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 种,还包括其中针对特殊问题构建 的特殊单元如针对岩土工程的桩-土连接单元、针对海洋工程结构的土切管柱连接单元和锚杆单元 等,这些单元对解决各行业领域的具体问题非常有效。
相关文档
最新文档