4.13.3.8. Example: DES droplet evaporation with UDF

\[\text{H}_2 \text{O}(l) → \text{H}_2 \text{O}(g)\]

Notes:

  • Various algebraic expressions in the sample UDF are omitted for brevity.

  • The global particle index (NP), phase index (pM), and fluid cell index (IJK) are passed as dummy arguments.

### mfix.dat:
NMAX_g = 2                          ! No. of gas phase species
Species_g(1) = "Air" "H2O"          ! Database names
Species_Alias_g(1) = "Air" "Vapor"  ! Species Aliases

NMAX_s(1) = 1                    ! No. of solids phase species
Species_s(1,1) = "H2O(L)"        ! Database names
Species_Alias_s(1,1) = "Liquid"  ! Species Aliases

@(DES_RXNS)
Evap { Liquid --> Vapor }
@(DES_END)

###usr_rates_des.f:
SUBROUTINE USR_RATES_DES(NP, pM, IJK, DES_RATES)
DOUBLE PRECISION, INTENT(IN) :: NP  ! Global particle index
DOUBLE PRECISION, INTENT(IN) :: pM  ! Particle solid phase
DOUBLE PRECISION, INTENT(IN) :: IJK ! Fluid Cell Index
DOUBLE PRECISION, INTENT(OUT) :: DES_RATES(:) ! Reaction Rates
!-------------------------------------------------------//
! Calculate the concentration gradient (mole/cm^3)
Cmg_H2O = < expression for calculating gradient >

IF(Cmg_H2O > ZERO) THEN
  ! Calculate mass transfer coefficient (cm/sec)
  H2O_xfr = < mass transfer coeff calculation >
  ! Calculate droplet surface area (cm^3)
  Sa = Pi * 4.0d0 * (DES_RADIUS(NP)**2)
  ! Calculate the mass transfer rate (moles/sec)
  DES_RATES(Evap) = Sa * H2O_xfr * Cmg_H2O
ENDIF

! Store the reaction rate for post processing.
IF(Evap <= NRR) ReactionRates(Evap) = &
  ReactionRates(IJK, Evap) + DES_RATES(Evap)

END SUBROUTINE USR_RATES_DES

See legacy_tests/dem-tests/evaporation for additional details.