【读MFiX源代码】番外:calc_thermo_des.f

概述

该文件定义了一个模块MODULE CALC_THERMO_DES_MOD
这个模块的内部只有一个子程序
SUBROUTINE CALC_THERMO_DES

MODULE CALC_THERMO_DES_MOD
SUBROUTINE CALC_THERMO_DES

先看下注释

!  Module name: CALC_THERMO_DES                                        !
!                                                                      !
!  Purpose: This subroutine is called from DES routines. It calls      !
!  functions that calculate heat and mass transfer.
  1. 这个子程序是被DES程序所调用的
  2. 用来计算传热传质

主体内容(36-66行)

INTEGER :: NP

这是唯一定义的局部变量
不用说,肯定是颗粒的编号

往下,从40行-66行是主要部分

! This is a quick work-around to keep the thermo routines from causes
! issues while the "check_data" routines are rewritten. Moving forward
! this routine should be split apart to avoid the particle loops for
! cold-flow, non-reacting cases.
      IF(.NOT.ENERGY_EQ .AND. .NOT.ANY_SPECIES_EQ) RETURN

! Calculate time dependent physical properties
      FORALL(NP=1:MAX_PIP, PARTICLE_STATE(NP)==NORMAL_PARTICLE) &
         DES_C_PS(NP) = CALC_CP_DES(NP)

      IF(DES_EXPLICITLY_COUPLED) THEN
! Apply the convective heat transfer calculated by the gas phase.
         IF(CALC_CONV_DES) THEN
            WHERE(PARTICLE_STATE == NORMAL_PARTICLE) &
               Q_Source = Q_Source + CONV_Qs
         ENDIF
         IF(ANY_SPECIES_EQ) THEN
            WHERE(PARTICLE_STATE == NORMAL_PARTICLE) &
               Q_Source = Q_Source + RXNS_Qs
         ENDIF
      ELSE
         IF(CALC_CONV_DES)CALL CONV_GS_DES1
         IF(any(CALC_RADT_DES)) CALL DES_RADIATION
         IF(ANY_SPECIES_EQ) CALL RXNS_GS_DES1
      ENDIF

   END SUBROUTINE CALC_THERMO_DES

又可以分为三部分,是这个程序的主体

  1. 第一个IF语句:如果即没有打开能量方程,又没有使用组分输运方程,直接结束程序
  2. 第二个FORALL语句:对所有颗粒计算Cp,并赋给DES_C_PS(NP)这个变量
  3. 一个稍微复杂一点的IF ELSE语句

第三部分那个IF ELSE再展开地说一下
首先看一下DES_EXPLICITLY_COUPLED这个布尔变量的含义
在这里插入图片描述
大致就是用于减少流固耦合时的计算量的。目前只能用于冷态流动。所以忽略。必然是FALSE

跳到ELSE语句处

IF(CALC_CONV_DES)CALL CONV_GS_DES1
IF(any(CALC_RADT_DES)) CALL DES_RADIATION
IF(ANY_SPECIES_EQ) CALL RXNS_GS_DES1

实际起作用的就这三句

第一句是如果计算对流传热,就计算对流传热
第二句是如果任何颗粒计算辐射,就计算颗粒辐射
第三句是如果计算组分输运,就计算传质(还有传热)

再深入一点看model\des\rxns_gs_des1.f下的
SUBROUTINE RXNS_GS_DES1
会发现它不止计算传质,还计算对流传热,反应吸放热等等
比如会计算DES_HOR_G这个变量,它代表反应吸放热造成的生成焓(_g则代表是气相的)猜测全称是Heat of Reaction_gas

总结

改文件主要用于计算颗粒传热传质
40-66行是该文件的主体

最核心的部分是

  1. 先计算DES_C_PS(NP),就是该颗粒在当前时刻的Cp
  2. 再用三条调用子程序的语句,分别计算对流传热,颗粒辐射,反应相关的传热传质

结束

补充2020-9-4

很疑惑为什么没有导热,明明源代码和Musser的论文里面都写了 颗粒颗粒导热,但是实际上却没有调用des_conduction

待解决

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值