Article,

The emptying of a bottle as a test case for assessing interfacial momentum exchange models for Euler–Euler simulations of multi-scale gas-liquid flows

, , , , , and .
International Journal of Multiphase Flow, (2018)
DOI: 10.1016/j.ijmultiphaseflow.2018.05.002

Abstract

Simulating gas-liquid flows involving a wide range of spatial and temporal scales and multiple topological changes remains a major challenge nowadays, as the computational cost associated with direct numerical simulation still makes this approach unaffordable. A common alternative is the two-fluid Euler–Euler formulation that avoids solving all scales at the price of semi-empirical closures of mass, momentum and energy exchanges between the two fluids. Many of such closures are available but their performances in complex flows are still in debate. Closures considering separately large gas structures and smaller bubbles and making these two populations evolve and possibly exchange mass according to their interactions with the surrounding liquid have recently been proposed. In order to assess the validity of some of these closures, we carry out an original experiment in a simple configuration exhibiting a rich succession of hydrodynamic events, namely the emptying of a water bottle. We simulate this experiment with the NEPTUNE_CFD code, using three different closure approaches aimed at modelling interfacial momentum exchanges with various degrees of complexity. Based on experimental results, we perform a detailed analysis of global and local flow characteristics predicted by each approach to unveil its potentialities and shortcomings. Although all of them are found to predict correctly the overall features of the emptying process, striking differences are observed regarding the distribution of the dispersed phase and its consequences in terms of liquid entrainment.

Tags

Users

  • @gdmcbain

Comments and Reviewsshow / hide

  • @gdmcbain
    9 months ago (last updated 9 months ago)
    `python -c "import pint; ureg=pint.UnitRegistry(); t=11_500*ureg.h; print(t.to('yr'))"` on 100 processors!
Please log in to take part in the discussion (add own reviews or comments).