Molecular diffusion in icoReactingMultiphaseInterFoam
Summary
I'm working on evaporation of water and diffusion of water vapour in air and encountered a problem when using the icoReactingMultiphaseInterFoam solver with laminar flows. As a testcase I use a cuboidal 1D rod with dimensions 500 mm x 1 mm x 1 mm and a discretization of 2000 x 1 x 1 (simpleGrading 1,1,1). To keep it simple this rod is completely filled with air (at first no water phase is initialized). On the left end of the rod a fixedValue boundary condition is applied with a vapour mass fraction of 0.01, whereas on the right end a fixedValue of 0 is applied. All other boundaries are of type empty.
The expected behaviour is a diffusive transport of vapour species through air governed by Fick's second law. What actually happens is no transport at all.
Steps to reproduce
Use a domain without any inflows or outflows and zero velocity leading to a dominant molecular diffusion. Set one vapour mass fraction boundary condition to a higher value than the rest of the domain. Switch to laminar model in turbulenceProperties and use addDiffusion true;
in thermophysicalProperties.gas.
Example case
What is the current bug behaviour?
Molecular diffusion is not working in laminar cases in icoReactingMultiphaseInterFoam.
What is the expected correct behavior?
Water vapour diffuses from regions/boundaries with high vapour mass fraction to regions of lower mass fraction according to Fick's second law.
Environment information
- OpenFOAM version : v2212
- Operating system : ubuntu
- Compiler : gcc
Possible fixes
In OpenFOAM-v2212/src/phaseSystemModels/multiphaseInter/phasesSystem/phaseModel/MultiComponentPhaseModel/MultiComponentPhaseModel.C:418
the mass diffusivity for the diffusion equation is calculated only using turbulent viscosity nut()
. For laminar cases nut()
is set to 0 leading to a deactivation of diffusion. Changing nut()
to nuEff()
solves the problem by calculating the diffusion coefficient based on both molecular and turbulent viscosity.