snappyHexMesh并行后导致对topoSet建立的faceZone流量监测不准!
- 
							
							
							
							
							
							
各位老师同学好,我想通过topoSet建立faceZone监测内部面的流量,但是出现了以下问题: - 当snappyHexMesh不是并行时,对faceZone流量监测是准的,使用的脚本是:
 blockMesh 
 surfaceFeatureExtract
 snappyHexMesh
 topoSet
 checkMesh
 decomposePar
 mpirun -np 32 icoFoam -paralle
 reconstructPar- 但是,当使用snappyHexMesh并行时,就会出现对faceZone流量监测不准的情况,此时使用的脚本是:
 blockMesh 
 surfaceFeatureExtract
 decomposePar
 mpirun -np 32 snappyHexMesh -parallel
 reconstructParMesh -constant -noZero
 topoSet
 checkMesh
 rm -rf processor*
 decomposePar
 mpirun -np 32 icoFoam -parallel
 reconstructPar希望各位老师同学给点建议,谢谢🙏 
- 
							
							
							
							
@MingfengWang 在 snappyHexMesh并行后导致对topoSet建立的faceZone流量监测不准! 中说: 就会出现对faceZone流量监测不准的情况 差多少。1%?5%?还是20 30%? 监测内部面的流量 怎么监控的 
- 
							
							
							
							
							
							
@李东岳 感谢李老师的回复! - 监控方法:
 - 用topoSet建立一个内部面faceZone,该面垂直于流动方向,平行于出入口
- 使用surfaceFieldValue监控,具体如下:
 flowRateFaceZone { type surfaceFieldValue; libs (fieldFunctionObjects); operation sum; regionType faceZone; name middleFace; fields ( phi ); writeFields false; }- 误差
 - snappyHexMesh单核时,内部面的流量等于出入口的流量,为2.093200e-13 m3/s
- snappyHexMesh并行时,内部面流量6.733410e-14 m3/s,出入口流量为2.093200e-13 m3/s
- 误差较大,差了一个数量级
 
- 
							
							
							
							
							
							
@李东岳 
 我测试了一下,在服务器上模拟时,当核心数为4、8时监控的内部面上的流量正常。但是,当核心数为16、32、64时监控的内部面上的流量出错,且核心数越多误差越大,最大误差在一个数量级。以上使用的监控方法为在controlDict文件中写入以下代码: flowRateFaceZone { type surfaceFieldValue; libs (fieldFunctionObjects); operation sum; regionType faceZone; name middleFace; fields ( phi ); writeFields false; }另外,我也尝试着使用另外一种方法,将flowRateFaceZone写入到controlDict中,具体如下: #includeFunc flowRateFaceZone(name=middleFace) 结果还是不行,没有结果输出。 最后,还使用了后处理命令 "postProcess -func "flowRateFaceZone(name=middleFace)",同样还是没有结果输出。 求李老师指点,谢谢! 
 
			