Edit or run this notebook
21.4 s

Droplet coalescence

A fairly simple showcase is the dynamics of two coalescing sessile droplets. Of course we are not the first ones to take a look at this problem and in fact the literature concerning coalescing droplets is vast. For example references [1,2,3,4,5] study the coalescence dynamics of freely suspended droplets. While references [6,7] focus on coalescence of sessile droplets on partially wetting substrates with contact angles below π/2. We try to model the later, sessile droplets on a partially wetting substrate. Considering also the limits of the model we push towards higher contact angles to document when the small slope hypothesis fails for this problem.

The simulation is performed within the quasi two-dimensional (fast prototyping) system. Everything, besides the visualization with Plots.jl, is contained in the Swalbe.jl package. However for convenience we define two more functions. The first one contains the simulation, so we can run it with different parameters just by switching input arguments. The second one is for data analysis.

Experiment and analysis functions

  • The fluid dynamics simulation run_drop_coal()

  • Computation of the bridge height brdige_height()

One minor addition, for convenience we use a recipe that works quite similar to matplotlibs markevery function.

7.9 ms
335 ms
run_drop_coal
run_drop_coal()

Simulation for droplet coalescence in quasi two dimensions.

96.4 ms
bridge_height
bridge_height()

Function that tracks the height or thickness at a single well defined lattice point.

3.2 ms
false
84.0 μs

Initial condition

The plot below describes the initial condition of our numerical experiment. Two droplets that are barely touching with a contact angle θ of 20° (or π/9).

Due to surface tension (γ) we expect that these two droplets will coalesce into a single one. That is because a single droplet does have less surface area than two smaller ones and therefore it is an energetically favorable state.

396 μs
11.6 s

Experiment

We start the numerical experiment or simulation by simply calling the function that we defined before: run_drop_coal().

The data will be saved to an array that contains n-time steps and the whole height field. Something that is only possible with numerical simulations is to change parameters at will. We do this by changing the surface tension γ of our test liquid. Of course changing the contact angle θ or the kinematic viscosity ν would as well be possible.

405 μs
204 s

Data

Below is an example of the data that was generated during the simulation. We saved all Tmax time steps of all L lattice points in data_merge[:,:,γ] where we can specify the desired γ value in the last column of the array. Displayed is the data of the run with γ=8×10⁻⁵, or simply the first run.

A short word of caution. The lattice Boltzmann method is not perfect. On the plus side we have a relatively simple algorithm and the scales well. One of the downsides however is the fact that this method is derived from the Boltzmann equation. Therefore trying to make sense of these surface tension values is not too helpful. Interpreting results in terms of SI units is often not the best way. Personally I like to work with dimensionless numbers and relevant length and time scales.

Instead of adding SI units to the plots we normalize with characteristic quantities of the experiment.

634 μs
20000×1024 Matrix{Float64}:
 0.05       0.05       0.05       0.05       …  0.05       0.05       0.05
 0.05       0.05       0.05       0.05          0.05       0.05       0.05
 0.05       0.05       0.05       0.05          0.05       0.05       0.05
 0.05       0.05       0.05       0.05          0.05       0.05       0.05
 0.05       0.05       0.05       0.05          0.05       0.05       0.05
 0.05       0.05       0.05       0.05       …  0.05       0.05       0.05
 0.05       0.05       0.05       0.05          0.05       0.05       0.05
 ⋮                                           ⋱                        
 0.0499808  0.0499808  0.0499808  0.0499808     0.0499808  0.0499808  0.0499808
 0.0499808  0.0499808  0.0499808  0.0499808  …  0.0499808  0.0499808  0.0499808
 0.0499808  0.0499808  0.0499808  0.0499808     0.0499808  0.0499808  0.0499808
 0.0499808  0.0499808  0.0499808  0.0499808     0.0499808  0.0499808  0.0499808
 0.0499808  0.0499808  0.0499808  0.0499808     0.0499808  0.0499808  0.0499808
 0.0499808  0.0499808  0.0499808  0.0499808     0.0499808  0.0499808  0.0499808
68.6 ms

Since a plot says more than a few thousand columns, here is a plot of three different time steps. The initial kink between the two droplets is quickly smoothed out and the bridge (h₀) connecting the two droplets is growing.

271 μs
2.3 ms

Under the bridge

The next point on the list is to measure the evolution of the bridge height h₀. We expect that the height will grow according to some power law, in fact given theoretical assumptions, see refs. [6,7], we hope to observe h0(t)tα with α=2/3.

Luckily this is a fairly easy task, since by definition the touching point of the droplets is at the center of the substrate.

356 μs
490 ms

Now there are two data sets

  • Film thicknesses: h(t,x)

  • bridge heights: h0(t,γ)

Especially the bridge heights should likely collapse to a single curve upon rescaling with a characteristic time scale τ which we define as

τ=μRγ,

where R is the radius of the sphere from which the spherical cap has been cut, γ is the surface tension and μ is the liquid's viscosity. This time scale can be understood as a capillary time scale, see reference [8].

713 μs
τ
τ(γ, R, μ)

Computes a characteristic time scale.

2.2 ms

Results

In the following we show the results collected. First being the evolution of the bridge height h₀(t). This information may not be too insightful, because the data is given in terms of lattice Boltzmann units (l.b.u.). To overcome this issue we have two natural scales. On the one hand a time scale defined by τ and on the other hand a length scale given by the spheres radii R.

  • τ ... time

  • R ... length

In the plot below we see that pure data spans four different curves, based on their respective surface tensions.

720 μs
7.1 ms

In the box below the lattice Boltzmann time steps are normalized and nondimensionalized with τ.

240 μs
Loading...
ii