最近在分析一个小例子,如下。
1)二阶六面体单元,节点总数5万左右;
2)分析模型的摩擦接触对合计有22对;
3)大变形不打开;线弹性材料;
4)打开弱弹簧,弹簧刚度默认;
5)电脑内存32G,并行计算6核。
第一次分析,求解器类型为默认。
求解耗时如下。
笔者非常吃惊,因为总体节点数只有5万,对应自由度15万,按照100万自由度需要8G内存,32G内存显得绰绰有余,居然算了2个小时以上。虽然摩擦接触有22对。
看到软件有如下提示:使用了迭代求解器。然而,直接求解器可能更适合。考虑指定为直接求解器。
接受软件的意见,笔者将求解器类型改为直接求解器。
求解耗时如下。
本文案例,直接求解器比迭代求解器快多了,差了6倍多。
左侧为迭代求解结果,右侧为直接求解结果。结果高度一致。
1)迭代求解器的特点:占用更少内存,占用更多CPU算力;
2)直接求解器的特点:占用更多内存,占用更少CPU算力;
3)本例中:网格规模少显得内存充足;摩擦接触多显得CPU算力不足;
4)当模型网格少,内存充足,首选直接求解器。具体来说,小规模复杂分析应该用直接求解器。
5)当模型网格多,远超内存,可以尝试迭代求解器。具体来说,大规模线性分析可以用迭代求解器。
笔者感到奇怪。既然求解器都提示了使用直接求解器。那为什么实际执行还是用迭代求解器呢?!
来源:华仿CAE