找回密码
 注册
Simdroid-非首页
查看: 4401|回复: 105

[子程序] 简单介绍一个用UVARM子程序作uel的后处理

[复制链接]
发表于 2010-7-20 10:34:25 | 显示全部楼层 |阅读模式 来自 美国
UVARM子程序可以输出材料点(即积分点)上场量,这些量可以自己定义的,一般是定义ABAQUS场变量里不提供的变量。由于这个功能,就可以把uel上场量定义在一个标准的ABAQUS单元,而标准ABAQUS单元得到了积分点上场量,就会进行插值,从而整个单元的数值。
      具体操作如下:用一个相同积分点的标准单元skin uel单元,对了这个标准单元的材料属性要设定的非常小,从而基本可以忽视这个单元对计算的影响。在uel定义所要输出的场量(如应力应变等SVARS量),用fortran中common命令将uel与UVARM中场量统一起来。然后在UVARM子程序中,将这个变量赋予标准单元的UVAR值(即自定义的场量)。在前处理中定义自定义场量的关键字如下:
*Material, name=
*user output variables
     我根据论坛上4节点平面uel单元,作了一个UVARM子程序。大家可以查下,内容很简单,相信对编写uel的人(我相信没有几个人做的)有所帮助,同时也可以学习下uvarm子程序。
     定义场变量如下:

DO I=1,3
uvar(I)=SSTRAIN(I)
uvar(I+4)=SSTRESS(I)
ENDDO
uvar(4)=EMU*(SSTRESS(1)+SSTRESS(2))
这些场量在odb里面可以输出。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

2

查看全部评分

发表于 2010-7-20 11:57:29 | 显示全部楼层 来自 上海
Simdroid开发平台
好资料,谢谢
回复 不支持

使用道具 举报

发表于 2010-7-20 14:59:52 | 显示全部楼层 来自 浙江杭州
确实不错,一直被UEL的后处理困惑,这个方法值得推广!
回复 不支持

使用道具 举报

发表于 2010-7-20 15:06:51 | 显示全部楼层 来自 浙江杭州
请问您的程序中
   knoel=noel-100
是什么意思呢?谢谢!
回复 不支持

使用道具 举报

 楼主| 发表于 2010-7-20 15:11:45 | 显示全部楼层 来自 美国
noel是标准单元的编号,而knoel是uel的编号。在inp里面,我定义一个uel单元,编号为1,而标准单元编号为101,相差100。
回复 不支持

使用道具 举报

发表于 2010-7-20 15:42:02 | 显示全部楼层 来自 浙江杭州
本帖最后由 amani 于 2010-7-20 15:46 编辑

谢谢,下面的语句请解释一下
DIMENSION UVAR(*),TIME(2),DIRECT(3,3),T(3,3),COORD(*),

$
JMAC(*),JMATYP(*)
C
USER DEFINED DIMENSION STATEMENTS

CHARACTER*3 FLGRAY(15)

DIMENSION ARRAY(15),JARRAY(15)


请问如果UEL单元数目很多(如1000个)的话,如何操作呢?我对UVARM还不是很熟悉。你的QQ多少?想加你请教一下。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-7-20 16:04:44 | 显示全部楼层 来自 美国
uel单元数再多也可以用啊,大哥你不会把单元编号的差值变大些,相差10万够了吗?10万不够100万够吗?这些都是人为规定。变量的说明帮助文档上都有。在这个UVARM程序里,可能有些变量没用到,因为打字是很麻烦的阿,还有可能出错,数组我是copy帮助文档里面的。
回复 不支持

使用道具 举报

发表于 2010-7-20 18:04:21 | 显示全部楼层 来自 浙江杭州
7# lr00011


请告知你的QQ,谢谢!
回复 不支持

使用道具 举报

发表于 2010-7-23 21:19:17 | 显示全部楼层 来自 上海
支持楼主支持楼主
回复 不支持

使用道具 举报

发表于 2010-8-4 15:05:13 | 显示全部楼层 来自 湖北武汉
你定义了这个子程序SUBROUTINE UVARM
但是我没有看到你在哪里调用它啊,还是不需要调用啊?
回复 不支持

使用道具 举报

 楼主| 发表于 2010-8-4 15:19:36 | 显示全部楼层 来自 美国
本帖最后由 lr00011 于 2010-8-4 15:22 编辑

需要调用,在计算材料积分点的时候。
*Material,
*user output variables
计算过程倒是不需要,这个只是计算输出结果,作后处理。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-8-4 15:42:39 | 显示全部楼层 来自 湖北武汉
非常感谢
回复 不支持

使用道具 举报

发表于 2010-8-5 09:14:57 | 显示全部楼层 来自 浙江杭州
你好,你的方法比较好。现在我做cohesive的UEL的时候,用你的方法遇到一个问题,我用CPE4单元代替cohesive单元输出,但是零厚度的coheisve单元等效到CPE4单元,出现了单元形状误差大,无法计算的问题。我的意思是只有有限厚度的cohesive单元才能用现有的单元进行替代显示结果。请问这个问题如何解决呢?
回复 不支持

使用道具 举报

 楼主| 发表于 2010-8-5 10:18:48 | 显示全部楼层 来自 美国
这个没试过,也就不知道。不过CPE4单元是平面问题,你可以给cpe4单元一个标准厚度,这样就能保证CPE4单元是收敛的,剩下只有你自己定义单元收敛不收敛的问题了。这里可能CPE4单元厚度跟子程序单元厚度不一样,但是应该不会有影响,你只要能给CPE4积分点的值就可以了,这样就能进行后处理了。
回复 不支持

使用道具 举报

发表于 2010-8-5 16:37:45 | 显示全部楼层 来自 清华大学
也可以用umat定义一层虚单元,将uel的状态变量通过common存到umat中的状态变量数组中。与楼主的方法效果一样。
回复 不支持

使用道具 举报

发表于 2010-8-6 10:03:12 | 显示全部楼层 来自 浙江杭州
我用CPE4,出现了单元形状奇异的问题。不知道如何解决好
回复 不支持

使用道具 举报

 楼主| 发表于 2010-8-6 10:38:27 | 显示全部楼层 来自 美国
CPE4跟你的子程序单元变形一样,根本原因就是子程序单元形状奇异。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-8-8 08:18:11 | 显示全部楼层 来自 LAN
零厚度的cohesive单元不存在奇异的问题
回复 不支持

使用道具 举报

 楼主| 发表于 2010-8-8 08:28:30 | 显示全部楼层 来自 北京朝阳
对零厚度的cohesive单元不是很熟悉,但是显然结构形状已经发生了奇异了,不适合用CPE4单元了。有一个建议,你可以在标准单元库里面找一个适合这种可以允许单元奇异的单元类型来skin子程序单元。当然我也不知道有没有这样单元存在。
回复 不支持

使用道具 举报

发表于 2010-9-5 17:01:24 | 显示全部楼层 来自 河南郑州
我要好好学习学习啊,有人知道怎么用uel输出j积分或者能力释放率不,还望大虾不吝赐教啊 q297183138
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-28 12:29 , Processed in 0.062375 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表