1 Introduction

Immersed granular flows are flows mixing fluid and grains. Increasing numbers of industrial processes make use of immersed granular flows that is why it has become an important research area. Insight into immersed granular flows will benefit civil engineering (concrete, cement, etc.) and geology (avalanches, lava flows, transport of marine sediments, etc.) along with pharmaceutical, cosmetic, chemical and agro-food industries (toothpaste, fertilisers, etc.). There is lack of knowledge on immersed granular flows due to the complexity of the flow that can be greatly inhomogeneous and the influence of these inhomogeneities on the flow regime [61].

The numerical models solving immersed granular flows can be separated with respect to the scale at which the fluid and the solid phases are computed [68]. On the one hand, large-scale simulations are performed using the continuum approaches. Grains can be modelled as a continuous phase using balance equations as in the so-called two fluid model [25]. An averaging process is applied on variables to transform the second Newton’s law of motion for an isolated grain and the Navier-Stokes equations for the fluid phase into continuum equations representing the transfer of momentum between the two phases [4, 31]. This Eulerian–Eulerian representation of the two phases is convenient because of the smaller computational cost but the coarse representation of the solid phase requires empirical relations [67]. For example, it has been quite common to use a two fluid model to compute macroscopic behaviours of a fluidised bed because the solid phase can be viewed in such an application like a fluid [9, 50]. Another possibility is to consider the grains totally mixed with the fluid and the whole computed with models for non-Newtonian fluid [53]. It is quite obvious that the representation of the solid phase in continuum approaches is inaccurate and these models are not able to give insight on the fine scale characteristics like trajectories and forces applied on each grain.

On the other hand, there exist numerical models that fully resolved the two phases constituting the discrete approaches. This second class of models can be divided depending on the method used to solve the two phases. The trajectories of the grains are solved using discrete element methods (DEM) that compute trajectories in a Lagrangian way. The forces applied on each grain are computed and used to move the grains taking into account the constraints imposed by the other grains and the boundaries. Event-driven methods [42] are not applicable to solve contacts in dense granular media where the time step between two collisions is very small. For mixtures with a high concentration of grains, it is necessary to use time stepping methods. In the smooth DEM [16], interpenetration and slight deformations of the grains are allowed and give the elastic, plastic and friction forces between the grains. By contrast, in the nonsmooth grains model [32] deformations and interpenetrations are totally banned. The discrete approaches are also dependent on the representation of the fluid interacting with the grains. Methods that are fully resolved compute the fluid at a smaller (or identical) scale than the fine grain scale making the computations very CPU time-consuming. On top of the cost linked to the scale resolution, methods using a mesh covering only the fluid phase need to update the mesh of the computational domain at each displacement of the grains [29]; the use of a penalty or Lagrange multipliers methods to take into account the boundaries of the grains [48] avoids updating of mesh. However, it is possible to free itself from the use of a mesh by using, for example, the lattice-Boltzmann method to represent the fluid [65]. In that case, special cautions are necessary when grains are closer than one grid spacing because it leads to a loss of mass and difficulties to solve the fluid flow in this gap [45]. Despite their computational cost, these methods have the advantage that they do not necessitate phenomenological laws and can therefore be used to calibrate the parametrisation of other approaches [23, 66].

It is also possible to couple a discrete representation for the grains and a continuous model for the fluid defining an Eulerian–Lagrangian model for immersed granular flows. Since the introduction by Tsuji et al. [59, 60] of this kind of model to compute the behaviour of fluidised beds, a lot of studies have been achieved to test the accuracy of the model [28, 63]. Such an unresolved CFD–DEM model is particularly valuable because it is applicable to dense particulate reaction system like energy conversion or petro-chemical processing [67] and dense particulate flows in complex geometries like gas-solid flow in pneumatic conveying band or gas cyclone separator [14, 15]. The Eulerian representation of the fluid has a smaller computational cost than discrete approaches while the Lagrangian representation of the grains provides information like trajectories and forces applied on each grain that are inaccessible with continuum approaches. Unresolved CFD–DEM models should then be used to compute immersed granular flows with a large discrepancy in the volume fraction of grains going from porous media to pure fluid and local effects such as the obstruction of an injection pipe. The difficulty of this method comes from the coupling between the two scales representing the phases. The dynamics of the fluid is deduced from a continuous representation of the mixture between grains and fluid at the coarse scale of a computational cell while the solid motion is at the fine grain scale [64]. The momentum transfer between each phase should be parametrised. It cannot be computed directly at the fine scale because the details of the fluid flow are not represented [61]. Different coupling terms have been proposed in the literature depending on pressure gradient or buoyancy force distribution on the phases [35]. Comparisons with experiments tend to favour models in which the pressure drop is only supported by the fluid phase [26] but a more recent review states that there exists a unique consistent set of equations presented in different forms [18].

This article presents an unresolved CFD–DEM model for immersed granular flows. The grains motion is computed with a nonsmooth discrete element method [19] while the fluid phase is solved with the finite element method. The triangle-based meshes can be easily refined and adapted at regular time interval to capture important flow features in complex geometries with a constant number of elements. Unstructured meshes using Lagrange linear shape functions for both the pressure and the velocity ensure a fast computation of flows but require to be stabilised. A stable numerical scheme is though require to apply the interaction force both on the fluid and the grains due to the explicit coupling between the phases.

This model is validated on simulations of the well-known problem of suspension drops that refers to cluster of grains settling in a (viscous) fluid. Since the research achieved by Brinkman [12] in 1947 on the force exerted by a fluid on a cloud made up of grains, a lot of studies have been driven to describe accurately this problem. A great attention was given to the particular evolution of the falling drop when Reynolds number is negligible. In 1977, Adachi et al. [2] tried to describe analytically the falling velocity of the drop. The theoretical model based on a steady-state assumption was not quite good but gives a lower bound compared to experiments. Injection process of the drop during experiments is a tricky step because it is practically impossible to form a perfectly spherical drop. Despite this variability in the initial shape, the drops go through similar stages during their fall that have been summarised by Adachi et al. [2]. Just after the drop begins to move, some grains escape from the cloud and form a tail that grows in time until it separates from the swarm. The tail contains grains from the rear of the swarm as well as grains from inside because of the recirculation that leads grains outside the closed envelop. The rate of grains leakage is linked to the falling velocity of the swarm, the radius of the swarm and the radius of the grains [46]. At some time, the centre of the swarm contains not enough grains and the tail breaks up. The fluid can go through the centre of the swarm and it changes into an open torus that destabilises during expansion and contraction phases to form two (or more) secondary droplets [41]. The probability the torus breaks up has been analysed statistically and linked to the initial number of grains in the swarm by Metzger et al. [43]. They also give another formula for the rate of grains leakage based on this initial number of grains.

Interests carried in suspension drops have increased during the last two decades both experimentally and numerically. The fall of suspension drops settling at vanishing Reynolds number also called Stokes cloud can be computed using Stokeslet model [46] that have been proved to provide consistent results when it is compared to experiments [41, 43]. However, the evolution of the suspension drop is modified by increasing inertia. Subramanian and Koch [55] pointed out different regimes for suspension drops and developed equations based on the Oseen stream function [6, 37] to represent the fall of suspension drops at small but nonzero Reynolds number dominated by source-field interactions. It has been found that the drop goes through the different steps faster and the normalised time at which break-up occurs decreases with increasing inertia [49] but it seems that this time tends to a steady-state value for high Reynolds number [40]. The inertia has also an impact on the number of secondary droplets that are formed after break-up [8].

If a lot of these researches state about monodisperse clouds, a growing number of articles have recently dealt with polydisperse clouds. Abade and Cunha [1] studied the stability of polydisperse clouds and find it less important than for comparable monodisperse clouds. Simulations, validated with the experiments of Mylyk et al. [44], show similarity between Gaussian polydisperse clouds and monodisperse clouds [27]. One of the differences is that small grains leave a polydisperse cloud faster than corresponding grains in a monodisperse cloud. This accelerated time of departure from the cloud has an influence on the break-up that could occur earlier. It is also important to note that the leakage of small grains is dependant on the initial configuration of the polydisperse cloud. A greater number of grains are lost during the fall in unmixed clouds than in mixed clouds [13].

In Sect. 2 of the present paper, we state the equations of the unresolved CFD–DEM. Section 3 is devoted to the validation of the model using Stokes cloud simulations. Finally the flexibility of the implementation is shown on results of flows at non-negligible Reynolds number along with the possibility to obtain fast prediction by using the bidimensional version of the model.

2 Modelling and numerical background

The present section is devoted to an overview of the unresolved FEM–DEM multiscale model highlighting its key points. First comes the coarse scale averaged Navier-Stokes equations that are necessary to observe phenomena of interest in the flow motion. Then the details of the nonsmooth DEM will be exposed insisting on an original management of the iterative contact solver to finally present the interaction between the coarse scale fluid variables and the fine scale solid variables.

2.1 Fluid phase dynamics

The physical fields computed by the Navier-Stokes equations are averaged using a weight function to smooth the influence of the grains at each point of the fluid [4]. These averaged variables over a local control volume are obtained by using the porosity\(\phi \) as a weighting variable that represents the volume fraction of fluid inside the local control volume. The complete derivation of the equations has been proposed by Anderson and Jackson [4]. Assuming that the fluid density \(\rho \) is constant and noting \(\varvec{u}=\phi \varvec{w}\) the mean velocity of the fluid phase, the conservation laws for the fluid phase are:

$$\begin{aligned} \rho \left( \dfrac{\partial \varvec{u}}{\partial t}+\varvec{\nabla }\cdot \dfrac{\varvec{u}\varvec{u}}{\phi }\right)&=\varvec{\nabla }\cdot \left[ 2\mu \phi \varvec{d}(\varvec{u})-p\varvec{I}\right] + \varvec{f}+\phi \rho \varvec{g}, \end{aligned}$$
(1)
$$\begin{aligned} \dfrac{\partial \phi }{\partial t}+\varvec{\nabla }\cdot \varvec{u}&=0, \end{aligned}$$
(2)

where p is the pressure, \(\varvec{f}\) is the force density coming from the fluid–grains interaction, \(\varvec{g}\) is the gravity, \(\varvec{I}\) is the identity tensor and \(\varvec{d}(\varvec{u})\) is the rate of deformation tensor:

$$\begin{aligned} \varvec{d}(\varvec{u})\triangleq \left( \varvec{\nabla }\dfrac{\varvec{u}}{\phi }+\left( \varvec{\nabla }\dfrac{\varvec{u}}{\phi }\right) ^T\right) . \end{aligned}$$

It has to be noticed that the two unknown fields p and \(\varvec{u}\) depend on the porosity field which can be computed at each time step using the positions of the grains in the mesh. This formulation is often referred as Model B in which the fluid phase is the only one contributing to the pressure drop through the mix medium [25] that has been showed to provide more consistent results [22]. These equations describe a typical saddle-point problem

figure a

The weak form to solve using a stabilised \({\mathbb {P}}_1\)-\({\mathbb {P}}_1\) finite element method can be easily obtained noting the approximation of the fields on the mesh:

$$\begin{aligned} p(\varvec{x},t)\simeq p^h(\varvec{x},t),\\ \varvec{u}(\varvec{x},t)\simeq \varvec{u}^h(\varvec{x},t). \end{aligned}$$

Find \((\varvec{u}^h,p^h)\) such that

$$\begin{aligned} \begin{aligned}&\left\langle \varvec{{\hat{u}}}^h\left( \rho \dfrac{\partial \varvec{u}^h}{\partial t}+\rho \varvec{\nabla }\cdot \dfrac{\varvec{u}^h\varvec{u}^h}{\phi }- \varvec{f}^h-\phi \rho \varvec{g}\right) \right\rangle \\&\quad +\left\langle \varvec{\nabla }\varvec{{\hat{u}}}^h\cdot \left( 2\mu \phi \varvec{d}(\varvec{u}^h)- p^h\varvec{I}\right) \right\rangle =0 \quad \forall \varvec{{\hat{u}}}^h,\\&\left\langle {\hat{p}}^h\dfrac{\partial \phi }{\partial t}\right\rangle +\left\langle \varvec{\nabla }{\hat{p}}^h \cdot \left( -\varvec{u}^h+\varepsilon \varvec{\nabla }p^h\right) \right\rangle =0 \quad \forall {\hat{p}}^h, \end{aligned} \end{aligned}$$
(3)

where \(\varvec{{\hat{u}}}^h,~{\hat{p}}^h\) are the test functions. The Laplacian of pressure in the mass equation is used to stabilise the \({\mathbb {P}}_1\)-\({\mathbb {P}}_1\) finite element formulation used to solve the above equations that does not respect the LBB condition [5, 10, 36]. Unless the equations are stabilised, high-frequency pressure modes are developing and the simulations blow up. Introducing a diffusive term of pressure in the continuity equation is a simple way to couple the pressure unknowns and make the problem stable [11, 30]. This stabilisation term introduces a critical parameter \(\varepsilon \) that could change the nature of the problem if it is too big. However, if it is too small, the additional term does not stabilise the problem anymore. It can be shown using a convergence analysis on the Stokes problem that this parameter should be of order \({\mathcal {O}}(h^2/\nu )\) where h is the element mesh size [30].

2.2 Solid phase dynamics

figure b

In this paper, we use a nonsmooth discrete element method considering spherical grains that interact only via contact forces. The velocity of a grain i (here free of contact) is computed using Newton second law of motion

$$\begin{aligned} \dfrac{\text { d}}{\text { d}t}\left( m_i\varvec{v}_i\right) = m_i\varvec{g}-V_i\left. \varvec{\nabla }p\right| _{\varvec{x}_i}-\varvec{f}_i \end{aligned}$$
(4)

where \(m_i\), \(V_i\), \(\varvec{x}_i\) and \(\varvec{v}_i\) are, respectively, the mass, the volume, the position and the velocity of the grain. The fluid–grains interaction force is represented by the combination of \(V_i\left. \varvec{\nabla }p\right| _{\varvec{x}_i}\) and \(\varvec{f}_i\).

The velocity of a grain obtained by integrating the differential equation above is a free velocity; it does not take into account any contact. In order to prevent the overlapping of the grains, this free velocity is corrected due to contact reactions computed with the nonsmooth Contact Dynamics method (NSCD) [32], as detailed in Algorithm 1. As a first step, it is required to detect all the potential contacts. A pair of grains are susceptible to be in contact if they are closer than an alert distance. This alert distance should depend on the solid time step and on the velocities of the grains. In practice the alert distance is fixed and equal to the radius of a grain. It results from this choice of a fixed alert distance that the solid time step is variable and computed so that the fastest grain does not travel more than its radius during this variable time step.

Then the contact reactions are iteratively computed to verify the contact laws.

Considering inelastic collisions, the contact reaction applied on a grain is the resultant of all the active contacts involving this grain during the time step. A boundary is considered as an object with infinite mass at rest.

An improvement to the commonly nonlinear Gauss–Seidel method (NLGS) used in NSCD has been achieved to fasten computations. Usually a loop over all the potential contacts is performed during the NLGS iterations [3, 32,33,34, 51]; it could result in a loss of time particularly when many grains are at rest as in deposit. This situation is prevented by skipping contact computation when the involved grains motion is not modified by other contacts up to a tolerance. The use of a queue to process the contacts can then improve the computational time without loss of accuracy. The steady configuration of the grains without overlapping is reached when the queue is empty.

2.3 Fluid–grains interaction force

One question remains to solve the problem: which constitutive law should be used for the fluid–grains interaction force? There is no commonly accepted expression for the drag force fitting all the situations. Theoretical developments for multigrains flows can be found using simplifying assumptions like a Stokes regime or a dilute suspension [7] but for many applications, drag formula are empirically deduced within the range of parameters needed usually based on measurements of the pressure drop inside the fluid percolating through a fixed assemble of grains [20] or on the settling velocity of a dilute pack of grain in a fluid [52].

Dealing with multigrains medium requires to take into account the influence of the neighbouring grains on the fluid–grain interaction force experienced by an individual grain. This can be done by multiplying the fluid–grain interaction force experienced by a single grain with an independent function of the porosity \(g(\phi )\) [52]. The fluid–grain interaction force can be written:

$$\begin{aligned} \varvec{f}_i=\underbrace{g\left( \left. \phi \right| _{\varvec{x}_i}\right) C_d\pi r_i^2\dfrac{\rho }{2}\left\| \varvec{v}_{i}- \left. \dfrac{\varvec{u}}{\phi }\right| _{\varvec{x}_i}\right\| }_{\displaystyle \triangleq \gamma _i}\left( \varvec{v}_{i}- \left. \dfrac{\varvec{u}}{\phi }\right| _{\varvec{x}_i}\right) \end{aligned}$$
(5)

where \(r_i\) is the radius of the grain and \(C_d\) is the drag coefficient for which a well-established correlation for spherical grains over a wide range of grain Reynolds number \(Re_i\) has been given by Dallavalle [17]:

$$\begin{aligned} C_d=\left( 0.63+\dfrac{4.8}{\sqrt{{Re}_{i}}}\right) ^2 \end{aligned}$$

with

$$\begin{aligned} {Re}_{i}=\dfrac{2r_i\rho \left. \phi \right| _{\varvec{x}_i}}{\mu }\left\| \varvec{v}_{i}- \left. \dfrac{\varvec{u}}{\phi }\right| _{\varvec{x}_i}\right\| \end{aligned}$$

Wen and Yu [62] have suggested a simple power law for the independent multiplier function of the porosity that is suitable for low and high Reynolds regimes:

$$\begin{aligned} g\left( \left. \phi \right| _{\varvec{x}_i}\right) =\left. \phi ^{-\beta }\right| _{\varvec{x}_i} \end{aligned}$$

with \(\beta =1.8\) but there exists many refinements for this coefficient [21, 35, 39, 56, 68] to fit the intermediate as well as the extreme Reynolds regimes. By the Newton third law of motion, this force is linked to the interaction force applied by the grains on the fluid in Eq. (1):

$$\begin{aligned} \varvec{f}=\sum _{i\in {\mathcal {G}}}\left( V_i\left. \varvec{\nabla }p\right| _{\varvec{x}_i}+\varvec{f}_i\right) \left. \delta \right| _{\varvec{x}_i} \end{aligned}$$

where \({\mathcal {G}}\) is the set of grains and \(\left. \delta \right| _{\varvec{x}_i}\) is the Dirac function centred at the grains position. With this definition and the use of the Dirac function, it is now clear that the relation between \(\varvec{f}\) and its approximation on the mesh \(\varvec{f}^h\) is exactly the same that the relation between \(p,\varvec{u}\) and \(p^h,\varvec{u}^h\).

2.4 Time integration method

For many applications, the fluid–grains interaction source-term is large and needs a particular attention because of the coupling between the fluid and the grains. An easy way to treat this dominant term is to use a semi-implicit scheme [47] to linearise the source-term and deduce a prediction of the grain velocity at the next time step. Introducing the drag force formula (5) in the solid momentum Eq. (4), we can develop the discrete time evolution of the grain velocity using a semi-implicit scheme for the drag force:

$$\begin{aligned} \dfrac{m_i}{{\varDelta }t}\left( \varvec{v}_i^{*}-\varvec{v}^n_i \right)&= m_i\varvec{g}-V_i\left. \varvec{\nabla }p^{n+1}\right| _{\varvec{x}_i}-\gamma ^n_i\left( \varvec{v}_{i}^{*}- \left. \dfrac{\varvec{u}^{n+1}}{\phi ^n}\right| _{\varvec{x}_i}\right) \end{aligned}$$

where n denotes the previous time step and \(\varvec{v}_i^*\) is a prediction of the free velocity of grain i at the current time step. This prediction can be isolated as

and then included in the source-term defined by Eq. (5) to determine the stable drag force used to compute the unknowns at current time \((n+1){\varDelta }t\):

This force formulation making use of the implicit fluid velocity is computed during the implicit Euler time integration of the finite element problem. The forces are evaluated at the grain positions by evaluating the fluid velocity at the centre of each grain and then interpolated at the fluid nodes. The different steps of a time loop computing the granular flow dynamics are presented in Algorithm 2.

figure c
Table 1 Parameters used for the different simulations of clouds falling in fluid
Fig. 1
figure 1

Fluid streamlines in the frame of reference of the drop at different time of a tridimensional simulation achieved with parameters Set 1 in Table 1. The blue circles represent the sectional area of the grains with the vertical plane centred in depth. Top-right corner figures show the different steps at the same scale. This 3d simulation has been performed using 1704 grains. (Color figure online)

3 Results

The first tests of the model stage the fall of a swarm or a drop made up of grains in a viscous fluid. Such a drop passes through different steps during its fall. In the next sections, these steps are explained and qualitative comparisons between experiments found in the literature and our simulations for mono- and polydisperse drops are achieved. A special attention is paid to the comparison of bidimensional and tridimensional simulations achieved with the same model.

Fig. 2
figure 2

Shape evolution up to the destabilisation and the torus formation of a single cloud made up of grains falling in a viscous fluid obtained with a tridimensional simulation using the parameter Set 1 in Table 1. Cloud states are shifted to the right each time interval of \({\varDelta }t=5\) s

3.1 Stokes cloud made of grains

A spherical cloud made of grains falling in a viscous fluid is considered. Metzger et al. [43] gave a complete description of the evolution of such a cloud based on experiments and Stokeslet simulations. In order to model the injection process of the mixture cloud by a syringe in the viscous medium, the initial vertical velocity of the cloud is set to the Stokes settling velocity:

$$\begin{aligned} \varvec{U}_0\sim \phi R_0^2\varvec{g}\dfrac{m_i-\rho V_i}{V_i\mu } \end{aligned}$$

where \(R_0\) is the initial horizontal radius of the cloud. Machu et al. [41] studied the effect of the initial shape on the evolution of the cloud. It is practically impossible to create a perfect spherical cloud in experiments and an initial bell-shaped cloud slightly change the evolution of the cloud. In this section, a perfectly spherical cloud is considered as the first assumption made by Adachi et al. [2]. The fall of the cloud creates a toroidal velocity field in the fluid phase. In the frame of reference of the cloud, the fluid streamlines are closed inside the mixture and open outside so that no fluid from the surrounding medium is able to enter in the cloud. The fluid streamlines form a closed envelop containing the cloud as illustrated in Fig. 1. This Fig. 1 presented in this paper shows the same features than Figure 12 presented in Metzger et al. [43]. The parameters used for the simulations presented in this paper are sum up in Table 1.

After being released in the fluid, the upper part of the cloud lengthens while the lower part remains almost hemispherical. Some grains are led to the rear by the circulating velocity field and they escape the cloud where the streamlines break. This causes a decrease in the aspect ratio between the cloud horizontal radius R(t) and the cloud vertical radius H(t) defined in Fig. 2. The cloud horizontal radius is defined as the radius of a circle centred at the centre of mass of the cloud in the plane xy containing \(80\%\) of the grains while the cloud vertical radius is the distance between the centre of mass to the leading front.

The escaped grains fall more slowly than the cloud and they form a growing tail by continuously increasing the number of grains n(t) inside the tail. The fraction of the total amount of grains inside the tail is shown in Fig. 3c. After a while, the tail is disconnected from the cloud and left behind. The rate of this grain leakage has been shown to be dependent on the falling velocity of the cloud, the radius of the cloud and the radii of the grains [46].

An overpressure point in front of the motion and an underpressure point at the rear of the motion go along with the circulating velocity field and forces the lower part of the cloud to flatten. This flattening increases the aspect ratio and slows down the falling velocity of the cloud as illustrated in Fig. 3a, b. In Fig. 3, the star exponent means that the variables are adimensionalised with \(R_0\) and \(\varvec{U}_0\).

If the initial cloud contains a too small number of grains, it is disintegrated by constantly losing grains into the tail [46]. Otherwise, when enough grains have left the swarm, the overpressure point forces the fluid to go through the cloud changing it into an open torus. This open torus experiences expansion and contraction phases with a predominance of the expansion behaviour [43]. The torus is unstable and can divide into two or more droplets depending on the initial number of grains inside the cloud [46] (see Fig. 1).

The description above is only valid for Stokes falling cloud i.e. cloud falling in a viscous fluid such that the cloud Reynolds number and the grains Stokes number are small. The cloud Reynolds number is defined as the ratio between the fluid inertia due to the cloud motion and the viscosity of the fluid:

$$\begin{aligned} {Re} = \dfrac{\varvec{U}_0 R_0}{\nu } \sim \dfrac{\phi \parallel (\rho _i-\rho V_i)\varvec{g}\parallel R_0^3}{\rho V_i \nu }\ll 1, \end{aligned}$$

and the grains Stokes number is defined as the ratio between the kinetic energy of the cloud and the energy dissipated by friction:

$$\begin{aligned} St=\dfrac{m_i \varvec{U}_0^2}{6\pi \mu r_i \varvec{U}_0 R_0 }\ll 1. \end{aligned}$$

For dilute suspension, it is possible to consider only the grains Reynolds number because the settling velocity of the cloud is of order of the Stokes settling velocity of an isolated grain. Then inertia can be neglected if the grains Reynolds number is small. For dense clouds in which the number of grains is sufficiently high to increase significantly the velocity of the cloud with respect to the Stokes settling velocity of an isolated grain due to mutually induced motion, the cloud Reynolds number needs to be considered [41]. We keep it with the grains Stokes number as indicators of the fluid inertia because it is the more stringent requirement.

Fig. 3
figure 3

a Dimensionless vertical cloud settling velocity \(U^*\), b dimensionless horizontal radius \(R^*\) and c fraction of grains in the tail versus dimensionless time \(T^*\) for different value of the numerical parameter \(\varepsilon \) using a cloud with \(Re=9\times 10^{-5}\) and \(St=2\times 10^{-8}\)

3.1.1 Sensitivity to stabilisation parameter

Simulations achieved with the unresolved CFD–DEM model can be altered by the stabilisation parameter \(\varepsilon \). As presented in the previous Sect. 2, this parameter should vary with the mesh size and the viscosity of the fluid [11, 30] for the Stokes problem but the stabilisation coefficient depends on the problem and refinements have to be considered for the general case of unsteady Navier-Stokes equations [54, 57, 58].

Figure 3 sums up the main features of a Stokes cloud for different value of the \(\varepsilon \) parameter. First of all, it should be noted that all the simulations provide the expected behaviour. During the fall, the drop flattens increasing its horizontal radius (Fig. 3b). Due to this flattening, the density of the swarm decreases and the cloud slows down (Fig. 3a). The departure of the grains from the cloud at the rear of the motion is associated with the expansion and deceleration phase (Fig. 3c). The leakage rate decreases with time until the tail is left behind and the cloud forms an open torus.

Fig. 4
figure 4

Shape evolution of vertically aligned interacting clouds using the parameter Set 2 in Table 1. Clouds states are shifted to the right each time interval of \({\varDelta }t=12.5\) s. The 3d simulation has been performed using 12812 grains

Fig. 5
figure 5

Shape evolution of interacting clouds with an horizontal offset corresponding to the diameter of the drops using the parameter Set 3 in Table 1. Clouds states are shifted to the right each time interval of \({\varDelta }t=5\) s. The 3d simulation has been performed using 73,590 grains

3.2 Forecasting with bidimensional simulations

The great advantage of the unresolved CFD–DEM model is its generality. The constitutive equations of the model can easily be implemented for bidimensional problems by considering the spherical grains as cylindrical grains of unity depth. It requires to change the formula of the grains Reynolds number and the expression of the drag force because the sectional surface is changed to a rectangle of length d and unity width:

$$\begin{aligned} Re_i&=\dfrac{\sqrt{2d}\left. \phi \right| _{\varvec{x}_i}}{\mu }\\ \varvec{f}_i&=g\left( \left. \phi \right| _{\varvec{x}_i}\right) C_d d\dfrac{\rho }{2}\left\| \varvec{v}_{i}- \left. \dfrac{\varvec{u}}{\phi }\right| _{\varvec{x}_i}\right\| \left( \varvec{v}_{i}- \left. \dfrac{\varvec{u}}{\phi }\right| _{\varvec{x}_i}\right) \end{aligned}$$

It is important to note that changing the grains from spheres to cylinders also change the computation of the volume and hence the porosity.

Bidimensional simulations are convenient because of the low computational cost. In the case of Stokes cloud made up of grains, the bidimensional features of the cloud can be seen as a vertical cut of the tridimensional case. The traditional Stokeslet simulations [41, 43] are unable to provide bidimensional simulations because the Stokes solution for the flow around a sphere is not acceptable for infinite cylinders and Oseen correction terms have to be considered [38].

Interacting clouds experiments have been achieved by Machu et al. [41]. The case of two vertically aligned clouds is presented in Fig. 4. During the fall, the upper cloud lengthens very fast while the lower one flattens. This results from the addition of the two circulating velocity field. The lower cloud is compressed between its own overpressure point and the overpressure point of the upper cloud. This crushing changes the lower cloud in an open torus through which the upper cloud can cross. Until this time, the initially upper cloud seems to experience the expedited evolution of a single cloud, forming the reverse mushroom with the other cloud around the tail. Then the initially upper cloud slows down and wrap the other cloud.

Figure 4 shows vertical cuts of the evolution steps of the clouds during the fall and comparisons with bidimensional simulations. The same features can be observed with some differences due to the loss of one dimension. In the first detailed step, there is a larger layer of interstitial fluid between the two clouds in the 3d simulation. This could be explained by the cylinder representation of the grain. In bidimensional simulations, the fluid can only move in a vertical plane because the height of the cylinder is equal to the depth of the domain.

It also can be seen that the grains spread more in 2d simulations. Due to the fall of the clouds, the fluid has to go up. For the 3d case, the fluid is able to circumvent the clouds in-depth but in the 2d case it has to cross the cloud vertically spreading the grains.

The same observations are made for the case of two interacting clouds with an horizontal offset. The evolution of the clouds is similar to the previous case but the attraction between the clouds causes a diagonal trajectories to the clouds. Figures 4 and 5 of this paper have been inspired on purpose, respectively, by Figures 14 and 16 presented by Machu et al. [41] to ease comparisons and validation.

3.2.1 Adaptive mesh

To speed up the computations, the fluid is solved at a greater scale than the grain scale. However, for many applications the global domain is much greater than a grain. Capturing interactions between grains and fluid at a mesoscopic scale requires to cover the global domain with several thousands of elements that slow down the computations. Using an adaptive mesh reduces the computational cost. The velocity field, the pressure field and the porosity field allow to predict the location of the important physical effects where the mesh needs to be refined and compute a size field \({\mathcal {L}}\) accordingly to the empirical formula:

$$\begin{aligned} \left\{ \begin{array}{l} {\mathcal {L}}=\max \left( \min \left( {\mathcal {L}}_p,{\mathcal {L}}_{\varvec{u}},h_{\max }\right) ,h_{\min }\right) \\ {\mathcal {L}}_{p}=\dfrac{h_{\min }}{\min \left( 1,\max \left( \dfrac{\varvec{\nabla }p}{\varvec{\nabla }p_{\max }},\dfrac{\varvec{\nabla }p_{\min }}{\varvec{\nabla }p_{\max }}\right) \right) }\\ {\mathcal {L}}_{\varvec{u}}=\dfrac{h_{\min }}{\min \left( 1,\max \left( \dfrac{\varvec{\nabla }\varvec{u}}{\varvec{\nabla }\varvec{u}_{\max }},\dfrac{\varvec{\nabla }\varvec{u}_{\min }}{\varvec{\nabla }\varvec{u}_{\max }}\right) \right) }\\ \end{array} \right. \end{aligned}$$
(6)

where \(h_{\max }\) and \(h_{\min }\) are the maximum and minimum size in which the length of an element have to lie and the indices max and min for the gradient of pressure and velocity means the maximum and minimum gradient over all the nodes of the mesh. Knowing the size field, the new number of elements is computed to estimate the ratio between the expected number of elements and the real number of elements. The size field is then multiplied by this ratio with the constraint that no value of the size field can be smaller than \(h_{\min }\).

Fig. 6
figure 6

Dimensionless vertical falling velocity of a Stokes cloud with the parameter Set 1 in Table 1 using different mesh sizes and the adaptive mesh

Fig. 7
figure 7

Pressure field around a Stokes cloud with parameters Set 1 in Table 1 using the adaptive mesh obtained using GMSH. The mesh contained approximately 20,000 elements and a minimum mesh size of \(10^{-3}\)

Figure 7 shows the fall of a bidimensional Stokes cloud using an adaptive mesh containing approximately 20,000 elements with a minimum mesh size of \(10^{-3}\) m. This mesh is generated automatically by GMSH [24] using a size field determined by the previous empirical formula (6) that has proven its efficiency for many examples.

The adaptive mesh contains approximately the same number of elements than the mesh with elements of size \(h=2\times 10^{-3}\) m and four times less than the mesh with elements of size \(h=10^{-3}\) m. The results show a good agreement between the curve obtained with the most refined uniform mesh and the curve obtained with the adaptive mesh (see Fig. 6) while the CPU time is 4.45 times smaller with the adaptive mesh. The CPU times until the state shown in Fig. 7 and the properties of each mesh are sum up in Table 2.

For now the mesh is rebuild from scratch when the adaptation is needed and the unknown fields have to be evaluated at the new mesh nodes. This procedure is not optimal and creates an additional computational cost that can be seen by comparing the CPU time of the uniform mesh with \(h=2\times 10^{-3}\) m with the CPU time of the adaptive mesh. These two meshes have approximately the same number of elements but the computation using the adaptive mesh is 1.5 times slower because of the adaptation. That is why it is not fruitful to adapt the mesh at each iteration. In practice for the case of cloud falling in a fluid, the number of iterations between two adaptations of the mesh can be estimated based on the refined area and the settling velocity of the swarm. For the case shown in Fig. 7, the mesh is adapted each 20 iterations. It ensures that the clouds do not go out of the refined area.

Table 2 CPU times and mesh properties used to compute the fall of a bidimensional Stokes cloud using the parameters Set 1 in Table 1 until \(t^*=27\)

3.3 General model for polydisperse flows with non-negligible Reynolds number

Due to the complete representation of the fluid, the Reynolds number can be increased continuously without changing the model. To show the effect of inertia on the grains dynamics, an example is presented in which three clouds made up of grains with a greater density than the fluid fall over a cloud made up of grains with a smaller density than the fluid. This situation is shown in Figs. 8 and 9. At the beginning of the simulation, the two lower clouds move towards each other, while the two upper clouds are attracted exactly like in the simulations showing two vertical interacting clouds. At this stage, it is already possible to distinguish the effect of the inertia by observing the vortices let by the clouds in their wake. In the case of a small Re, the dissipation is such that the vortices of the heavy clouds merge when they approach the light cloud while they are still separate in the case of a greater Re as shown in Figure 10. The adimensionalisation of the time is based on the initial cloud radius and the Stokes settling velocity. It also has to be noticed that the circulating velocity fields have a greater interaction in the small Reynolds number case. The two lower clouds flatten completely before they collide while they remain hemispherical for the case with higher Reynolds number. This greater interaction forces the upper clouds to lengthen so that we observe a bigger tail in the viscous case and an accelerated evolution of the clouds.

Fig. 8
figure 8

Shape evolution of interacting clouds made up with grains of different densities. The blue cloud (parameter Set 5 in Table 1) is lighter than the fluid while the red ones (parameter Set 4 in Table 1) are heavier. Clouds states are shifted to the right each time interval of \({\varDelta }t=2.5\) s. (Color figure online)

Fig. 9
figure 9

Shape evolution of interacting clouds made up with grains of different densities. The blue drop (parameter Set 7 in Table 1) is lighter than the fluid while the red ones (parameter Set 6 in Table 1) are heavier. Clouds states are shifted to the right each time interval of \({\varDelta }t=0.25\) s. (Color figure online)

4 Conclusions

In this paper, we have coupled a stabilised finite element method and a nonsmooth discrete element method to represent the flow of grains immersed in a fluid. Using this method, it is possible to model accurately the local effects at the grain scale due to their Lagrangian representation with a computational convenience coming from the representation of the fluid at a greater scale than the grain’s one.

The sensitive part of the model is the empirical formula used for the grain–fluid interaction force. This force is a dominant source-term so that its parametrisation has a great influence on the results and it is required to use a semi-implicit scheme to stabilise the momentum coupling between the two phases. This stable form of the drag force makes use of a prediction of the grains free velocities at the next time step so that the fluid experiences a force due to the grains that does not exactly correspond to the dissipation due to the real relative motion of the two phases.

Fig. 10
figure 10

Comparison of the fluid streamlines at the same adimensional times for two different Reynolds numbers. The blue drop is lighter than the fluid while the red ones are heavier. (Color figure online)

Many steps still need to be completed to fully certify the model. The precision of simulations will suffer from the continuous representation of the fluid while the discrete representation of the solid phase will limit the software to applications in which the number of grains is restricted. Comparisons with suitable experiments have to be achieved in order to determine the range of application of this model. It is often complicated to reproduce exactly experiments found in the literature because of the lack of some data and the misconception of the real laboratory conditions. A perfect validation will require experiments calibrated with the exact conditions enforced in the software.

However, comparisons with experiments and simulations found in literature have been achieved and proved the good performance of the implementation. The results have been discussed, and a focus on the basic stabilisation of the finite element method has shown its consistency and a convergence towards a unique solution. The CPU times have been presented along with a empirical formula to adapt the size field of the mesh during the computation. Comparing the settling velocity of a Stokes cloud with different meshes, we have shown that the adaptive mesh gives accurate results with a much smaller CPU time.

The great advantage of this model is its generality. It is possible to add grains with various material properties and shapes in various geometries containing an arbitrary fluid. The only numerical requirement is that the radii of the grains have to be smaller than the edge of the elements representing the fluid. One advantage of this numerical model compared with Stokeslet simulations [41] is that it does not require to consider correction terms of the Oseen stream function [55] when the inertia increases. Achieving simulations at various Reynolds number, we have shown the flexibility of the implementation and the importance of the contacts computation when clouds collide at non-negligible Reynolds number. The free MigFlow software based on the equations presented in this paper and the different simulations shown in figures are available to the following link https://git.immc.ucl.ac.be/fluidparticles/migflow.