zoukankan      html  css  js  c++  java
  • mfix中输出DEM颗粒的固相速度到网格

    基于mfix-19.1.2版本

    方法一:直接输出差值网格固相速度

    注:这种方式只适用于garg 2012颗粒差值格式
    在DEM中,默认是无法输出固相速度的网格值的:

    但是通过搜索des文件夹下V_s关键字可以看到,实际上网格固相速度是会通过差值计算得到的:

    并且在计算DEM颗粒脉动速度的地方也用到了网格固相速度:

    说明网格固相速度只是默认没有写出,因此只需要人为写出一下即可。

    首先找到网格输出的代码位置:

    由于MMAX代表TFM的固相数,因此在循环范围部分需要修改,默认只写出TFM的网格固相速度。修改如下:

    最后在dat文件里手动添加一下VTK_U_S(VTK, PHASE)这个关键字(且确保颗粒的差值格式为garg 2012)例如:

    结果如下:
    image-20201225155650386

    方法二:保存网格内颗粒的平均速度到网格

    网格颗粒速度还可以仿照DES_GRANULAR_TEMPERATURE函数内计算网格拟颗粒温度的方式,对网格内颗粒速度进行统计平均。
    按照J. Musser的建议,可以把需要后处理的变量存到ReactionRates这个数组中,虽然这个数组本来是用来后处理反应速率的,不过由于可以直接在gui里设置该数组的个数以及输出频率,而且该变量仅仅用来保存输出,计算中未被使用,因此可以灵活使用,来保存其他需要保存的变量。

    例如这里我要保存网格内颗粒Y方向的平均速度V_s,可以先设置一个ReactionRates数组,以备后面使用:

    image-20201225155729742

    des_granular_temperature中USE这个数组:

    定义一个局部变量用于后面保存网格内颗粒速度的和:

    将颗粒速度累加到对应网格内的M相内:

    除以网格内M相颗粒个数,得到网格内颗粒的平均速度,并保存到ReactionRates(ijk,1)中。
    注意拟颗粒温度由于其定义跟维数有关,因此要多除以一个维数,但是速度不需要:

    添加代码如下:

    现在,只要调用这个函数,就会往ReactionRates中写入固相速度,因此只要在输出的部分,每次输出之前调用一次DES_GRANULAR_TEMPERATURE就可以了:

    重新编译计算可以看到输出Y方向速度:

  • 相关阅读:
    一元多项式的运算
    单链表逆转
    字符串函数
    历届试题 错误票据
    不用循环,不用递归,输出1~1000的整数
    sql三维数据
    SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问 (也就是跨数据库访问出错)
    由于服务器意外的断电,导致SQL SERVER服务器上数据库出现“置疑”而无法使用,
    关于delphi7的四舍五入
    关于delphi exit 继承
  • 原文地址:https://www.cnblogs.com/Jay-CFD/p/10786299.html
Copyright © 2011-2022 走看看