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

[问题讨论] 缺少ALLSEL命令引发的奇怪问题

[复制链接]
发表于 2015-6-6 22:56:31 | 显示全部楼层 |阅读模式 来自 重庆沙坪坝区
最近刚开始始学习APDL,照着书上把以前用GUI做过的例子用APDL再做一次,结果今天碰到了一个奇怪的问题,请高手们看看是怎么回事。

这是一个简单的桁架静力分析问题,采用LINK180单元,第1-4号keypoint上施加了固定约束,9、10、17、18、25、26、33、34点上施加了-Y方向的力载荷1000,如下图所示:

分析的APDL代码如下:
/PREP7
        ALLSEL,ALL,ALL
        LCLEAR,ALL                                                                !清除网格
        DDELE,ALL                                                                !清除边界条件
        FKDELE,ALL,ALL                                                        !清除所有点载荷
        RDELE,ALL                                                                !清除所有已定义的实常数
        MPDELE,ALL,ALL                                                        !清空已定义的材料属性
        LDELE,ALL                                                                !清除所有已定义的线
        KDELE,ALL                                                                !清除所有已定义的KeyPoint
       
        !定义单元为LINK180
        nEl = 1
        ET,nEl,LINK180
        !定义材料属性
        MPTEMP,1,0
        MPDATA,EX,1,,2.1e11
        MPDATA,PRXY,1,,0.3
        !定义LINK180单元的截面积
        R,nEl,0.000106

        !几何建模
                nLayer = 9
                *DO,i,1,nLayer,1
                        !先定义1层上的4个顶点关键点
                        K,(i - 1)*4 + 1,-0.2,0.2,(i - 1)*0.4
                        K,(i - 1)*4 + 2,0.2,0.2,(i - 1)*0.4
                        K,(i - 1)*4 + 3,0.2,-0.2,(i - 1)*0.4
                        K,(i - 1)*4 + 4,-0.2,-0.2,(i - 1)*0.4
                        !连接1层上的4个顶点关键点
                        L,(i - 1)*4 + 1,(i - 1)*4 + 2
                        L,(i - 1)*4 + 2,(i - 1)*4 + 3
                        L,(i - 1)*4 + 3,(i - 1)*4 + 4
                        L,(i - 1)*4 + 4,(i - 1)*4 + 1
                        !对角线连接
                        *IF,MOD(i,2),EQ,1,THEN
                                L,(i - 1)*4 + 1,(i - 1)*4 + 3
                        *ELSE
                                L,(i - 1)*4 + 2,(i - 1)*4 + 4
                        *ENDIF
                *ENDDO
                !连接各层之间的顶点
                *DO,i,1,nLayer - 1,1
                        *DO,j,1,4,1
                                L,(i - 1)*4 + j,i*4 + j
                        *ENDDO
                *ENDDO
                !顶面和侧面连接
                *DO,i,1,nLayer - 1,1
                        *IF,MOD(i,2),EQ,1,THEN
                                !奇数层
                                L,(i - 1)*4 + 2,i*4 + 1
                                L,(i - 1)*4 + 4,i*4 + 3
                                L,(i - 1)*4 + 2,i*4 + 3
                                L,(i - 1)*4 + 4,i*4 + 1
                        *ELSE
                                !偶数层
                                L,(i - 1)*4 + 1,i*4 + 2
                                L,(i - 1)*4 + 3,i*4 + 4       
                                L,(i - 1)*4 + 3,i*4 + 2
                                L,(i - 1)*4 + 1,i*4 + 4
                        *ENDIF
                *ENDDO
        !几何建模结束
       
        !分网
                LESIZE,ALL,,,1,,1,,,1
                LSEL,ALL
                LMESH,ALL
        !分网结束
               
        !边界条件
                KSEL,S,KP,,1,4
                DK,ALL,ALL,0
        !边界条件结束
       
        !载荷
                KSEL,S,KP,,(3 - 1)*4 + 1,(nLayer - 1)*4 + 1,8        !选择左边的受载KeyPoint
                KSEL,A,KP,,(3 - 1)*4 + 2,(nLayer - 1)*4 + 2,8        !选择右边的受载KeyPoint
                FK,ALL,FY,-1000
        !载荷结束
       
        !下面这句代码如果删除则计算出错
        !ALLSEL,ALL,ALL
/SOL
        ANTYPE,STATIC,NEW
        SOLVE
FINISH


在运行计算时发现只要没有上面红色部分的代码被注释掉计算时即会提示:A small equation solver pivot term has been encountered

经更多的实验后发现,如果把ALLSEL,ALL,ALL改成KSEL,S,KP,,1,2或KSEL,S,KP,,3,4时也不会报错,但计算出来的结果是错误的,若改成KSEL,S,KP,,2,3则同样会报相同的错误。


请问各位,上面代码中用ALLSEL命令选择了所有对象后根本就没有其他针对几何对象的操作了,但为什会对计算有影响呢?为什么不选择全部对象就会出错呢?
发表于 2015-6-7 07:32:24 | 显示全部楼层 来自 上海
Simdroid开发平台
  你的约束条件和载荷都是施加在若干 KP 点上的,命令是:
     ksel,s,...
     DK,...
  和:
    ksel,s,...
    Fk,...
  这样,施加载荷后,有约束的 KP 点不在当前选择集中,如果求解前不执行 allsel,all,求解时有约束的这些 KP 点上的约束条件不能转换到有限元模型上,模型就没有约束了,所以出现错误。
  其它问题与此类似,自己分析一下。

  如果求解前执行了 allsel,all, 就不会出现上述问题了。
回复 不支持

使用道具 举报

发表于 2015-6-7 10:18:23 | 显示全部楼层 来自 江苏南京
求解之前不allsel的话,ansys会直接蹦出去的。一开始学的时候经常这样被虐。。。
回复 不支持

使用道具 举报

发表于 2015-6-8 17:23:33 | 显示全部楼层 来自 陕西西安
本帖最后由 Newsam 于 2015-6-8 17:26 编辑

SOLVE默认求解当前选中的单元、节点、关键点之类的,你之前施加载荷的操作只选中了一部分关键点,之前关键点上的载荷没有转化到节点上,所以求解时就出错了。
就像@htbbzzg说的一样。
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 19:20 , Processed in 0.032776 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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