我用CFX多于Fluent,尤其这2年来基本很少打开Fluent,因为CFX设置简单,收敛也快,计算结果也还准确。前段时间在服务器上跑多级泵的case的时候就被这个软件教育了一波。同样的case在自己笔记本和台式电脑上都能收敛,丢服务器里多核运算就发散了,我始终没有找到具体的原因,最后归结为Ansys mesh划分的网格质量较差,用Fluent meshing划分网格解决了发散的问题。这里边存在概率问题,不是每一次用Ansys mesh划分网格的case都发散。所以建议大家复杂的多级的网格数多的模型一定要保证网格质量,避免重复劳动!
一、网格数较多或者多核心计算报错
以我的多级泵案例为例,划分完网格基本在1500~2000w,所以笔记本跑大概需要20~30s一步稳态,属实有点慢,丢服务器里开30核确实能减少很多时间,大概8~14s一步,运行内存占用50G左右。
点击CFX-Pre界面左上角的Insert/Solver/Expert Parameter选项,在打开的窗口中切换到Convergence Control(收敛控制)选项,然后将Memory Control下的topology estimate factor修改为1.2,软件推荐这个数值为1.0~1.2,最好不要超过1.2。增大这个参数意味着增大了CFX求解时可以利用的内存空间。
![CFX多核计算及多网格数求解报错通用解决方法](https://img.7b3.cn/7b3/2024/06/20240621080910455.png?imageView2/0/interlace/1/q/75|watermark/2/text/5rO15bCP5Lir5a6Y572R77yad3d3LjdiMy5jbg==/font/5qW35L2T/fontsize/300/fill/I0U5MzQxMQ==/dissolve/80/gravity/NorthWest/dx/10/dy/10|imageslim)
除了此处之外,为了减少求解时的报错,我们还需要设置其他几个内存选项,它们都集中在Execution Control(求解控制)中:
![CFX多核计算及多网格数求解报错通用解决方法](https://img.7b3.cn/7b3/2024/06/20240621081358571.png?imageView2/0/interlace/1/q/75|watermark/2/text/5rO15bCP5Lir5a6Y572R77yad3d3LjdiMy5jbg==/font/5qW35L2T/fontsize/300/fill/I0U5MzQxMQ==/dissolve/80/gravity/NorthWest/dx/10/dy/10|imageslim)
1、Partitioner项
勾选Partitioner Memory,然后将Memory Alloc Factor值由1.0放大,填写1.2即求解时占用内存增加20%,以此类推,这里我设置为3,因为服务器内存足够大,这个要看自己电脑配置的运行内存有多大。我台式电脑设置为1.5了,因为运行内存只有32GB。
![CFX多核计算及多网格数求解报错通用解决方法](https://img.7b3.cn/7b3/2024/06/20240621081546913.png?imageView2/0/interlace/1/q/75|watermark/2/text/5rO15bCP5Lir5a6Y572R77yad3d3LjdiMy5jbg==/font/5qW35L2T/fontsize/300/fill/I0U5MzQxMQ==/dissolve/80/gravity/NorthWest/dx/10/dy/10|imageslim)
2.Solver项
勾选Solver Memory,然后将Memory Alloc Factor值由1.0放大,填写1.2即求解时占用内存增加20%,以此类推,这里我设置为3,因为服务器内存足够大,同上。
![CFX多核计算及多网格数求解报错通用解决方法](https://img.7b3.cn/7b3/2024/06/20240621123758524.png?imageView2/0/interlace/1/q/75|watermark/2/text/5rO15bCP5Lir5a6Y572R77yad3d3LjdiMy5jbg==/font/5qW35L2T/fontsize/300/fill/I0U5MzQxMQ==/dissolve/80/gravity/NorthWest/dx/10/dy/10|imageslim)
3.Interpolator项
勾选Interpolator Memory,然后将Memory Alloc Factor值由1.0放大,填写1.2即求解时占用内存增加20%,以此类推,这里我设置为3,因为服务器内存足够大,同上。
![CFX多核计算及多网格数求解报错通用解决方法](https://img.7b3.cn/7b3/2024/06/20240621123931621.png?imageView2/0/interlace/1/q/75|watermark/2/text/5rO15bCP5Lir5a6Y572R77yad3d3LjdiMy5jbg==/font/5qW35L2T/fontsize/300/fill/I0U5MzQxMQ==/dissolve/80/gravity/NorthWest/dx/10/dy/10|imageslim)
二、网格质量差导致CFX求解失败
如果你根据上述方法调整了之后还是求解失败,那可能就是Ansys mesh划分的网格质量太差了,这时候可以考虑采用Fluent meshing去划分四面体网格,可以通过Improve mesh quality来提高网格质量,基本可以实现全四面体复杂结构(泵)网格质量在0.2以上,面网格歪斜率最差也就0.8左右了。
低版本的Fluent meshing在划分体网格时没有求解器选项,默认划分Fluent格式,网格格式也是.msh,这种格式可以导入CFX但是大概率求解会报错。Ansys2024版本增加了求解器选择,可以选CFX,支持CFX的网格类型只有2种:四面体或者六面体核心,当然网格格式还是.msh。经过测试可用!大家如果Ansys mesh网格质量差可以一试!
对了,Fluent meshing划分的网格如果要用于CFX求解的话,不可以在Workbench流程中直接赋予,需要单独打开CFX导入网格,这就导致目前该流程不能完全自动化,也不适用于CFturbo参数化求解。