OpenFOAM自带的网格绘制工具较为简单,且使用时较为复杂繁琐。通常我们会选择利用较为成熟的网格绘制软件如Pointwise、ICEM等绘制好网格并将网格导入OpenFOAM算例文件夹中。
(资料图片仅供参考)
一些刚接触OpenFOAM的新手在将网格导入OpenFOAM并设置好算例进行计算时,通常直接执行求解器容易造成计算发散。其原因是缺少了在算例文件夹的顶层目录执行renumberMesh命令的过程。执行该命令的效果是降低导入网格的bandwidth与profile。
实际上bandwidth与profile是矩阵中的术语。对于一个N×N的对称矩阵A,第 i ii 行的bandwidth为:
β i ( A ) = min { j ∣ a i , j ≠ 0 } \beta_i(\bold{A}) = \min\{j | a_{i, j} \ne 0 \}β i (A)=min{j∣a i,j
=0}
矩阵整体的bandwidth为:
β ( A ) = max { β i ( A ) ∣ 1 ≤ i ≤ N } = max { ∣ i − j ∣ ∣ a i , j ≠ 0 } \beta(\bold{A}) = \max\{\beta_i(\bold{A}) | 1 \le i \le N\} = \max\{ |i−j| | a_{i, j} \ne 0 \}β(A)=max{β i (A)∣1≤i≤N}=max{∣i−j∣∣a i,j
=0}
profile为:
Σ i β i ( A ) \Sigma_i\beta_i(\bold{A})Σ i β i (A)
bandwidth和profile反映了对称矩阵中非零元素在对角线周围的聚集程度。可以想到,降低bandwidth与profile对稀疏矩阵求解的收敛性与收敛速度有很大帮助。
为了更为直观的观察执行renumberMesh命令后发生的变化,我利用Pointwise随便绘制了一个底面直径为2米、高为2米的圆柱,其中包含了48000个网格。执行renumberMesh -overwrite对0文件夹及constant/polyMesh文件夹进行修正后,可以看到网格的bandwidth由40199下降为1153,profile由1.11116e+08下降为3.96072e+07。
Create mesh for time = 0
Mesh size: 48000Before renumbering :band : 40199profile : 1.11116e+08
Using default renumberMethod.
Selecting renumberMethod CuthillMcKee
Reading geometric fields
Reading volScalarField cellidReading volScalarField pReading volVectorField U
After renumbering :band : 1153profile : 3.96072e+07
Writing mesh to “constant”
从图像上来看,在执行renumberMesh命令之后,网格单元的ID会变得较为连续,如下图。这对于CFD求解是极其有益的。
标签: