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(NO_OF_DES_RXNS) ! Reaction Rates
INCLUDE 'species.inc'
!-------------------------------------------------------//
! 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.