客户发过来一份ANSYS APDL命令流文件,说是求解时总出问题,让帮忙看看问题在哪里。
大致看了该命令流,主要研究方形杆的拉伸应力-应变曲线,模型比较简单(如下图),一根正方形截面的杆件,两端施加大小相等,方向相反的拉力,材料采用的经典Drucker-Prager本构模型。
方形截面杆件拉伸模型
一般来说,静力非线性分析问题的求解不收敛,很大一部分是约束或边界条件不恰当导致。因此,首先将杆件约束条件改为一端完全约束,一端拉加拉力(如上图)。但是很遗憾,问题并没有解决,提交求解任务后出现闪退。
*** WARNING *** CP = 0.312 TIME= 12:44:44
EDP plasticity: Yield Function Not Defined for element 12 and material 1.
检查工作路径中的 .err 和 .out 文件,发现均包含大量的警告信息,如上所示 。难道是材料本构定义的有问题?
Drucker-Prager材料本构,常用于颗粒状(摩擦)材料,如土、岩体、砼等,并利用圆锥面来近似Mohr-Coulomb定律。仔细查看ANSYS帮助文档中关于 Drucker-Prager 材料本构的介绍,以及示例用法如下。
Classic Drucker-Prager Example
对比命令流文件,Drucker-Prager材料本构的定义并没有问题。
突然想起,以前工作中也遇到过类似的情况。一般而言,如果模型或APDL命令流中存在错误,.err 或 .out 文件中会明确给出 error 信息。此次出现闪退,并没有显示的 error 信息,将 .err 文件拉到最后,看到如下信息。
************************************************************************
The number of ERROR and WARNING messages exceeds 10000. Use the /NERR command to increase the number of messages. The ANSYS run is terminated by this error. ************************************************************************
原来问题在这里!ANSYS接受的最大警告、错误信息为10,000条,一旦超过程序将会自动退出求解任务。好了,问题原因找到,在程序前加上一条命令流:
/nerr, 5, 1e6
注意,不要写成 /nerr, 5, 10000000,会导致出错。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删