使用 CPSGEN 命令,对节点耦合进行拷贝的一个例子
问题:
如何使将一组耦合节点拷贝为新的耦合节点?
回答:
可以使用 CPSGEN 命令进行节点耦合的拷贝,以下是一个简单例子:
首先使用如下命令流创建三个矩形并划分网格:
fini
/clear
/filname, cpsgen_test
!*
/PREP7
!*
ET,1,SHELL181
R,1,1, , , , , ,
!*
MPTEMP,,,,,,,,
MPTEMP,1,0
MPDATA,EX,1,,210000
MPDATA,PRXY,1,,0.3
!*
RECTNG,0,15,0,20,
RECTNG,15.5,30,0,20,
RECTNG,30.5,45,0,20,
!*
LESIZE,ALL, , ,2, ,1, , ,1,
MSHKEY,1
AMESH,all
MSHKEY,0
eplot
绘制单元如下:
选择相邻矩形边界处的两排节点,并打开节点编号显示:
然后对左面两排节点分别定义节点耦合。首先对节点 4 和15 定义节点耦合:
点击 Apply 后,弹出定义耦合自由度的对话框:
在其中:对 NSET 项不输入,由程序自动生成。Lab 设置为 All,即对所有自由度进行耦合。对于壳体单元节点,将生成 6 个节点耦合。点击 Apply 后,在节点 4和 15 之间创建了节点耦合:
同样可以对节点 5 和 17、2 和 10 创建节点耦合,结果如下:
然后对所创建的节点耦合进行列表,操作如下:
共 18 个节点耦合,每一对节点分别耦合 6 个自由度:
下面对节点耦合进行拷贝操作: 准备将节点 4,15 的耦合拷贝到节点 13,24 上,两组节点的节点编号差值都是9,涉及的节点耦合的编号是 1~6。操作如下:
在弹出的对话框中:
ITIME (拷贝次数) 输入为 2,INC (节点号增量) 输入为9,NSET1,NSET2,NINC (要拷贝的已有节点耦合的起始、终止编号及增量) 为1,16,1,然后点击 OK:
再次对节点耦合进行列表,结果如下:
由列表可以看到:共有 36 个节点耦合:前 18 个是原来定义的,后 18 个是拷贝生成的。 检查 18 个拷贝生成的节点耦合,可以看到它们分别与原来生成的节点耦合相对应:节点号均为原来节点号增加 9;每一对节点各有 6 个自由度耦合。对本模型,这一拷贝结果是正确的。
相应命令流如下:
fini
/clear
/filname, cpsgen_test
!*
/PREP7
!*
ET,1,SHELL181
R,1,1, , , , , ,
MPTEMP,,,,,,,,
MPTEMP,1,0
MPDATA,EX,1,,210000
MPDATA,PRXY,1,,0.3
!*
RECTNG,0,15,0,20,
RECTNG,15.5,30,0,20,
RECTNG,30.5,45,0,20,
aplot
!*
LESIZE,ALL, , ,2, ,1, , ,1,
!*
MSHKEY,1
AMESH,all
MSHKEY,0
!*
FLST,5,12,1,ORDE,11
FITEM,5,2
FITEM,5,4
FITEM,5,-5
FITEM,5,10
FITEM,5,-11
FITEM,5,13
FITEM,5,-15
FITEM,5,17
FITEM,5,19
FITEM,5,24
FITEM,5,26
NSEL,S, , ,P51X
!*
/PNUM,NODE,1
NPLOT
!*
FLST,4,2,1,ORDE,2
FITEM,4,4
FITEM,4,15
CP, ,ALL,P51X
FLST,4,2,1,ORDE,2
FITEM,4,5
FITEM,4,17
CP, ,ALL,P51X
FLST,4,2,1,ORDE,2
FITEM,4,2
FITEM,4,10
CP, ,ALL,P51X
!*
CPSGEN,2,9,1,18,1,
/replot
!*
save
!*
转自:htbbxxg的博客