src/tension.h
Surface tension
Surface tension can be expressed as the interfacial force density \displaystyle \phi\nabla f with f the volume fraction describing the interface and the potential \displaystyle \phi = \sigma\kappa with \sigma the (constant) surface tension coefficient and \kappa the interface mean curvature.
#include "iforce.h"
#include "curvature.h"
The surface tension coefficient is associated to each VOF tracer.
attribute {
double sigma;
}
Stability condition
The surface tension scheme is time-explicit so the maximum timestep is the oscillation period of the smallest capillary wave. \displaystyle T = \sqrt{\frac{\rho_{m}\Delta_{min}^3}{\pi\sigma}} with \rho_m=(\rho_1+\rho_2)/2. and \rho_1, \rho_2 the densities on either side of the interface.
We first compute the minimum and maximum values of \alpha/f_m = 1/\rho, as well as \Delta_{min}.
double amin = HUGE, amax = -HUGE, dmin = HUGE;
foreach_face (reduction(min:amin) reduction(max:amax) reduction(min:dmin))
if (fm.x[] > 0.) {
if (alpha.x[]/fm.x[] > amax) amax = alpha.x[]/fm.x[];
if (alpha.x[]/fm.x[] < amin) amin = alpha.x[]/fm.x[];
if (Delta < dmin) dmin = Delta;
}
double rhom = (1./amin + 1./amax)/2.;
The maximum timestep is set using the sum of surface tension coefficients.
double sigma = 0.;
for (scalar c in interfaces)
sigma += c.sigma;
if (sigma) {
double dt = sqrt (rhom*cube(dmin)/(pi*sigma));
if (dt < dtmax)
dtmax = dt;
}
}
Definition of the potential
We overload the acceleration event to define the potential \phi=\sigma\kappa.
event acceleration (i++)
{
We check for all VOF interfaces for which \sigma is non-zero.
for (scalar f in interfaces)
if (f.sigma) {
If \phi is already allocated, we add \sigma\kappa, otherwise we allocate a new field and set it to \sigma\kappa.
scalar phi = f.phi;
if (phi.i)
curvature (f, phi, f.sigma, add = true);
else {
phi = new scalar;
curvature (f, phi, f.sigma, add = false);
f.phi = phi;
}
}
}
Usage
Examples
- Atomisation of a pulsed liquid jet
- Bubble rising in a large tank
- Flow in a rotating bottom-driven cylindrical container
Tests
- Soluble gas diffusing from a rising bubble
- A generic compressible gas bubble in a liquid
- Capillary wave
- Preventing coalescence of VOF tracers
- Shape oscillation of an inviscid droplet
- Rising bubble
- Sessile drop
- 3D Sessile drop
- Circular droplet in equilibrium
- Equilibrium of a droplet suspended in an electric field
- Viscoelastic 2D drop in a Couette Newtonian shear flow