@五好青年
DILU 预条件器出错 对应代码在
DILUPreconditioner.C 90行
for (label cell=0; cell<nCells; cell++)
{
90 rDPtr[cell] = 1.0/rDPtr[cell];
}
更换预条件器 换成diagonal或者none一般就可以,或者换光顺求解器也可以。
一般不完全ILU分解做预条件器,是不能够完全分解成一个L和U矩阵的,还会剩下一个对角阵D,如果某行完全分解了,那么对角阵会有元素为0,由于这第90行代码会将D中的元素做除数,OpenFoam刚好又会捕捉浮点数异常,程序就退出了。