Edimion 发表于 2017-4-15 14:10:35

DISP子程序例子

本帖最后由 Edimion 于 2017-5-16 11:16 编辑

一个简单的DISP 子程序的算例子。材料性质没有实际意义.CAE 和INP文件都免费下载

http://forum.simwe.com/forum.php?mod=image&aid=490248&size=300x300&key=86c9a423108de369&nocache=yes&type=fixnone

对于U2 ,添加了关于X 的抛物线位移和关于Z的线性位移


-U2=0.1*(X^2)/9+0.1*Z


DLOAD子程序的例子:http://forum.simwe.com/forum.php ... 1&extra=#pid3613014

变量的解释:

kstep 分析步编号
kinc 增量步编号
time(1) 当前分析步时间
time(2) 总分析步时间
node 节点编号
Jdof 自由度
coords 当前坐标点

U(1) 指定自由度的大小
U(2) 制定自由度关于时间的一阶导数,仅用于动力分析




      SUBROUTINEDISP(U,KSTEP,KINC,TIME,NODE,NOEL,JDOF,COORDS)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION U(3),TIME(2),COORDS(3)
C
      U(1)=-0.1*COORDS(1)**2/9-0.1*COORDS(3)


      RETURN
      END

灵动分析 发表于 2017-5-11 21:50:31

楼主能否就子程序的一些变量解释一下意义,这样才能做到举一反三的作用

灵动分析 发表于 2017-5-11 21:52:10

灵动分析 发表于 2017-5-11 21:50
楼主能否就子程序的一些变量解释一下意义,这样才能做到举一反三的作用

例如,这里的COORDS(1)代表什么

Edimion 发表于 2017-5-12 08:47:59

灵动分析 发表于 2017-5-11 21:52
例如,这里的COORDS(1)代表什么

回头写一点具体的解释
这里先回答下你的这个问题

coords是积分点的坐标。后面括号里面的1 2 3 分别表示 x y z 三个方向

灵动分析 发表于 2017-5-14 13:29:53

Edimion 发表于 2017-5-12 08:47
回头写一点具体的解释
这里先回答下你的这个问题



期待楼主的具体解释,谢谢!

oppowin 发表于 2017-5-14 14:07:37

楼主可以做个视频吗?出现这种错误 是属于语法错误 还是其他原因呢?

oppowin 发表于 2017-5-14 14:08:58

D:\捕获.jpg

oppowin 发表于 2017-5-14 14:09:43

这种错误   

oppowin 发表于 2017-5-15 21:53:40

灵动分析 发表于 2017-5-14 13:29
期待楼主的具体解释,谢谢!

U(1)=-0.1*COORDS(1)**2/9-0.1*COORDS(3)
结合inp文件,应该是在是在Y向施加位移(U(1)表示位移)载荷,载荷大小=-0.1倍的积分点x坐标值的平方除以9,减去0.1倍的z坐标值。

Edimion 发表于 2017-5-16 14:28:51

灵动分析 发表于 2017-5-11 21:50
楼主能否就子程序的一些变量解释一下意义,这样才能做到举一反三的作用

谢谢你的建议,已经修改。接下来进一步细化

xyqxyq 发表于 2017-5-17 22:36:04

楼主,我想用disp子程序做透射边界,我想请问您,在disp中怎么提取节点的位移?

灵动分析 发表于 2017-5-20 16:40:06

Edimion 发表于 2017-5-12 08:47
回头写一点具体的解释
这里先回答下你的这个问题



楼主,我最近查阅了ABAQUS用户手册,发现COORDS的英文注释是:
An array containing the current coordinates of this point. These are the coordinates at the end of the prior increment if geometric nonlinearity is accounted for during the step (see “Defining an analysis,” Section 6.1.2 of the Abaqus Analysis User's Guide); otherwise, the array contains the original coordinates of the node. This array cannot be used if user subroutine DISP is used to prescribe connector motions。
大概是说这个是结点的坐标,对于你所给的模型的单元是C3D8R,这个单元有8个结点,但是只有一个积分点(在单元的中心)。我尝试在一个结点上加载边界条件并用你所给的子程序,发现也能运算,从而证明这个应该是结点的坐标。如有不正确的地方请指教,谢谢楼主提供了这么好的学习机会!!!!!!!!!!

灵动分析 发表于 2017-5-20 17:31:08

顺便再向楼主请教一个问题,我如果分别向不同的两处施加载荷,子程序如何定义?
比如,在你给的模型基础上,在左端线上施加你给的子程序模型,右端线上施加一个-0.1*COORDS(1)的位移子程序,该如何定义?

Edimion 发表于 2017-5-23 09:31:27

本帖最后由 Edimion 于 2017-5-23 09:34 编辑

灵动分析 发表于 2017-5-20 17:31
顺便再向楼主请教一个问题,我如果分别向不同的两处施加载荷,子程序如何定义?
比如,在你给的模型基础上 ...
1施加多个边界,首先你要考虑好,一定要确认你的多个边界不矛盾,有时候模型复杂了经常这样,毕竟子程序没有CAE那么直观。

2然后在CAE中定义同一个边界条件给所有的需要施加边界的地方,比如你说的,给左右两个边施加边界,就定义一个边界,把两个边都选上

3在子程序中使用一个if语句,根据位置判断施加的边界,比如,if 节点z坐标等于1,那么x方向上施加一个正方向的位移,else,在x方向上施加负方向的位移。Dload子程序中会存在用一个子程序定义一辆车的好多个轮子的情况,就是这种方法。你可以看下这个帖子,也是我写的。第一个if语句可以出现一个else~f=0,后面切记不可以再出现。
http://forum.simwe.com/forum.php ... 6&page=1#pid3620118

PS: 上述都是我的理解,我还没有尝试,回头试试再来跟你讨论

sptj100000 发表于 2018-12-23 16:02:38

楼主,有哪类子程序可以施加移动电流载荷,谢谢。

pcstudying 发表于 2020-6-15 14:16:40

谢谢楼主提供的资料

gqq 发表于 2020-9-4 10:36:11

灵动分析 发表于 2017-5-11 21:52
例如,这里的COORDS(1)代表什么

Coords(1)表示x方向坐标,Coords(2)表示y方向坐标

o123456789 发表于 2021-4-30 11:47:31

灵动分析 发表于 2017-5-11 21:52
例如,这里的COORDS(1)代表什么

积分点的x坐标值
页: [1]
查看完整版本: DISP子程序例子