复合材料固化中固化度场—温度场耦合子程序的分析和结论
本帖最后由 fuyizhi 于 2012-2-26 20:54 编辑在帖子http://forum.simwe.com/thread-914156-1-1.html中,tony_Von和juliette调通了固化度场—温度场耦合四子程序,有几个疑问,希望能和各位讨论一下tony_Von帖子中的四个子程序如下: 子程序一:USDFLD(重新定义材料点上的场变量,不知道这个翻译对不对)subroutineusdfld(field,statev,pnewdt,direct,t,celent, 1 time,dtime,cmname,orname,nfield,nstatv,noel,npt,layer, 2 kspt,kstep,kinc,ndi,nshr,coord,jmac,jmtyp,matlayo,laccfla)include 'aba_param.inc'character*80 cmname,ornamecharacter*3flgray(15)dimension field(nfield),statev(nstatv),direct(3,3), 1 t(3,3),time(2)dimension array(15),jarray(15),jmac(*),coord(*) !jmatyp(*),callgetvrm('TEMP',array,jarray,flgray,jrcd, $ jmac, jmtyp, matlayo, laccflg)temp = array(1)if(kinc.eq.1)then statev(1)=1E-4 else field(1)=statev(1) endifreturnend 子程序二:DISP(定义温度边界) SUBROUTINEDISP(U,KSTEP,KINC,TIME,NODE,NOEL1 JDOF,COORDS) INCLUDE 'ABA_PARAM.INC' DIMENSION U(3), TIME(2),COORDS(3)IF(TIME(2).LE.2400.)THENU(1) = 303.+TIME(2)/24. ELSE IF(TIME(2).LE.4200.)THENU(1) = 403. ELSE IF(TIME(2).LE.5400.)THENU(1) = 403.+(TIME(2)-4200.)/24. ELSEU(1) = 453. END IF RETURN END 子程序三:FILM(定义换热系数和环境温度) SUBROUTINE FILM(H,SINK,TEMP,JSTEP,JINC,TIME,1 NOEL,NPT,COORDS, 1 JLTYP,FIELD,NFIELD,SNAME,JUSERNODE,AREA) INCLUDE'ABA_PARAM.INC' DIMENSION H(2),COORD(3),TIME(2),FIELD(NFIELD) CHARACTER*80 SNAMEC H(1) FILM COEFFICIENT AT THIS POINT.C SINK : THE SAME TEMPETATURE OF THE CURE CYCLE.H(1) = 15IF(TIME(2).LE.2400.)THEN SINK = 303.+TIME(2)/24. ELSE IF(TIME(2).LE.4200.)THEN SINK = 403. ELSE IF(TIME(2).LE.5400.)THEN SINK = 403.+(TIME(2)-4200.)/24. ELSE SINK = 453. END IF RETURN END 子程序四:HEATVAL(定义内热以及固化度) SUBROUTINE HETVAL(CMNAME,TEMP,TIME,DTIME,1 STATEV,FLUX,PREDEF, DPRED) INCLUDE'ABA_PARAM.INC' CHARACTER*80 CMNAME DIMENSION TEMP(2),STATEV(3),PREDEF(1),TIME(2),1 FLUX(2),DPRED(1)IF(TEMP(1).LT.203.)THENSTATEV(2) = 0.0 ELSEC STATEV(2) = 3270.*EXP(-6820./U(1))* (1.-STATEV(1)) STATEV(2) = 0.327*(1.-STATEV(1))STATEV(1) = STATEV(1)+ STATEV(2)* DTIME END IFFLUX(1) = 242971740* STATEV(2) RETURN END为了缩短篇幅,将所有注释语句删了。 分析和结论:1、 将HAETVAL子程序中的语句STATEV(2) = 3270.*EXP(-6820./U(1))* (1.-STATEV(1))中的U(1)改为TEMP,再将下一语句删除,程序能跑通,这样比较符合树脂基固化动力学方程。2、 子程序DISP在固化模拟中有什么作用?个人认为,给构件定义一个初始温度(通过预定义场定义不用通过子程序),再通过子程序FILM定义环境温度和对流换热系数,不就可以吗?通过验证,这样是可以的。但是因为在http://forum.simwe.com/thread-914156-1-1.html中和庄茁老师的例子中都有DISP这个程序,所以个人关于能不能删掉这个子程序还有些疑问,是否这个程序里面还有一些隐藏功能。希望和各位讨论讨论。 是的。做顺序耦合的话,UMAT应该比较容易编的,主要难度在数据导入上,我自己还没玩过这么高级的功能呢。。。uexternaldb可以尝试一下
至于资料嘛,本来做这东西的人就不多,做出来了也是团队内部交流,网上是难找的。终究还得靠自己,唉 附加问题:我这个分析是热分析,因此在CAE里面我只定义了和热有关的材料常数,然后在field output里面定义 FV(predefinedfieldvariables)输出固化度,但是结果是输出不了,当我在材料里面加上elastic定义,再定义其number of field variables 为1 的时候才能输出固化度,粗看了一下帮助文档,找不到答案,细看又没什么时间,所以就着一起提问了 我也认为DISP在固化模拟中没用,环境温度的变化直接在FILM中定义就行了。
树脂固化动力学方程原式是简化的而已。
关于number of field variables,我用UMAT做的,没注意,但材料定义时User Defined Field和Depvar 要选出来的.
顺便问下LZ:有没有用该程序做复合材料层合板固化模拟?
层合板功能不支持C3D8T的问题有没有好的方法解决? SimCaesar 发表于 2012-3-4 21:08 static/image/common/back.gif
我也认为DISP在固化模拟中没用,环境温度的变化直接在FILM中定义就行了。
树脂固化动力学方程原式是简化的 ...
关于number of field variables的问题,原因刚出来了,必须得在材料参数中任何一个参数中定义一下field。
第二个问题,我也愁啊,固化涉及到温度场和变形,用coupled temp-displacement做事最好的,但是尼玛这个C3D8T不支持层合板啊,我想来想去只有两种方法:1,自己写单元,还没有尝试,不知道工作量和难度,不知道正确性;2,用顺序耦合的方式,先用Heat transfer做固化度-温度场的模拟,然后导到静力分析中做变形的分析,得自己写umat,umat中材料的属性是固化度的函数,如果直接导入热分析的ODB文件不能导入固化度场的话通过其他的一些方法应该还是能导入固化度的,Subroutine uexternaldb子程序就是输入和输出的,这个方法没有验证过,同样也不知道难度。唉,网上没有一个关于全固化的例子,都得自己摸索啊。 这个贴得顶下 顶一下,谢谢 有用UMATHT子程序定义材料温度属性的吗?想问一下这个子程序怎么调用
页:
[1]