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

[子程序] UEL 3维8节点等参单元动力学计算

[复制链接]
发表于 2016-8-9 22:18:50 | 显示全部楼层 |阅读模式 来自 大连理工大学
悬赏10仿真币未解决
本帖最后由 旧日的轨迹 于 2016-12-30 19:17 编辑

问题说明:

1.C3D8RABAQUS自带的C3D8R单元计算,Static.inpFrequency.inpDynamic.inp分别是进行静力学分析,模态分析,隐式动力学响应分析的输入文件;

2. User1中:Static3D8N.for是进行静力学分析的38节点等参单元子程序,子程序调用正常,但其计算结果与用C3D8R单元计算的结果有差异;(可能原因:矩阵求逆的过程有问题,使用两个不同的求逆函数INVERS1,INVERS2,计算结果不一样)

3.User2中:Dynamic3D8N.for38节点等参单元,目标是可以进行静力学分析,模态分析和隐式动力学响应分析,Static3D8N.inpFrequency3D8N.inp Dynamic3D8N.inp分别是静力学分析,模态分析,隐式动力学响应分析的输入文件,但ABAQUS调用子程序时出现错误:
The executableG:\SIMULA\6.10-1\exec\standard.exe aborted with system error code 144. Please check the.dat, .msg, and .sta files for 。。。。。。。
出现systemerror code 144可能是因为:某个变量计算过程中分母为0


另外,在编写单元的过程中有几个问题想请教(可能对找出程序的错误也有帮助):
1.ABAQUS调用等参单元计算的原理及流程是怎样的?

a.  在每个高斯积分点内,进行增量步(increment)计算,每个增量步内法用牛顿迭代,计算刚度、质量矩阵,RHS之后,8个高斯积分点上的刚度、质量矩阵,RHS叠加?
——ABAQUS User Subroutines Reference Manual中UEL实例是这样计算的(静力学分析) http://abaqusdoc.ucalgary.ca/books/sub/default.htm

b.  在每个高斯积分点内,计算刚度、质量矩阵,8个积分点上刚度、质量矩阵叠加之后得到整个单元刚度、质量矩阵,之后再计算RHS?(自定义单元User2采用这样的方法,有可能是调用时出错的原因)
  如果按照流程a计算,应该怎样设置SVARS?
隐式动力学响应分析过程中,半增量步残留计算过程,貌似必须用到前一增量步开始时的RHS和当前增量步开始时RHS,以及当前增量步结束时的RHS

2.UEL中的关键词LFLAGS(1)和LFLAGS(3)的优先顺序是怎样的?或者说UEL程序的结构应该是a还是b?
a.    IF (LFLAGS(3).EQ.1) THEN
             IF (LFLAGS(1).EQ.1 .OR. LFLAGS(1).EQ.2) THEN
                   IF (LFLAGS(4).NE.0) THEN         
                   ELSE
                   END IF      
             ELSE IF (LFLAGS(1).EQ.11 .OR. LFLAGS(1).EQ.12) THEN
             ENDIF
       ELSE IF (LFLAGS(3).EQ.2) THEN   
       ELSE IF (LFLAGS(3).EQ.3) THEN
       ELSE IF (LFLAGS(3).EQ.4) THEN
       ELSE IF (LFLAGS(3).EQ.5) THEN
       ELSE IF (LFLAGS(3).EQ.6) THEN
       ELSE IF (LFLAGS(3).EQ.100) THEN
             IF (LFLAGS(1).EQ.1 .OR. LFLAGS(1).EQ.2) THEN
             ELSE IF (LFLAGS(1).EQ.41) THEN
             END IF
        ENDIF
b.     IF (LFLAGS(1).EQ.41) THEN
             IF (LFLAGS(3).EQ.2) THEN
             ELSE IF (LFLAGS(3).EQ.4) THEN
             END IF
        END IF
庄茁的《ABAQUS非线性有限元分析》与ABAQUS User Subroutines Reference Manual中UEL部分例子http://abaqusdoc.ucalgary.ca/books/sub/default.htm,都是a结构。

可是,以Frenqucy分析为例:似乎是先通过LFLAGS(1)=41判定进行Frenqucy分析,再通过LFLAGS(3)=2和LFLAGS(3)=4得到单元刚度矩阵和单元质量矩阵,可是a中LFLAGS(3)=2和LFLAGS(3)=4似乎是并列的关系,如果LFLAGS(3)=2,又怎么会有LFLAGS(3)=4呢?

3.ABAQUS在每个迭代步调用UEL吗?SVARS是在每个迭代步更新还是在每个增量步结束后更新?

4.分析过程procedures, 分析步step, 增量步increment, 迭代步iteration与高斯积分点的关系?

5.现有的例子中,用等参单元计算的都是一个单元的,是不是等参单元刚度、质量矩阵组装的过程会有问题?6.EL中应力,应变向量,各元素的顺序是怎样的?S11,S22,S33,S12,S13,S23?对计算结果有没有影响?




 楼主| 发表于 2016-8-9 22:51:38 | 显示全部楼层 来自 大连理工大学
Simdroid开发平台
本帖最后由 旧日的轨迹 于 2016-8-18 21:53 编辑

UEL隐式动力学
http://opensees.berkeley.edu/Web ... for&rev=382&peg=382
回复

使用道具 举报

 楼主| 发表于 2016-8-9 22:53:11 | 显示全部楼层 来自 大连理工大学
本帖最后由 旧日的轨迹 于 2016-8-18 21:53 编辑


UEL显式动力学:
http://opensees.berkeley.edu/Web ... for&rev=382&peg=382
回复

使用道具 举报

 楼主| 发表于 2016-8-9 22:57:55 | 显示全部楼层 来自 大连理工大学
本帖最后由 旧日的轨迹 于 2016-8-18 21:54 编辑

上面两个例子中涉及到的子函数:
http://opensees.berkeley.edu/Web ... Client%2Ffortran%2F      tcp_socket.c
http://opensees.berkeley.edu/Web ... e81bb1f849491dea287    socketf.c
回复

使用道具 举报

发表于 2016-8-10 10:26:30 | 显示全部楼层 来自 湖南长沙
你好,之前我也做过uel, 1.应该都是积分点循环完后给出一个刚度矩阵。 2.计算出每个单元的内力然后进行迭代。3.LFLAGS()的顺序,这个有解释,每一个LFLAGS()代表具体执行哪一个分析步或者是计算质量矩阵这些。
我也刚刚接触,不太懂,交流一下。
最近也在学VUEL,遇到了困难,帮忙看看,帖子:
http://forum.simwe.com/forum.php ... peid%26typeid%3D127
回复

使用道具 举报

 楼主| 发表于 2016-8-10 11:12:10 | 显示全部楼层 来自 德国
本帖最后由 旧日的轨迹 于 2016-8-18 21:48 编辑

Brick
http://opensees.berkeley.edu/Web ... 2Fbrick%2FBrick.cpp
回复

使用道具 举报

 楼主| 发表于 2016-8-10 11:20:08 | 显示全部楼层 来自 德国
本帖最后由 旧日的轨迹 于 2016-8-18 21:56 编辑

FourNodeQuad:
http://opensees.berkeley.edu/Web ... %2FFourNodeQuad.cpp
回复

使用道具 举报

 楼主| 发表于 2016-8-12 23:00:15 | 显示全部楼层 来自 大连理工大学
本帖最后由 旧日的轨迹 于 2016-8-18 21:46 编辑

Bbarbrick:
http://opensees.berkeley.edu/Web ... ick%2FBbarBrick.cpp
回复

使用道具 举报

 楼主| 发表于 2016-8-16 08:49:53 | 显示全部楼层 来自 德国
本帖最后由 旧日的轨迹 于 2016-8-18 21:48 编辑

EightNodeBrick:
http://opensees.berkeley.edu/Web ... FEightNodeBrick.cpp
回复

使用道具 举报

发表于 2016-8-16 16:25:28 | 显示全部楼层 来自 北京
旧日的轨迹 发表于 2016-8-12 23:00
程序说明:
1.C3D8R用ABAQUS自带的C3D8R单元计算,Static.inp,Frequency.inp,Dynamic.inp分别是进行静力学 ...

版里能用到UEL的几率不是很大,所以恐怕UEL的问题需要点耐心和恒心;
尝试解答你一些问题,说的不一定对,
说明中:
3,code 144 问题就是分母出现了0,具体得调试代码找寻;
问题中:
1,表示一下子没看懂
2,个人觉得LFLAGS矩阵是按顺序读取的,至于优先级取决于你代码中的判断语句;
3,ABAQUS在每个迭代步都会调用UEL,SVARS和SDV一样,在增量步结束时才会更新;
4,在一个过程中的一个分析步中的第N个增量步的第M次迭代步中的第I个单元中对该单元的全部积分点进行代码循环,计算出全部积分点上的应力应变;
5,组装的过程属于ABAQUS主程序,UEL控制不了。

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-8-16 21:07:33 | 显示全部楼层 来自 大连理工大学
吴聊SP 发表于 2016-8-16 16:25
版里能用到UEL的几率不是很大,所以恐怕UEL的问题需要点耐心和恒心;
尝试解答你一些问题,说的不一定对 ...

非常感谢!
回复

使用道具 举报

 楼主| 发表于 2016-8-18 22:05:39 | 显示全部楼层 来自 大连理工大学
回复

使用道具 举报

 楼主| 发表于 2016-8-21 16:21:02 | 显示全部楼层 来自 大连理工大学
请问UEL中应力,应变,各分量的顺序是怎样的?
S11,S22,S33,S12,S13,S23?对计算结果有没有影响?
回复

使用道具 举报

发表于 2016-8-24 04:10:50 | 显示全部楼层 来自 美国
旧日的轨迹 发表于 2016-8-21 16:21
请问UEL中应力,应变,各分量的顺序是怎样的?
S11,S22,S33,S12,S13,S23?对计算结果有没有影响? ...

我的建议先采用个一维的问题,使用一到两个单元,手工计算一遍,然后再在ABAQUS跑一遍,这样可以了解整个计算过程的很多细节。
回复

使用道具 举报

 楼主| 发表于 2016-8-24 08:55:50 | 显示全部楼层 来自 德国
tonnyw 发表于 2016-8-24 04:10
我的建议先采用个一维的问题,使用一到两个单元,手工计算一遍,然后再在ABAQUS跑一遍,这样可以了解整个 ...

非常感谢!
回复

使用道具 举报

 楼主| 发表于 2016-9-10 16:43:16 | 显示全部楼层 来自 大连理工大学

没人回复啊
回复

使用道具 举报

发表于 2016-12-22 17:38:48 | 显示全部楼层 来自 陕西西安
楼主,第二个求逆程序是对的,第一个错的,但是结果还是错的,我的和你一样,就是找不到到底错在哪。楼主现在有新发现了吗?
回复

使用道具 举报

发表于 2016-12-27 09:57:16 | 显示全部楼层 来自 广东深圳
下载来看看
回复

使用道具 举报

发表于 2018-10-14 19:08:01 | 显示全部楼层 来自 辽宁大连
学习一下
回复

使用道具 举报

发表于 2019-5-6 10:26:05 | 显示全部楼层 来自 四川成都
大佬,你好,之前的uel显示的这个链接失效了,能麻烦你发一下原文件么?http://opensees.berkeley.edu/Web ... rev=382&peg=382
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 20:37 , Processed in 0.048624 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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