更改瞬态喷射中的质量流率

本节举例说明如何更改瞬态喷射中的质量流率。

默认情况下,Simcenter STAR-CCM+ 中的每个粒子束表示相同的质量。 粒子束的质量是单个颗粒的质量 (ρ(43)πr3) 和粒子束计数之积。 粒子束计数是粒子束中包含的颗粒数。 粒子束计数是一个浮点数,还可以视为在该空间位置找到具有该质量和直径的颗粒的概率。

通过用户程序将每个粒子束中的质量作为直径函数进行更改很简单。 在此示例中,每个粒子束的质量流率随直径而线性增加。

要将参数传递给子例程,必须通过调用库例程 ufarg() 注册参数:


     subroutine uflib()
     use StarRealMod
     implicit none

  c Register user functions

     external linearDiameter
     external parcelMdot

     call uffunc(linearDiameter,
     &     "ParcelProfile",
     &     "Linear Diameter")

     call uffunc(parcelMdot,
     &     "ParcelProfile",
     &     "Parcel Mass Flow")

     call ufarg(parcelMdot,
     &     "Parcel",
     &     "$ParticleDiameter",
     & CoordRealSize)

     return
     end

要设置线性直径分布,通过替换用于设置结果的行来修改 rosinRammlerDiameter.f 例程。 在此示例中,最小直径设为 1 微米,最大值设为 100 微米。 这些直径可以设为参数。 线性分布可以编码为:


      delta = (maxdiam-mindiam)/(size-1)
      do i = 1, size
        result(i) = mindiam+(i-1)*delta
      enddo

由于下面的示例例程为喷射中的每个粒子束设置了质量流率,因此必须将质量流率条件设为“根据粒子束流”。 此设置仅当喷射器位于单个分区中时才有效,如果分区穿过喷射器,则此设置在并行模式下不起作用。


      subroutine parcelMdot(result,size,D)

      use StarRealMod

      implicit none
      integer, intent(in) :: size
      real(StarReal), intent(out) :: result(size)
      real(CoordReal), intent(in) :: D(*)

  c parcel mass is count*rho*volume, so for an exponent of
  c -3 parcel mass is constant (default behavior)
  c -2 parcel mass increases with diameter linearly
  c -1 parcel mass increases with diameter quadratically
  c etc.

      real(StarReal), parameter :: expon = -2.0

      real(StarReal) sum, ratio, mdot
      integer i 
  c a constant mass flow rate for all particles
      mdot = 1.0e-3*size 
  c set the Parcel Count
      sum = 0.0
      do i = 1, size
       result(i) = D(i)**expon
       sum = sum + result(i)*D(i)**3
      end do

  c scale for flow rate per parcel
      if (sum > 0.0) then
       ratio = mdot/sum
       do i = 1, size
         result(i) = ratio*result(i)*D(i)**3
       enddo
     endif

     return
     end

作为颗粒直径函数的粒子束质量的 XY 绘图显示了 Simcenter STAR-CCM+ 的默认行为(相 1)和用户程序的结果(相 2),且粒子束质量随直径而线性增加。