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

[原创]关于流体分析中应用不同网格尺寸进行网格划分的方法

[复制链接]
发表于 2006-6-16 16:17:25 | 显示全部楼层 |阅读模式 来自 广东佛山
在流固耦合分析中,经常会遇到这样的情况:固体部分几何结构复杂,并且由多种介质(导热系数不等)组成,内部的温度梯度较大,需要进行较细致的网格划分;相对于固体而言,流体部分的材料单一(空气或其他流体),且几何结构简单,只需要在固体边界部分划分较细的网格即可,进行渐变网格划分,无需与固体的网格尺寸保持一致。在这种情况下,应用ANSYS提供的结点连接功能(couple命令)进行建模,可以收到很好的效果,既能使分析结果满足精度要求,又能减少计算时间,降低对计算机性能的要求。

本帖子中包含更多资源

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

×
 楼主| 发表于 2006-6-16 16:26:27 | 显示全部楼层 来自 广东佛山
Simdroid开发平台
附命令流:
!变量说明
!FLUID_XMAX -- 整体模型外径
!FLUID_YMAX -- 整体模型总高
!FLUID_CPNUM -- 流体部分需COUPLE的节点总数
!SOLID_LIN_CPNUM -- 固体部分需COUPLE的节点总数
!NUMLOW_FLUID_CPNODES -- 流体部分需COUPLE的节点中最小的节点号
!ARRAY_FLUID_CPNODES -- 存储流体部分需COUPLE的节点相关信息(包括节点号、X坐标和Y坐标)的二维数组
!MAX_VALUE -- 1E+8最大数值
!MIN_VALUE -- 1E-8最小数值
!
!组件说明
!FLUID_WHOLE -- 整体模型的所有面
!FLUID_CPNODES -- 流体部分需COUPLE的节点组
!SOLID_CPNODES -- 固体部分需COUPLE的节点组
!
ALLSEL,ALL
/PREP7
!
!
!
!选择需COUPLE的节点组之一:流体部分
!*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*!
CMSEL,S,FLUID_WHOLE                                           !
ALLSEL,BELOW,AREA                                             !
NSEL,S,EXT                                                    !
NSEL,U,LOC,X,0                                                !
NSEL,U,LOC,Y,0                                                !
NSEL,U,LOC,X,FLUID_XMAX                                       !
NSEL,U,LOC,Y,FLUID_YMAX                                       !
NSEL,R,LOC,X,LIN_RIN,LIN_ROUT                             !
CM,FLUID_LIN_CPNODES,NODE                                     !
!*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*!
!
!将流体部分需COUPLE的节点相关信息(包括节点号、X坐标和Y坐标)存入二维数组
!*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*!
*GET,FLUID_LIN_CPNUM,NODE,,COUNT,,,,                          !获取节点总数FLUID_LIN_CPNUM
*GET,NUMLOW_FLUID_LIN_CPNODES,NODE,,NUM,MIN,,,                !获取所选节点中的最小节点号NUMLOW_FLUID_LIN_CPNODES
*DIM,ARRAY_FLUID_LIN_CPNODES,ARRAY,FLUID_LIN_CPNUM,3,1,,,     !定义二维数组ARRAY_FLUID_LIN_CPNODES
*SET,TEMP_NODE_NUM,NUMLOW_FLUID_LIN_CPNODES                   !设置临时变量存储最小节点号
*SET,ARRAY_FLUID_LIN_CPNODES(1,1,1),TEMP_NODE_NUM             !用DO循环将节点相关信息逐个存入二维数组
*SET,ARRAY_FLUID_LIN_CPNODES(1,2,1),NX(TEMP_NODE_NUM)         !
*SET,ARRAY_FLUID_LIN_CPNODES(1,3,1),NY(TEMP_NODE_NUM)         !
*DO,I,2,FLUID_LIN_CPNUM                                       !
*SET,ARRAY_FLUID_LIN_CPNODES(I,1,1),NDNEXT(TEMP_NODE_NUM)     !
*SET,ARRAY_FLUID_LIN_CPNODES(I,2,1),NX(NDNEXT(TEMP_NODE_NUM)) !
*SET,ARRAY_FLUID_LIN_CPNODES(I,3,1),NY(NDNEXT(TEMP_NODE_NUM)) !
*SET,TEMP_NODE_NUM,NDNEXT(TEMP_NODE_NUM)                      !
*ENDDO                                                        !
!*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*!
!
!选择需COUPLE的另一节点组:固体部分
!*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*!
ALLSEL,ALL                                                    !
CMSEL,U,FLUID_WHOLE                                           !
ALLSEL,BELOW,AREA                                             !
NSEL,S,EXT                                                    !
NSEL,R,LOC,X,LIN_RIN,LIN_ROUT                             !
CM,SOLID_LIN_CPNODES,NODE                                     !
!*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*!
!
!将固体部分需COUPLE的节点相关信息(包括节点号、X坐标和Y坐标)存入二维数组
!*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*!
*GET,SOLID_LIN_CPNUM,NODE,,COUNT,,,,                          !获取节点总数SOLID_LIN_CPNUM
*GET,NUMLOW_SOLID_LIN_CPNODES,NODE,,NUM,MIN,,,                !获取所选节点中的最小节点号NUMLOW_SOLID_LIN_CPNODES
*DIM,ARRAY_SOLID_LIN_CPNODES,ARRAY,SOLID_LIN_CPNUM,3,1,,,     !定义二维数组ARRAY_SOLID_LIN_CPNODES
*SET,TEMP_NODE_NUM,NUMLOW_SOLID_LIN_CPNODES                   !设置临时变量存储最小节点号
*SET,ARRAY_SOLID_LIN_CPNODES(1,1,1),TEMP_NODE_NUM             !用DO循环将节点相关信息逐个存入二维数组
*SET,ARRAY_SOLID_LIN_CPNODES(1,2,1),NX(TEMP_NODE_NUM)         !
*SET,ARRAY_SOLID_LIN_CPNODES(1,3,1),NY(TEMP_NODE_NUM)         !
*DO,I,2,SOLID_LIN_CPNUM                                       !
*SET,ARRAY_SOLID_LIN_CPNODES(I,1,1),NDNEXT(TEMP_NODE_NUM)     !
*SET,ARRAY_SOLID_LIN_CPNODES(I,2,1),NX(NDNEXT(TEMP_NODE_NUM)) !
*SET,ARRAY_SOLID_LIN_CPNODES(I,3,1),NY(NDNEXT(TEMP_NODE_NUM)) !
*SET,TEMP_NODE_NUM,NDNEXT(TEMP_NODE_NUM)                      !
*ENDDO                                                        !
!*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*!
!
!将最近的两个节点COUPLE
!*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*!
*DIM,TEMP_ROW,ARRAY,1,2,1,,,                                                                      !临时变量
*SET,N,1                                                                                          !临时变量,COUPLE序号
*DO,I,1,FLUID_LIN_CPNUM                                                                           !
*SET,TEMP_ROW(1,2,1),1E+8                                                                         !
*DO,J,1,SOLID_LIN_CPNUM                                                                           !
*IF,ARRAY_FLUID_LIN_CPNODES(I,2,1),EQ,ARRAY_SOLID_LIN_CPNODES(J,2,1),THEN                         !X坐标相等的节点进行COUPLE
*IF,ABS(ARRAY_FLUID_LIN_CPNODES(I,3,1)-ARRAY_SOLID_LIN_CPNODES(J,3,1)),LT,TEMP_ROW(1,2,1),THEN    !
*SET,TEMP_ROW(1,1,1),ARRAY_SOLID_LIN_CPNODES(J,1,1)                                               !
*SET,TEMP_ROW(1,2,1),ABS(ARRAY_FLUID_LIN_CPNODES(I,3,1)-ARRAY_SOLID_LIN_CPNODES(J,3,1))           !
*IF,TEMP_ROW(1,2,1),LE,0.0012,THEN
*EXIT
*ENDIF
*ENDIF                                                                                            !
*ELSEIF,ARRAY_FLUID_LIN_CPNODES(I,3,1),EQ,ARRAY_SOLID_LIN_CPNODES(J,3,1),THEN                     !Y坐标相等的节点进行COUPLE
*IF,ABS(ARRAY_FLUID_LIN_CPNODES(I,2,1)-ARRAY_SOLID_LIN_CPNODES(J,2,1)),LT,TEMP_ROW(1,2,1),THEN    !
*SET,TEMP_ROW(1,1,1),ARRAY_SOLID_LIN_CPNODES(J,1,1)                                               !
*SET,TEMP_ROW(1,2,1),ABS(ARRAY_FLUID_LIN_CPNODES(I,2,1)-ARRAY_SOLID_LIN_CPNODES(J,2,1))           !
*ENDIF                                                                                            !
*ENDIF                                                                                            !
*ENDDO                                                                                            !
ALLSEL,ALL                                                                                        !      
NSEL,S,,,ARRAY_FLUID_LIN_CPNODES(I,1,1)                                                           !
NSEL,A,,,TEMP_ROW(1,1,1)                                                                          !
CP,N,ALL,ALL                                                                                      !
N=N+7                                                                                             !
*ENDDO                                                                                            !
!*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*-----*!
!
ALLSEL,ALL
FINI

说明:通过循环,将最近的两个结点(一个属于流体部分,一个属于固体部分)用couple命令结合起来,强制使这两个结点的所有自由度相等。
发表于 2006-6-17 11:11:21 | 显示全部楼层 来自 黑龙江哈尔滨
能说说三角形节点么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

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

GMT+8, 2024-9-22 01:04 , Processed in 0.035431 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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