拉格朗日粒子在平行運算下的問題
-
大家好,先簡單說一下我的狀況:
最近在仿真超音速下sprayFoam的問題,固定Equivalence ratio情況下, 粒子在每個timeStep下的數量都非常巨量。但平行運算下即使我使用64核計算機計算情況下運算速度覺得不理想。後來發現如果parcel injection並非均勻的話(i.e. 某位置injection), 即使Mesh 被decompose成n個domain,大量什至全部的拉格朗日粒子仍然只會被一個processor所處理,Eularian-phase早就算完,處理器都在等某processorN計算粒子。目前想到是手動decompose 整個computational domain(例如injection的附多切好幾個subdomain),看到decomposeParDict有MANUAL的type,但需手動一個一個cell的label放在input file,而且對於cell number非常多的問題非常不實際。 想請問各位大大有解決方法或者想法嗎?
Regards,
Rick -
-
可neng你的粒子源就在很小区域位置释放,所以导致进程不平均。建议在每个时间步网格重组,每个进程都有global mesh,在global mesh进行粒子输运, 就能解决这个问题啦!However, it is a little hard.
-
如果是静态网格 global mesh 可以只重组一次,就能节省通信时间。动态网格这个方法也不是特别好,需要测试一下。OpenFOAM这个粒子输运库我想改改,太慢了
-
OpenFOAM这个粒子输运库我想改改,太慢了
是觉得粒子跟踪算法慢还是并行通信慢?
-
@刘雄国 您好,
是的因為粒子源在某很小區域噴發出來,所以通常只會被一個或兩個processor domain所計算,拖慢整體計算效率。
請問一下你說的是reconstructMesh嗎? 可是我沒有使用Dynamic mesh。請問該如可implenment?
謝謝
-
@东岳 老师不好意思,我回答不了,和具体应用有关。
-
@r07522121 google MPI load balance