abaqus_用户程序-学习心得
Abaqus学习总结-1

Abaqus学习总结-1Abaqus6.14.1学习总结-11.裝好软件后,每次打开软件前应先运行许可证程序。
运行后点击start 服务器电脑开机后运行一次许可证程序,不关机就不用再启动。
启动许可证后再打开cae可视化后处理运行abaqus。
2.盈建科一维梁单元需要子程序,无法在abaqus中直接运行,但是在yjk中点击*.bat批处理后报错。
关键是要修改这个文件abaqus_v6.env,添加环境变量如图,再把文件拷贝到*.inp的计算目录下,计算顺利完成。
盈建科的子程序是已经由fortran语言编译好的dll 文件,有两个。
对不同的abaqus版本子程序是不同的,应该是对应的vst和Fortran版本不同编译出来的dll有差别。
3.查看计算结果是在result 里打开计算目录的obd 文件。
查看时注意只有step中的第一步和最后一步可以查看结构损伤。
只有云图才能查看损伤。
4.查看云图,没有数字,只有颜色。
查看symbol,则出现数值。
5.要查看数值,点击symbol右侧的图标。
弹出symbol plot option的对话框后点击display value6.生成显示组。
要关闭其中不想显示的内容,选择后点击remove就可以不显示。
点击部件,然后点击remove就可以关闭所有的东西。
想要重新打开,在菜单里重新显示plot一遍即可。
7.在云图中primary显示一维梁单元的弯矩图。
点击云图后选择SM1,点击ok,再点击右侧的opotion按钮,会出来对话框。
再点show tick marks for line element ,对于一维线单元显示tick marks8. 输出到文件9.通过下面这个数值可以调网格的尺子的疏密。
尺子的颜色与数值的对应关系可以点用户定义弹出的对话框中查到。
10,对result结果的file output 输出的变量的选择操作:11.显示模型的一些信息可以按以下操作。
ABAQUS学习技巧总结

ABAQUS学习技巧总结1.学习软件基本操作:了解软件的界面布局和主要功能,掌握常用的菜单和工具栏命令。
可以通过阅读官方文档或者参考书籍,或者通过在线教程学习基础操作。
2.学习输入文件语法:ABAQUS是通过输入文件来定义模型和分析任务的,学习输入文件的语法和格式对于理解和修改模型是非常重要的。
可以通过查阅ABAQUS官方文档或者参考书籍来学习输入文件的语法规则。
3. 学习命令行操作:ABAQUS可以通过命令行进行一些常用操作,比如运行求解器、查看日志文件等。
掌握常用的命令行操作可以提高工作效率。
可以通过在命令提示符下输入“abaqus help”来查看命令行操作的帮助文档。
4.学习宏命令:宏命令是一种批处理脚本,可以自动化执行一系列操作。
学习宏命令可以提高工作效率,尤其是在进行重复性操作时。
可以通过学习宏命令的语法和编写技巧,自己编写一些常用的宏命令。
5. 学习Python脚本编程:ABAQUS支持Python脚本编程,可以通过编写Python脚本来扩展软件的功能。
学习Python脚本编程可以编写更复杂的宏命令,或者编写自己的特定功能的插件。
可以通过学习Python编程的相关书籍或者在线教程来学习Python编程技巧。
6.学习后处理技巧:ABAQUS提供了丰富的后处理功能,可以对分析结果进行可视化和分析。
学习后处理技巧可以帮助理解模型的行为,并对分析结果进行合理的解释和评估。
可以通过阅读ABAQUS官方文档或者参考书籍来学习后处理的相关知识。
7.学习错误处理技巧:在使用ABAQUS时,经常会遇到各种错误和警告信息。
学习错误处理技巧可以帮助快速定位和解决问题。
可以通过阅读ABAQUS官方文档或者参考书籍,或者在相关论坛上寻求帮助来学习错误处理技巧。
总之,学习ABAQUS需要不断实践和积累经验。
通过掌握基本操作、学习输入文件语法、掌握命令行操作、学习宏命令和Python脚本编程、学习后处理技巧和错误处理技巧等技能,可以提高对ABAQUS的理解和应用能力。
abaqus学习总结(一)

Abaqus小结(一)1、获取帮助文档里面的例题的inp文件,abaqus command:abaqus fetch job=…。
2、Abaqus模型需要包括的数据:离散的几何、单元截面属性、材料、载荷与边界条件、分析类型与输出设置。
3、潜在的刚体位移依赖与模型的维数:4、abq的输入文件被分为两部分。
第一部分包括所分析结构所有的模型数据,第二部分定义了模型的历史载荷数据,包括了按照结构的相应施加载荷的顺序。
5、Inp文件由数据块组成,每个数据块描述模型中的某一个部分。
数据块由关键字行和紧随随后的数据行组成。
关键字行由*开头,有时候数据块要求的参数太多超过了一行256个字节的限制,应该在行末加上一个逗号表示下一行是继续行。
数据行表示实数是不必要一定要保留小数点,这与Nastran有区别。
如果一个数据行只有一个值,末尾必须要加一个逗号。
6、Truss单元只有平动自由度,意味着truss单元没有转动方向的刚度。
只能承受拉力和压力。
只是输出轴向应力应变分量。
7、Data report是生成的当前显示的内容的结果,如果只需要在.RPT文件中显示部分模型的结果,可以通过display group 只显示感兴趣的模型部分。
8、第一个与第三个是相对于某一个step,第二个是相对于整个分析历程多个step。
10、.dat文件显示模型的信息,显示*node print、*el print的结果,.msg显示迭代信息,.sta 显示整个分析过程中载荷步和增量步的大体情况,explicit分析过程中大部分信息都显示在.sta中。
11、单元。
种类:实体、壳体、梁单元、刚性单元、薄膜单元、无限单元、弹簧与阻尼单元、truss单元等。
自由度。
节点数:阶数或者插值点。
单元公式:非协调单元,杂交单元等。
材料不能在单元中流动,材料在单元间流动,单元变动而材料不变(自适应网格)。
Integration,减缩与非减缩。
12、通常实体单元的输出变量是相对于总体笛卡尔坐标系的。
ABAQUS用户子程序学习小结

1。
1 FORTRAN语言不区分大小写,文件扩展名为for,正文从第7列开始,第1~5列是标号区,第六列是续行标志区.1.2 FORTRAN语言中的“I-N规则”:I、J、K、L、M、N开头的为整型变量,其他开头为实型变量;2 DIMENSION COORDS(3)表示声明一个含3个元素的数组,下标分别为1、2、3,访问形式为COORDS(n),n为1~3;3 子程序(*。
for)文件中如何输出调试信息:WRITE(6,*)’COORDS(1)’,COORDS(1),在*。
dat文件中可看到输出,如果希望WRITE输出到msg文件中,则写为WRITE(7,*)'COORDS..。
;4 用户子程序DLOAD中COORDS数组的含义:COORDS(1)也是一个数组,存贮单元集合中所有单元积分点的X坐标,COORDS(2)存贮Y坐标,相应INP文件中的写法为:*DLOADPY,PYNU其中PY为单元集合名称,定义方法为:*Elset, elset=BEAM,generate1,5, 1。
.*ELSET,ELSET=PYBEAM5 DLOAD中F的定义方法:F只有定义在单元积分点上才有效,例如:F=1.0*COORDS (1)附一个简单实例:beam.inp文件:*Heading**Job name:Job—1 Model name:beam*Preprint,echo=NO,model=NO,history=NO,contact=NO****PARTS***Part, name=PART—1*End Part****ASSEMBLY***Assembly, name=Assembly***Instance,name=PART-1-1, part=PART-1*Node1, 0., 0。
2,20.,0.3, 40。
,0。
4, 60., 0.5,80。
, 0.6,100.,0.*Element,type=B311, 1, 22, 2,33, 3, 44, 4,55, 5,6*Elset,elset=BEAM, generate1, 5, 1**Region:(Section—1-BEAM:BEAM), (Beam Orientation:BEAM)**Section:Section—1-BEAM Profile:Profile-1*Beam Section,elset=BEAM,material=STEEL,temperature=GRADIENTS, section=RECT 0.2, 5.0。
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学习Abaqus 标准版共有“部件(part)”、“材料特性(propoterty)”、“装配(assemble)”、“计算步骤(step)”、“交互(interaction)”、“加载(load)”、“单元划分(mesh)”、“计算(job)”、“后处理(visualization)”、“草图(sketch)”十大模块组成。
建模方法:一个模型(model)通常由一个或几个部件(part)组成,“部件”又由一个或几个特征体(feature)组成,每一个部分至少有一个基本特征体(base feature),特征体可以是所创建的实体,如挤压体、切割挤压体、数据点、参考点、数据轴,数据平面,装配体的装配约束、装配体的实例等等。
1.首先建立“部件”(1)根据实际模型的尺寸决定部件的近似尺寸,进入绘图区。
绘图区根据所输入的近似尺寸决定网格的间距,间距大小可以在edit 菜单sketcher options 选项里调整。
(2)在绘图区分别建立部件中的各个特征体,建立特征体的方法主要有挤压、旋转、平扫三种。
同一个模型中两个不同的部件可以有同名的特征体组成,也就是说不同部件中可以有同名的特征体,同名特征体可以相同也可以不同。
部件的特征体包括用各种方法建立的基本特征体、数据点(datum point)、数据轴(d atum axis)、数据平面(datum plane)等等。
(3)编辑部件可以用部件管理器进行部件复制,重命名,删除等,部件中的特征体可以是直接建立的特征体,还可以间接手段建立,如首先建立一个数据点特征体,通过数据点建立数据轴特征体,然后建立数据平面特征体,再由此基础上建立某一特征体,最先建立的数据点特征体就是父特征体,依次往下分别为子特征体,删除或隐藏父特征体其下级所有子特征体都将被删除或隐藏。
××××特征体被删除后将不能够恢复,一个部件如果只包含一个特征体,删除特征体时部件也同时被删除×××××2.建立材料特性(1)输入材料特性参数弹性模量、泊松比等(2)建立截面(section)特性,如均质的、各项同性、平面应力平面应变等等,截面特性管理器依赖于材料参数管理器(3)分配截面特性给各特征体,把截面特性分配给部件的某一区域就表示该区域已经和该截面特性相关联3.建立刚体(1)部件包括可变形体、不连续介质刚体和分析刚体三种类型,在创建部件时需要指定部件的类型,一旦建立后就不能更改其类型。
ABAQUS用户子程序学习小结

ABAQUS用户子程序学习小结1 FORTRAN语言中的“I-N规则”:I、J、K、L、M、N开头的为整型变量,其他开头为实型变量;1.1 Fortran书写格式:1-5列:标号区;6列:续写标号区,一般就写"1";7-72列:语句区,本区内空格无效;注释行以C开头,本行内书写格式无要求;参考周煦《FORTRAN77结构化程序设计》,中国科学技术出版社,1995,38-40页 2 DIMENSION COORDS(3)表示声明一个含3个元素的数组,下标分别为1、2、3,访问形式为COORDS(n),n为1,3;3 子程序(*.for)文件中如何输出调试信息:WRITE(6,*)'COORDS(1)',COORDS(1),在*.dat文件中可看到输出,如果希望WRITE输出到msg文件中,则写为WRITE(7,*)'COORDS...;4 用户子程序DLOAD中COORDS数组的含义:COORDS(1)也是一个数组,存贮单元集合中所有单元积分点的X坐标,COORDS(2)存贮Y坐标,相应INP文件中的写法为:*DLOADPY,PYNU其中PY为单元集合名称,定义方法为:*Elset, elset=BEAM, generate1, 5, 1...*ELSET,ELSET=PYBEAM5 DLOAD中F的定义方法:F只有定义在单元积分点上才有效,例如:F=1.0*COORDS (1)附一个简单实例:beam.inp文件:*Heading** Job name: Job-1 Model name: beam *Preprint, echo=NO, model=NO, history=NO, contact=NO**** PARTS***Part, name=PART-1*End Part**** ASSEMBLY***Assembly, name=Assembly***Instance, name=PART-1-1, part=PART-1 *Node1, 0., 0.2, 20., 0.3, 40., 0.4, 60., 0.5, 80., 0.6, 100., 0. *Element, type=B311, 1, 22, 2, 33, 3, 44, 4, 55, 5, 6*Elset, elset=BEAM, generate1, 5, 1** Region: (Section-1-BEAM:BEAM), (Beam Orientation:BEAM)** Section: Section-1-BEAM Profile: Profile-1*Beam Section, elset=BEAM, material=STEEL, temperature=GRADIENTS, section=RECT0.2, 5.0.,0.,-1.*End Instance*Nset, nset=ENDS, instance=PART-1-11, 6*Nset, nset=_M4, internal, instance=PART-1-16,*Nset, nset=_M5, internal, instance=PART-1-11,*End Assembly**** MATERIALS***Material, name=STEEL*Elastic210000., 0.3*ELSET,ELSET=PYBEAM**** BOUNDARY CONDITIONS**** Name: Disp-BC-1 Type: Symmetry/Antisymmetry/Encastre*Boundary_M4, ENCASTRE** ---------------------------------------------------------------- **** STEP: Step-1***Step, name=Step-1*Static**** LOADS**** Name: CFORCE-1 Type: Concentrated force*DLOADPY,PYNU**** OUTPUT REQUESTS****** FIELD OUTPUT: F-Output-1 ***Output, field, variable=PRESELECT **** FIELD OUTPUT: F-Output-2 ***Output, field*Element OutputSF,**** HISTORY OUTPUT: H-Output-1 ***Output, history*Node Output, nset=ENDSCF1, CF2, CF3, CM1, CM2, CM3, RF1, RF2 RF3, RM1, RM2, RM3, U1, U2, U3, UR1 UR2, UR3*El Print, freq=999999*Node Print, freq=999999*End Stepbbb.for文件SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS,1 JLTYP,SNAME) CINCLUDE 'ABA_PARAM.INC'CDIMENSION TIME(2), COORDS (3)CHARACTER*80 SNAMEWRITE(6,*)'COORDS(3)',COORDS(3)F=1.0*COORDS (1)RETURNEND运行方法:在Abaqus Command提示符后输入:abaqus job=beam user=bbb interactive 子程序如下~如何编写,调研子程序,子程序USDFLD中给固化度赋了一个初值1×10-4。
本人学习abaqus五年的经验总结 让你比做例子快十倍

本人学习abaqus五年的经验总结让你比做例子快十倍本人学习abaqus五年的经验总结-让你比做例子快十倍第二章ABAQUS的基本用法[2](pp15)快捷键:ctrl+alt+左键来缩放模型;ctrl+alt+中键来平移模型;ctrl+alt+右键来旋转模型。
② (第16页)ABAQUS/CAE不会自动保存模型数据。
用户应定期自行保存模型,以避免意外丢失。
[3] (第17页)平面应力问题的截面属性类型是实体而不是壳。
ABAQUS/CAE推荐的建模方法是直接在几何模型上定义整个数值模型(如材料、边界条件、载荷等)。
荷载类型压力的含义是单位面积的力。
正值表示压力,负值表示张力。
[4](第22页)对于应力集中问题,使用二次单元可以提高应力结果的准确性。
[5](pp23)dismiss和cancel按钮的作用都是关闭当前对话框,其区别在于:前者出现在包含只读数据的对话框中;后者出现在允许作出修改的对话框中,点击cancel按钮可关闭对话框,而不保存所修改的内容。
[6] (第26页)每个模型中只能有一个由一个或多个实体组成的装配零件。
所谓的“实体”是部件中零件的映射,一个零件可以对应多个实体。
材料和截面特性在构件上定义,相互作用、边界条件和荷载在实体上定义,网格可以在构件或实体上定义,求解过程和输出结果的控制参数在整个模型上定义。
[7](pp26)abaqus/cae中的部件有两种:几何部件(nativepart)和网格部件(orphanmeshpart)。
创建几何部件有两种方法:(1)使用part功能模块中的拉伸、旋转、扫掠、倒角和放样等特征来直接创建几何部件。
(2)导入已有的cad模型文件,方法是:点击主菜单file→import→part。
网格部件不包含特征,只包含节点、单元、面、集合的信息。
创建网格部件有三种方法:(1)导入odb文件中的网格。
(2)导入inp文件中的网格。
(3)把几何部件转化为网格部件,方法是:进入mesh功能模块,点击主菜单mesh→createmeshpart。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ABAQUS用户子程序当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。
有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。
二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。
有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。
当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。
(子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下)首先介绍几个子程序:一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME)参数:1.F为用户定义的是每个积分点所作用的荷载的大小;2.KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值;3.TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值;4.NOEL,NPT为积分点所在单元的编号和积分点的编号;5.COORDS为当前积分点的坐标;6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。
功能:1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。
2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。
例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。
SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME)INCLUDE 'ABA_PARAM.INC' CDIMENSION TIME(2),COORDS(3)CHARACTER*80 SNAMEPARAMETER (PLOAD=100.E4)IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小P=PLOADELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小P=COORDS(1)*PLOAD !施加在积分点的荷载P是坐标的函数ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小P=COORDS(1)**2*PLOADELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小P=COORDS(1)**3*PLOADELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小P=COORDS(1)**4*PLOADEND IFRETURNENDUMAT 子程序具有强大的功能,使用UMAT 子程序:(1) 可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。
(2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQUS 中的任何单元;(3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian)矩阵,即应力增量对应变增量的变化率。
(4) 可以和用户子程序“USDFLD”联合使用,通过“USDFLD”重新定义单元每一物质点上传递到UMAT 中场变量的数值。
由于主程序与UMAT 之间存在数据传递,甚至共用一些变量,因此必须遵守有关UMAT 的书写格式,UMAT 中常用的变量在文件开头予以定义,通常格式为:SUBROUTINE UMA T(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,1 RPL,DDSDDT,DRPLDE,DRPLDT,2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)INCLUDE 'ABA_PARAM.INC'CHARACTER*80 CMNAMEDIMENSION STRESS(NTENS),STATEV(NSTA TV),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)user coding to define DDSDDE, STRESS, STA TEV, SSE, SPD, SCDand, if necessary, RPL, DDSDDT, DRPLDE, DRPLDT, PNEWDTRETURNENDUMAT 中的应力矩阵、应变矩阵以及矩阵DDSDDE ,DDSDDT ,DRPLDE 等,都是直接分量存储在前,剪切分量存储在后。
直接分量有NDI 个,剪切分量有NSHR 个。
各分量之间的顺序根据单元自由度的不同有一些差异,所以编写UMAT 时要考虑到所使用单元的类别。
下面对UMAT 中用到的一些变量进行说明:DDSDDE(NTENS,NTENS)是一个NTENS 维的方阵,称作雅可比矩阵,,是应力的增量,是应变的增量,DDSDDE(I,J)表示增量步结束时第J 个应变分量的改变引起的第I 个应力分量的变化。
通常雅可比是一个对称矩阵,除非在“*USER MATERIAL”语句中加入了“UNSYMM”参数。
STRESS (NTENS)应力张量矩阵,对应NDI 个直接分量和NSHR 个剪切分量。
在增量步的开始,应力张量矩阵中的数值通过UMAT 和主程序之间的接口传递到UMAT 中,在增量步的结束UMAT 将对应力张量矩阵更新。
对于包含刚体转动的有限应变问题,一个增量步调用UMAT 之前就已经对应力张量的进行了刚体转动,因此在UMA T 中只需处理应力张量的共旋部分。
UMAT 中应力张量的度量为柯西(真实)应力。
STATEV (NSTA TEV)用于存储状态变量的矩阵,在增量步开始时将数值传递到UMAT 中。
也可在子程序USDFLD或UEXPAN 中先更新数据,然后增量步开始时将更新后的数据传递到UMA T 中。
在增量步的结束必须更新状态变量矩阵中的数据。
和应力张量矩阵不同的是:对于有限应变问题,除了材料本构行为引起的数据更新以外,状态变量矩阵中的任何矢量或者张量都必须通过旋转来考虑材料的刚体运动。
状态变量矩阵的维数,等于关键字“*DEPV AR”定义的数值。
状态变量矩阵的维数通过ABAQUS 输入文件中的关键字“*DEPV AR”定义,关键字下面数据行的数值即为状态变量矩阵的维数。
材料常数的个数,等于关键字“*USER MATERIAL”中“CONSTANTS”常数设定的值。
PROPS (NPROPS)材料常数矩阵,矩阵中元素的数值对应于关键字“*USER MA TERIAL”下面的数据行。
SSE ,SPD ,SCD分别定义每一增量步的弹性应变能,塑性耗散和蠕变耗散。
它们对计算结果没有影响,仅仅作为能量输出。
其他变量:STRAN( NTENS) :应变矩阵;DSTRAN( NTENS) :应变增量矩阵;DTIME :增量步的时间增量;NDI :直接应力分量的个数;NSHR :剪切应力分量的个数;NTENS :总应力分量的个数,NTENS NDI NSHR = + 。
使用UMAT 时需要注意单元的沙漏控制刚度和横向剪切刚度。
通常减缩积分单元的沙漏控制刚度和板、壳、梁单元的横向剪切刚度是通过材料属性中的弹性性质定义的。
这些刚度基于材料初始剪切模量的值,通常在材料定义中通过“*ELASTIC”选项定义。
但是使用UMAT 的时候,ABAQUS 对程序输入文件进行预处理的时候得不到剪切模量的数值。
所以这时候用户必须使用“*HOURGLASS STIFFNESS”选项来定义具有沙漏模式的单元的沙漏控制刚度,使用“*TRANSVERSE SHEAR STIFFNESS”选项来定义板、壳、梁单元的横向剪切刚度。
几个关于子程序的问题及相应解答Q: 本人在用umat作本构模型时,*static,1,500,0.000001,0.1 此时要求的增量步很多,即每次增量要很小,*static1,500 时,在弹性向塑性过度时,出现错误,增量过大,出现尖点.?A: YOU CAN TRY AS FOLLOWS:*STEP,EXTRAPOLATION=NO,INC=2000000*STATIC0.001,500.0,0.00001,0.1。
Q: 在abaqus中,如果采用umat,利用自己的本构,如何让abaqus明白这种材料的弹塑性应变,也就是说,如何让程序返回弹性应变与塑性应变,好在output中输出,我曾想用最笨地方法,在uvarm中定义输出,利用getvrm获取材料点的值,但无法获取增量应力,材料常数等,研究了帮助中的例子,umatmst3.inp,umatmst3.for,他采用mises J2 流动理论,我在output history 显示他已进入塑性状态,但他的PE仍然为0!!?A: 用uvar( )勉强成功。
Q: 偶在umat中调用求主应力函数CALL SPRINC(STRESS,PS,LSTR,NDI,NSHR)后,存储主应力得数组PS中各个主应力排列顺序是什么?PS1>PS2>PS3 ?PS1<PS2<PS3 ?PS1>PS3>PS2 ?A: 第二个。
个人觉得:umat实现自己的本构没有固定的方法,对于不同的本构有可能必须采用不同的方法。
这要靠自己不断地摸索。
有可能一种方法对于简单加载问题还行,但有可能对于复杂问题并不收敛。
最重要一点,就是umat中采用的算法必须consistent.再就是ddsdde必须正确,(如果采用back_Euler 方法等一些算法,ddsdde错误有时不影响结果(对于简单加载问题没有影响,能收敛,),但对于复杂问题不收敛。
uptonow,你这个算法对于Mises,hill,J2,J2d等一类的屈服函数是正确的,但具体的本构还要灵活运用,这我也正学习,正在摸索。