基於mfix-19.1.2版本
方法一:直接輸出差值網格固相速度
注:這種方式只適用於garg 2012
顆粒差值格式
在DEM中,默認是無法輸出固相速度的網格值的:
但是通過搜索des文件夾下V_s
關鍵字可以看到,實際上網格固相速度是會通過差值計算得到的:
並且在計算DEM顆粒脈動速度的地方也用到了網格固相速度:
說明網格固相速度只是默認沒有寫出,因此只需要人為寫出一下即可。
首先找到網格輸出的代碼位置:
由於MMAX
代表TFM的固相數,因此在循環范圍部分需要修改,默認只寫出TFM的網格固相速度。修改如下:
最后在dat文件里手動添加一下VTK_U_S(VTK, PHASE)
這個關鍵字(且確保顆粒的差值格式為garg 2012
)例如:
結果如下:
方法二:保存網格內顆粒的平均速度到網格
網格顆粒速度還可以仿照DES_GRANULAR_TEMPERATURE
函數內計算網格擬顆粒溫度的方式,對網格內顆粒速度進行統計平均。
按照J. Musser的建議,可以把需要后處理的變量存到ReactionRates
這個數組中,雖然這個數組本來是用來后處理反應速率的,不過由於可以直接在gui里設置該數組的個數以及輸出頻率,而且該變量僅僅用來保存輸出,計算中未被使用,因此可以靈活使用,來保存其他需要保存的變量。
例如這里我要保存網格內顆粒Y方向的平均速度V_s
,可以先設置一個ReactionRates
數組,以備后面使用:
在des_granular_temperature
中USE這個數組:
定義一個局部變量用於后面保存網格內顆粒速度的和:
將顆粒速度累加到對應網格內的M
相內:
除以網格內M
相顆粒個數,得到網格內顆粒的平均速度,並保存到ReactionRates(ijk,1)
中。
注意擬顆粒溫度由於其定義跟維數有關,因此要多除以一個維數,但是速度不需要:
添加代碼如下:
現在,只要調用這個函數,就會往ReactionRates
中寫入固相速度,因此只要在輸出的部分,每次輸出之前調用一次DES_GRANULAR_TEMPERATURE
就可以了:
重新編譯計算可以看到輸出Y方向速度:
代碼:
https://github.com/yinweijie/MFiX_lab/tree/master/2.DEM_V_s