mfix中输出DEM颗粒的固相速度到网格
基于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方向速度:
代码:
欢迎微信打赏!

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App