下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ABAQUS用户子程序转自当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINEDLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把
2、它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。(子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下)首先介绍几个子程序:一.SUBROUTINEDLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS,JLTYP,SNAME)参数:1. F为用户定义的是每个积分点所作用的荷载的大小;2. KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值;3. TIME(1),TIME(2)为当前STEPTIME和INCREMENTTIME的值;4. NOEL,NPT为积分点所在单元的
3、编号和积分点的编号;5. COORDS为当前积分点的坐标;6. 除F外,所有参数的值都是ABAQUS传到用户子程序中的。功能:1. 荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。2. 用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINEDLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS,1 JLTYP,SNAME)INCLUDE'ABA_PARAM.INC'CDIMENSIONTI
4、ME(2),COORDS(3)CHARACTER80SNAMEPARAMETER(PLOAD=100.E4)IF(KSTEP.EQ.1)THEN!当STEP=1时的荷载大小P=PLOADELSEIF(KSTEP.EQ.2)THEN!当STEP=2时的荷载大小P=COORDS(1)PLOAD!施加在积分点的荷载P是坐标的函数ELSEIF(KSTEP.EQ.3)THEN!当STEP=3时的荷载大小P=COORDS(1)2PLOADELSEIF(KSTEP.EQ.4)THEN!当STEP=4时的荷载大小P=COORDS(1)3PLOADELSEIF(KSTEP.EQ.5)THEN!当STEP=5时的
5、荷载大小P=COORDS(1)4PLOADENDIFRETURNENDUMAT子程序具有强大的功能,使用UMAT子程序:(1) 可以定义材料的本构关系,使用ABAQUS材料库中没有包含的材料进行计算,扩充程序功能。(2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQUS中的任何单元;(3) 必须在UMAT中提供材料本构模型的雅可比(Jacobian)矩阵,即应力增量对应变增量的变化率。(4) 可以和用户子程序“USDFLD”联合使用,通过“USDFLD”重新定义单元每一物质点上传递到UMAT中场变量的数值。由于主程序与UMAT之间存在数据传递,甚至共用一些变量,因
6、此必须遵守有关UMAT的书写格式,UMAT中常用的变量在文件开头予以定义,通常格式为:SUBROUTINEUMAT(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'
7、;ABA_PARAM.INC'CHARACTER80CMNAMEDIMENSIONSTRESS(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)usercodingtodefineDDSDDE,STRESS,STATEV,SSE,SPD,SCDand,ifn
8、ecessary,RPL,DDSDDT,DRPLDE,DRPLDT,PNEWDTRETURNENDUMAT中的应力矩阵、应变矩阵以及矩阵DDSDDE,DDSDDT,DRPLDE等,都是直接分量存储在前,剪切分量存储在后。直接分量有NDI个,剪切分量有NSHR个。各分量之间的顺序根据单元自由度的不同有一些差异,所以编写UMAT时要考虑到所使用单元的类别。下面对UMAT中用到的一些变量进行说明:DDSDDE(NTENS,NTENS)是一个NTENS维的方阵,称作雅可比矩阵,是应力的增量,是应变的增量,DDSDDE(I,J)表示增量步结束时第J个应变分量的改变引起的第I个应力分量的变化。通常雅可比是
9、一个对称矩阵,除非在“USERMATERIAL”语句中加入了“UNSYMM”参数。STRESS(NTENS)应力张量矩阵,对应NDI个直接分量和NSHR个剪切分量。在增量步的开始,应力张量矩阵中的数值通过UMAT和主程序之间的接口传递到UMAT中,在增量步的结束UMAT将对应力张量矩阵更新。对于包含刚体转动的有限应变问题,一个增量步调用UMAT之前就已经对应力张量的进行了刚体转动,因此在UMAT中只需处理应力张量的共旋部分。UMAT中应力张量的度量为柯西(真实)应力。STATEV(NSTATEV)用于存储状态变量的矩阵,在增量步开始时将数值传递到UMAT中。也可在子程序USDFLD或UEXPA
10、N中先更新数据,然后增量步开始时将更新后的数据传递到UMAT中。在增量步的结束必须更新状态变量矩阵中的数据。和应力张量矩阵不同的是:对于有限应变问题,除了材料本构行为引起的数据更新以外,状态变量矩阵中的任何矢量或者张量都必须通过旋转来考虑材料的刚体运动。状态变量矩阵的维数,等于关键字“DEPVAR”定义的数值。状态变量矩阵的维数通过ABAQUS输入文件中的关键字“DEPVAR”定义,关键字下面数据行的数值即为状态变量矩阵的维数。材料常数的个数,等于关键字“USERMATERIAL”中“CONSTANTS”常数设定的值。PROPS(NPROPS)材料常数矩阵,矩阵中元素的数值对应于关键字“USE
11、RMATERIAL”下面的数据行。SSE,SPD,SCD分别定义每一增量步的弹性应变能,塑性耗散和蠕变耗散。它们对计算结果没有影响,仅仅作为能量输出。其他变量:STRAN(NTENS):应变矩阵;DSTRAN(NTENS):应变增量矩阵;DTIME:增量步的时间增量;NDI:直接应力分量的个数;NSHR:剪切应力分量的个数;NTENS:总应力分量的个数,NTENSNDINSHR=+。使用UMAT时需要注意单元的沙漏控制刚度和横向剪切刚度。通常减缩积分单元的沙漏控制刚度和板、壳、梁单元的横向剪切刚度是通过材料属性中的弹性性质定义的。这些刚度基于材料初始剪切模量的值,通常在材料定义中通过“ELAS
12、TIC”选项定义。但是使用UMAT的时候,ABAQUS对程序输入文件进行预处理的时候得不到剪切模量的数值。所以这时候用户必须使用“HOURGLASSSTIFFNESS”选项来定义具有沙漏模式的单元的沙漏控制刚度,使用“TRANSVERSESHEARSTIFFNESS”选项来定义板、壳、梁单元的横向剪切刚度。几个关于子程序的问题及相应解答Q本人在用umat作本构模型时,static,1,500,0.000001,0.1此时要求的增量步很多,即每次增量要很小,static1,500时,在弹性向塑性过度时,出现错误,增量过大,出现尖点.AYOUCANTRYASFOLLOWSSTEP,EXTRAPOL
13、ATION=NO,INC=2000000STATIC0.001,500.0,0.00001,0.1。Q在abaqus中,如果采用umat,利用自己的本构,如何让abaqus明白这种材料的弹塑性应变,也就是说,如何让程序返回弹性应变与塑性应变,好在output中输出,我曾想用最笨地方法,在uvarm中定义输出,利用getvrm获取材料点的值,但无法获取增量应力,材料常数等,研究了帮助中的例子,umatmst3.inp,umatmst3.for,他采用misesJ2流动理论,我在outputhistory显示他已进入塑性状态,但他的PE仍然为0!A用uvar()勉强成功。Q偶在umat中调用求主应
14、力函数CALLSPRINC(STRESS,PS,LSTR,NDI,NSHR)后,存储主应力得数组PS中各个主应力排列顺序是什么?PS1PS2PS3PS1PS2PS3PS1PS3PS2A第二个。个人觉得:umat实现自己的本构没有固定的方法,对于不同的本构有可能必须采用不同的方法。这要靠自己不断地摸索。有可能一种方法对于简单加载问题还行,但有可能对于复杂问题并不收敛。最重要一点,就是umat中采用的算法必须consistent.再就是ddsdde必须正确,(如果采用back_Euler方法等一些算法,ddsdde错误有时不影响结果(对于简单加载问题没有影响,能收敛,),但对于复杂问题不收敛。up
15、tonow,你这个算法对于Mises,hill,J2,J2d等一类的屈服函数是正确的,但具体的本构还要灵活运用,这我也正学习,正在摸索。有时,umat需要很强的有限元基础,并且对采用的本构要很熟悉,不要在一颗树上吊死才好。首先要确认自己的umat没有错误,如果没有,但就是不收敛(在不断减小加载步长的情况下,当然最好对步长不敏感,特别是对于粘弹性,粘塑性,内变量一类的材料,有的本构取决于背应力的计算)。那就应该考虑换一种算法。一点体会,请大家探讨。Qabaqus-uamt的老问题,缺少'ABA_PARAM.INC'文件A在cvf6.5调试时,显示缺少
16、9;ABA_PARAM.INC'文件!这个没有任何关系的,这个错误将在ABAQUS调用UMAT的时候自动会找到,仅仅有这个错误将没有任何影响的。也就是说,ABAQUS中调用的时候,实际并不存在这个错误。FT,忘了说一句了,你把ABA_PARAM.INC.dp或ABA_PARAM.INC.sp拷到你的程序工作空间后,应该将把ABA_PARAM.INC.dp或ABA_PARAM.INC.sp的后缀.sp或.dp去掉,即将ABA_PARAM.INC.dp或ABA_PARAM.INC.sp改名为ABA_PARAM.INC。呵呵,他的意思是在VisualFortran中调试其子程序,我觉
17、得这是一个好办法,我当时也是这麽办的,毕竟在ABAQUS中调试是非常麻烦的,只有当你的UMAT没有语法或者明显的逻辑错误,你在ABAQUS中调试才能事半功倍。Q:uvarm可以输出到哪里?.odb可以么?另外那个strav?就是自己定义用于umat的那个数组里的数可以输出到.odb里么?A:在umat中,statev是不能用在output中的,statev只是作为一个解的状态变量,说来惭愧,我是在umat中定义peeq,(peeq)的求解一般在弹塑性力学书上有(等效塑性应变),用write()写入一个临时文件,(切记:这个文件unit号不要与abaqus中的重合,因为他有一些系统默认的文件号,
18、)然后在uvarm中读取,以uvarm输出,因为uvarm可以以odb的形式输出,支持output,field,output,historyQ:在本版看了一个一维固结的例子,其中含有用户子程序,如下SUBROUTINEUFIELD(FIELD,KFIELD,NSECPT,KSTEP,KINC,TIME,NODE,COORDS,TEMP,DTEMP)INCLUDE'ABA_PARAM.INC'DIMENSIONFIELD(NSECPT),TIME(2),COORDS(3),TEMP(NSECPT),DTEMP(NSECPT)KFIELD=1FIELD(1)=COO
19、RDS(2)RETURNEND我在VF6.5中进行调试,提示找不到ABA_PARAM.INC请问大侠这如何解决。还有我因为是初次接触用户子程序,我查阅了本版所有的相关贴子,都讲的不太详细,我将问题总结一下,大侠们能不能详细的讲解一下,1子程序格式(程序后缀是.f;.f90;.for;.obj)2 CAE中如何调用,command下如何调用?3 若有多个子程序同时存在,如何处理4我对VF不是很熟,是否可以用VC,C+编写子程序?A若要在vf中调试,那么应该根据需要把SITE文件夹中的ABA_PARAM_DP.INC(双精度)或ABA_PARAM_SP.INC(单精度)拷到相应的位置,并改名为AB
20、A_PARAM.INC即可。1。我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。在Abaqus中,运行abaqusj=jobnameuser二username时,默认的用户子程序后缀名是.for(.f,.f90应该都不行的,手册上也有讲过),只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。如果username包括扩展名for或obj,那么就根据各自的扩展名ABAQUS会自动选择进行操作。2。cae中在creatjob的jobmanager中的general中可以指定子程序;command下用命令abaqusj=jobnameuser=userfilename(无后缀);3。将其写在一个文件中即可,然后用一个总的子程序调用(具体参见手册)4。据说6.4的将可以,6.3的你可以尝试着将VC,C+程序编译为obj文件,没试过。在你的工作目录下应该已经存在ufield.obj和uvarm.obj这两个文件(这两个文件应该是你分别单独调试ufield.FOR和uvarm.FOR时自动编译生成的,你可以将他们删掉试试看),但是由于你的FOR文件中已经有了UVARM和UFIELD这两个subroutin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CRRA 0301-2023绿色再生塑料 产销监管链
- T/TMAC 231-2025电子器件用金刚石热沉片
- T/GDLC 022-2024温室气体 产品碳足迹 量化方法与要求 凝胶糖果
- T/CI 479-2024区域复合水灾害特征变异识别规程
- T/CABC 13-2024产品数字护照 动力蓄电池唯一编码
- T/CRHA 088-2024病理免疫组织化学检测质控品要求
- 2025~2026学年黑龙江齐齐哈尔市龙江县人教版上册第一次学情自测教学质量抽测六年级数学试卷【附答案】
- 2025-2026学年吉林省榆树市初中政治八年级期末上册自测高频题(附答案)
- 2027届江苏省南通市田家炳中学七年级数学第一学期期末检测模拟试题含解析
- 前台接待访客登记、引导与通知流程方案
- 2026年皖豫天一大联考高三10月英语试题(含答案)
- 2026-2027学年四年级上学期统编版语文单元练习卷 第一单元-1(含答案)
- 【应用方案】2026智慧农业农业机器人智能感知与精准作业一体化设计方案
- 高标准农田建设项目初步设计技术规程(NYT 5490-2026 )
- CSCO非小细胞肺癌诊疗指南(2026版)
- 压缩空气储能地下洞库施工方案
- T∕CCEAS008-2026 建设工程造价咨询成果文件质量标准
- (2026年)护理查对制度课件
- 第10课《养成遵纪守法好习惯》第1框《增强遵纪守法意识》-【中职思政】《职业道法与法治》课件(高教版2023基础模块)
- 口腔侵入性操作目录
- 班主任基本功大赛-情景答辩23题(中学组)
评论
0/150
提交评论