和朋友探讨将多个节点约束起来的方法时,想起了多年前在硕士毕业论文中用到的刚性域。当需要让一组节点具有共同自由度的时候,通常采用的方法是利用CP命令将节点进行耦合,但问题来了,耦合是“一对一”的,即一个节点只能存在于一个耦合对里 ,否则计算的时候会报错。那么若要实现多对一的“自由度绑定”应该如何处理呢?
在处理对实体单元建立的箱梁截面施加弯矩的问题上,可以利用cerig命令,将截面所有节点的自由度绑定到平面外的一个节点上,使该截面的位移、转角都和该节点的相同——由此就可以把对截面施加弯矩转变成对节点施加弯矩——这样通过节点力F命令就可以搞定了。
et,4,21 !首先建立mass21单元,用来建立刚性域…… KPMAX= !设置当前最大关键点编号为变量,清空该变量 *get,KPMAX,kp,0,num,max !得到当前最大关键点编号 k,KPMAX+1,x,y,z !建立一个新的关键点,并给出关键点的坐标(在要建立刚性域的相关节点旁边) ksel,s,,,KPMAX+1 ! 选择刚刚建立的关键点 kplot type,4 !设置单元属性 real,1 !这是一个空的实常数 kmesh,all !划分网格,形成节点allsel nsel,s,loc,x,x,y+dy !选择欲建立刚性域的节点组(这里是一个平面内的所有节点) nplot CERIG,node(x,y,0),ALL,ALL, , , , !建立刚性域,node()里是刚才建立的那个节点的坐标
命令说明
CERIG, MASTE, SLAVE, Ldof, Ldof2, Ldof3, Ldof4, Ldof5
参数:MASTE,主要节点;
SLAVE, 从属节点;
Ldof,约束方程从属节点所使用的自由度。