Content uploaded by Johan Roenby
Author content
All content in this area was uploaded by Johan Roenby on Apr 05, 2017
Content may be subject to copyright.
IsoAdvector: Geometric VOF on general meshes
Johan Roenby, Henrik Bredmose and Hrvoje Jasak
Abstract In a recent publication [1], we presented a novel geometric VOF algo-
rithm, denoted isoAdvector. The OpenFOAM implementation of the method was
publicly released[2] to allow more accurate and efficient multiphase flow simula-
tions in OpenFOAM. In the present paper, we give a brief outline of the isoAd-
vector method and test it with two pure advection cases. We show how to modify
interFoam to use isoAdvector instead of the currently implemented MULES limited
interface compression method. The properties of the new solver are tested with two
simple interfacial flow cases, namely the damBreak case and a steady stream func-
tion wave. We find that the new solver is superior at keeping the interface sharp,
but also that the sharper interface exacerbates the well-known spurious velocities in
the air phase close to an air-water interface. To fully benefit from the accuracy of
isoAdvector, there is a need to modify the pressure-velocity coupling algorithm of
interFoam, so it more consistently takes into account the jump in fluid density at the
interface. In our future research we aim at solving this problem by exploiting the
sub cell information provided by isoAdvector.
1 The interfacial flow equations
Let us start by writing the equations of motion governing the flow of two incom-
pressible, immiscible fluids. To keep things simple, we will ignore viscous effects
and surface tension. What remains are the passive advection equation,
Johan Roenby
DHI, Agern Alle 5, 2970 Horsholm, Denmark, e-mail: jro@dhigroup.com
Henrik Bredmose
DTU Wind Energy, Nils Koppels Alle, 2800 Kgs. Lyngby, Denmark e-mail: hbre@dtu.dk
Hrvoje Jasak, University of Zagreb, Faculty of Mechanical Engineering and Naval Architecture,
Ivana Lucica 5, Zagreb, Croatia, e-mail: (hrvoje,jasak@fsb.hr)
1
2 Johan Roenby, Henrik Bredmose and Hrvoje Jasak
∂ ρ
∂t+∇·(ρu) = 0,(1)
the incompressibility equation,
∇·u=0,(2)
and the Euler equations,
∂ ρ u
∂t+∇·(ρuu) = −∇p+ρg.(3)
Here ρis the fluid density field taking the constant value, ρ1, in the reference fluid
and the constant value ρ2in the other fluid, uis the velocity field, pis the fluid pres-
sure and gis the constant downward pointing gravity vector. In the interFoam solver
of OpenFOAM, these equations are discretized in the finite volume framework and
advanced in time in a segregated manner. Within a time step Eq. 1 is used to up-
date the density field in time, followed by a procedure for solving Eq. 2 and 3 to
update the pressure and velocity field in time. The details of the implementation is
well described in the paper [3]. This paper also gives an overview of the challenge
faced by the interfacial CFD community with keeping the density field sharp and
bounded, with spurious velocities at the interface and with handling of large density
ratios. The development of the isoAdvector interface advection method is a first step
in our efforts to solve these problems and increase the general performance and ac-
curacy of interfacial flow simulations. In the following we will briefly explain how
isoAdvector works.
2 isoAdvector for interface advection
The basic equation that we will solve, is Eq. 1 recast in the volume-of-fluid formu-
lation. We will let the computational domain be divided into cells, C1,C2,.... We
can then define the notation for the cell averaged value of a field, f(x,t), at time t,
hfii(t)≡1
ViZCi
f(x,t)dV,(4)
where Viis the volume of cell i. Defining the indicator field
H(x,t)≡ρ(x,t)−ρ2
ρ1−ρ2
,(5)
the volume fraction (of fluid 1) in cell iis then defined as
αi(t)≡hHii.(6)
We will denote the mesh faces, F1,F2,..., and the list of labels of faces on the
boundary of cell iwill be denoted Bi. On the time axis the times, t1<t2< ... de-
IsoAdvector: Geometric VOF on general meshes 3
fine the time intervals (or steps), [tn,tn+1], over which the governing equations are
integrated. We will use superscripts to denote a function evaluated at one of these
times, fn=f(tn). With these definitions in place, we can now integrate Eq. 1 over
a cell volume and over a time interval. Using Gauss’ theorem, the following exact
equation governing the time evolution of the volume fraction in cell iis obtained,
αn+1
i=αn
i−1
Vi∑
j∈Bi
∆Vn
i j,(7)
where the total volume of fluid 1 flowing from cell iduring the time interval [tn,tn+1]
into the neighbour cell with which it shares face jis
∆Vn
i j ≡Ztn+1
tnZFj
H(x,τ)u(x,τ)·dSi jdτ.(8)
In this expression dSi j is the boundary element of face joriented so that it points out
of cell i, so if cell kis the other cell of face jthen dSk j =−dSi j and ∆Vn
k j =−∆Vn
i j.
The art of constructing a volume of fluid algorithm is all about coming up with
the best possible approximation of ∆Vn
i j given the incomplete available data, which
in our collocated finite volume framework consists of the volume fractions αn
i, the
cell averaged velocities, huin
i, and the volumetric face fluxes,
φn
i j ≡ZFj
u(x,tn)·dSi j.(9)
In the following we show how isoAdvector uses this data and a number of geometric
considerations to come up with an approximation for ∆Vn
i j.
Fig. 1 Interpolation of volume fraction to a
vertex from all surrounding cells.
Fig. 2 Construction of the isoface inside a surface
cell.
4 Johan Roenby, Henrik Bredmose and Hrvoje Jasak
2.1 Interface reconstruction
We start by noting that normally most cells will be fully immersed in either fluid
1 or fluid 2, and for such cells the advection problem is trivial, since there is only
one fluid fluxed through all faces during a time interval. The surface cells requiring
special treatment are those containing both fluid 1 and fluid 2. We will define a
surface cell as one with ε<αn
i<1−ε, where we typically set ε=10−8in our
calculations. The first step in finding αn+1
ifor such cells is to reconstruct the fluid
interface inside the cell from the available data, αn
iat time tn. In the isoAdvector
method, this is done by calculating an isosurface inside the cell. For this purpose we
need to first interpolate the volume fractions from the cell centres to the vertices.
This process is illustrated in Fig.1. This interpolation can be done in various ways.
For convenience, we have chosen the inverse distance weighting provided by the
volPointInterpolation class.
With volume fractions interpolated to all vertices of cell i, we can choose an
isovalue, α0, and construct the α0-isosurface inside the cell. This we do by going
through all the cell’s edges and detect whether they are cut by the isosurface. An
edge is cut, if the interpolated volume fraction at one end is larger than α0and
the value at the other end is smaller than α0. If that is the case, we calculate the
edge-isosurface intersection point along the edge by linear interpolation. Connect-
ing these intersection points across the cell faces, we construct the cell-isosurface
intersection as illustrated in Fig. 2. The representation of this intersection will be
called an isoface, because it is really just an internal face cutting the cell into two
subcells. We can calculate the face centre, xS, and face unit normal vector, ˆ
nS, for
this isoface as for any other mesh face (black dot and vector in Fig. 2).
The choice of isovalue, α0, will clearly affect where the isoface will end up within
the cell and also its orientation. A general isovalue will not split the cell into two
subcells having volumes in accordance with the cell’s volume fraction, αn
i. But we
will exploit our freedom of choice of isovalue to make sure that this is actually the
case. We have implemented an efficient algorithm for finding the isovalue for the
isoface cutting a surface cell into subcells in accordance with αn
i. More details on
this can be found in [1]. This concludes our description of the interface reconstruc-
tion at time tn.
2.2 Interface advection
The next step is to exploit our new knowledge about the interface position inside
surface cells at time tnto estimate how much of the total fluid volume transported
across a face during a time step, [tn,tn+1]is fluid 1, and how much is fluid 2. We will
first make the assumption that u(x,τ)in Eq. 8 can be replaced by an appropriately
chosen constant vector ˜
un
j, which is representative for the velocity on the face during
the whole time interval. We also assume that we can write
IsoAdvector: Geometric VOF on general meshes 5
dSi j =ˆ
ni j(x)d A ≈Si j
|Si j|d A,(10)
where ˆ
ni j is the (for a non-planar face spatially varying) unit normal vector and Si j
is the mean normal vector of face jpointing out of cell i. Then the volumetric face
flux can be defined as ˜
φn
i j ≡˜
un
j·Si j and ∆Vn
i j in Eq. 8 can be approximated by
∆Vn
i j ≈
˜
φn
i j
|Sj|Ztn+1
tnZFj
H(x,τ)dAdτ.(11)
In the current implementation, we simply use the volumetric face fluxes, φn
i j, at the
beginning of the time step for ˜
φn
i j.1The remaining area integral in Eq. 11 is just the
time integral of the submerged area of face j,
Aj(τ)≡ZFj
H(x,τ)dA.(12)
If we want to be able to take time steps, where the interface moves a substantial
fraction of a cell size, we should come up with an estimate of how Ajvaries with
time within a time step. The topmost face of the polygonal prism cell in Fig. 2 is
reproduced in Fig. 3 with the initial face-interface intersection line at tnshown in
blue.
Fig. 3 Face-interface intersection line sweeping
the face.
Fig. 4 Submerged face are, Aj(τ), as a
piecewise quadratic polynomial.
To estimate how this line sweeps over the face as the isoface moves in the veloc-
ity field, we first interpolate the velocity field to the initial isoface centre, xs, shown
with a black dot in Fig. 2. We can then take the dot product of the interpolated ve-
locity with the isoface unit normal, ˆ
nS, to obtain the speed of the isoface motion
perpendicular to itself, US. For a vertex, xv, in Fig. 3, we can also estimate the per-
pendicular distance to the isoface by dv= (xv−xS)·ˆ
nS. With the calculated isoface
1A future improvement could be to use φn−1
i j in the backward time integration spirit to get an
estimate, φn+1
i j , for φn+1
i j , and then use ˜
φn
i j =0.5(φn
i j +φn+1
i j )in Eq. 11. Similarly if the method is
used in a solver with outer correctors so we have an estimate of φn+1
i j from the previous iteration.
6 Johan Roenby, Henrik Bredmose and Hrvoje Jasak
normal speed and vertex-to-isoface distance, we can then estimate the time of ar-
rival at vertex xvto be τv=dv/US. In this way we obtain the “vertex arrival times”,
τ1,τ2,... shown in Fig. 3. As illustrated, some of these will generally be outside the
integration interval, [tn,tn+1]and some will be inside. The crucial point is now that
between such two times, say τ2and τ3in Fig. 3, the face-interface intersection line
sweeps a quadrilateral. If we assume the line sweeps this quadrilateral steadily, we
can come up with an analytical expression for how Ajdepends on τon this sub time
interval. This expression is a quadratic polynomial in τand its coefficients depend
only on the shape of the quadrilateral. The resulting time variation of Aj(τ)as the
line sweeps the face is illustrated in Fig. 4
With a piecewise quadratic polynomial for Aj(τ)in Eq. 12, its time integral in
Eq. 11 is a piecewise cubic polynomial, and ∆Vn
i j is finally obtained as the sum of the
contributions from these sub intervals. We note that a face of a surface cell may ini-
tially be fully immersed in fluid 1 or 2, and then become intersected during the time
interval [tn,tn+1]. With the calculated vertex arrival times this situation corresponds
to τ1>tn(the tnline in Fig. 4 would then be further to the left) and is treated by
making sure to flux pure fluid 1 or 2 through the face in the sub time interval [tn,τ1].
Similarly, if the interface leaves the face during [tn,tn+1], we will have τ5<tn+1for
a pentagonal face (the tn+1line would then be further to the right in Fig. 4), and we
must flux pure fluid 1 or 2 through the face during the last sub time interval [τ5,tn+1].
There is one final decision we must make before our advection routine is com-
plete: For a face j, both its owner and neighbour cell may be surface cells with their
isofaces not coinciding exactly on face jdue to the different isovalues used in the
two cells and not moving with exactly the same velocity due to the spatial variations
in the velocity field. Which cell should be used to calculate ∆Vn
i j for this face? In our
current implementation, we have chosen to let ∆Vn
i j be determined by the upwind
cell, i.e. the owner if φn
j>0 and the neighbour if φn
j<0.
2.3 Bounding
The test cases provided with the released isoAdvector code [2] show that the method
outlined above generally gives very good estimates of ∆Vn
i j and leads to accurate in-
terface advection as long as the interface is well resolved by the mesh and time step
size is limited to CFL <1. In some situations there may, however, arise small in-
accuracies, which can build up over time and lead to intolerable levels of unbound-
edness. To prevent the gradual build up of unboundedness, we have introduced a
bounding step which detects unboundedness and tries to adjust the ∆Vn
i j’s of un-
bounded cells with a procedure that is described in detail in [1]. If this pure redistri-
bution step fails, the provided code also gives the option of brute-force non-volume
preserving chopping αn+1
iafter each advection step to guarantee boundedness. Acti-
vating this will ruin the machine precision volume conservation, but our experience
so far indicates that in many situations the resulting volume conservation error is
very small.
IsoAdvector: Geometric VOF on general meshes 7
In the current isoAdvector implementation we assume that there is only a single
isoface inside a cell. There are several occasions where one would expect more
isofaces inside a cell. On such situation is when a planar interface passes a non-
planar mesh face with which it is close to parallel. During the passage the face and
interface will intersect in more than two points and the face-interface intersection
cannot be represented by a single straight line. Proper treatment of such an event can
be implemented by on-the-fly decomposition of the non-planar face into triangular
subfaces sharing the face centre as their common apex. A face-interface intersection
line can then be calculated for each triangle separately2.
Another situation with more than one isoface inside a cell is when two separate
volumes of fluid approach each other and collide inside a cell. Then there will be a
time interval just before the collision where each volume has its own separate piece
of interface within the cell. In this event the solution is to decompose the whole
cell into tetrahedra sharing the cell centre as their common apex and separately
reconstruct the interface in each subcell.
We have experienced that due to these shortcomings of the current implemen-
tation the bounding errors can be substantial e.g. on polyhedral meshes with many
highly non-planar faces of the type obtained by generating the dual mesh of a ran-
dom tetrahedral mesh. The method still works on such meshes if switching on the
brute-force chopping described above but one may then experience substantial loss
of volume conservation. We plan to implement the fixes described above in a future
release of the code.
3 Pure advection tests
In this section we compare the performance of isoAdvector and MULES with two
standard test cases involving only advection in a pre-defined velocity field.
3.1 Notched disc in solid rotation flow
Our first test case is the notched disc which has become a standard test case since
its introduction in [4]. The domain is the unit square, the velocity field is the solid
body rotation around the point (0.5,0.5):
u=−2π(y−0.5),v=2π(x−0.5).(13)
The initial volume fraction field is 1 within the disc of radius 0.15 centred at
(0.5,0.75)except in a slit of width 0.06 going up to y=0.85. The disc rotates around
(0.5,0.5)and return to its original position at time t = 1. The resulting interface
shape after such a rotation with isoAdvector and MULES is shown in Fig. 5 for
2We note that a triangular face can at most have two intersection points with the interface.
8 Johan Roenby, Henrik Bredmose and Hrvoje Jasak
isoAdvector, CFL = 0.5
square cells
MULES, CFL = 0.5 MULES, CFL = 0.1
triangular cellspolygonal cells
1
Fig. 5 Notched disc advection test. Voluem fraction field shown after one full rotation. 0.5-contour
shown with a black curve.
three different mesh types with square, triangular and polygonal cells. All runs have
been performed with CFL = 0.1 and 0.5, but since the isoAdvector runs with CFL
= 0.1 and 0.5 are almost indistinguishable, we only show the latter. From the figure
and Tables 1 and 2, we remark that
•IsoAdvector with CFL = 0.5 performs better than MULES with both CFL = 0.5
and 0.1 on square, triangular and polygonal meshes.
•MULES performs bad on all mesh types with CFL = 0.5.
•On square and polygonal meshes MULES improves dramatically when going
from CFL = 0.5 to 0.1, but not on the triangular mesh.
•isoAdvector is ∼3 times faster than MULES with CFL = 0.5.
IsoAdvector: Geometric VOF on general meshes 9
Table 1 E1error for notched disc runs.
Mesh type isoAdvector CFL = 0.5 MULES CFL = 0.5 MULES CFL = 0.1
square 0.014 0.21 0.062
triangular 0.022 0.17 0.13
polygonal 0.022 0.14 0.064
Table 2 Calculation times in seconds for notched disc runs.
Mesh type isoAdvector CFL = 0.5 MULES CFL = 0.5 MULES CFL = 0.1
square 25 175 437
triangular 232 639 1929
polygonal 85 278 803
3.2 Sphere in shear flow
Our second pure advection case is from [5]. The domain is the unit box and the initial
volume fraction field is 1 within the sphere of radius 0.15 centred at (0.5,0.75,0.25)
and 0 elsewhere. The velocity field in which the interface is advected is
u(x,t) = cos2πt
Thsin(2πy)sin2(πx),−sin(2πx)sin2(πy),(1−2r)2i,(14)
where T=6 and r=p(x−0.5)2+ (y−0.5)2. In this flow the initial spherical
interface is sheared into a thin spiralling sheet until at t=1.5 it has reached its
maximum deformation and flows back to its initial shape and position at time t=3.
We run the case on a polyhedral mesh of the type generated with the polyMesh
tool of cfMesh [6]. In Fig. 6 we show the results obtained with isoAdevector and
MULES using CFL = 0.5 and 0.1.
Table 3 E1error (left) and calculation times (right) for sphere in 3D shear flow a polyhedral mesh.
CFL isoAdvector MULES
0.5 0.1 0.24
0.1 0.11 0.15
CFL isoAdvector MULES
0.5 146 s 439 s
0.1 513 s 1622 s
From Fig. 6 and Tables 3 we see that with this test case isoAdvector is still
more accurate and approximately three times faster than MULES, but also note that
MULES does a decent job even with CFL = 0.5. We also observe that the E1error
with isoAdvector actually increases slightly with smaller time steps.
10 Johan Roenby, Henrik Bredmose and Hrvoje Jasak
isoAdvector
CFL = 0.5
MULES
CFL = 0.1
1
Fig. 6 Sphere deformed in a 3D shear flow with isoAdvector and MULES for CFL = 0.5 and 0.1.
Initial sphere is shown in red. Interface shape at maximum deformation (t=1.5) and at the time
of return to spherical shape (t=3) shown in grey.
4 Using isoAdvector in interFoam
In interFoam, the MULES explicit solver code does not only provide the updated
volume fractions, αn+1
i. It also provides the quantity rhoPhi, which is used in the
convective term, fvm::div(rhoPhi, U), in the momentum matrix equation,
UEqn. To understand how we should construct rhoPhi from ∆Vij , let us start by
looking at the convective term in the Euler equations in Eq. 3 formally integrated
over a small time interval and over a cell:
hρuin+1
i=hρuin
i−1
ViZtn+1
tnZCi
∇·[ρ(x,τ)u(x,τ)u(x,τ)]dV dτ+... (15)
We will denote this integrated convective term by Cn
iand use Gauss theorem to write
it as
Cn
i=1
Vi∑
j∈BiZtn+1
tnZFj
ρ(x,τ)u(x,τ)u(x,τ)·dSdτ.(16)
We now approximate u(x,τ)with the constant representative velocity vector, ˜
un
jand
use u·dS≈˜
φn
i j/|Sj|d A as described in the beginning of Section 2. This allows us to
write
IsoAdvector: Geometric VOF on general meshes 11
Cn
i≈1
Vi∑
j∈Bi
˜
un
j
˜
φn
i j
|Sj|Ztn+1
tnZFj
ρ(x,τ)dAdτ.(17)
Now using the definition of H(x,t)in terms of ρ(x,t)in Eq. 5 and the definition of
the submerged face area, Aj, in terms of Hin Eq. 12, we can write Eq. 17 as
Cn
i≈1
Vi∑
j∈Bi
˜
un
j
˜
φn
i j
|Sj|Ztn+1
tn
[ρ2+ (ρ1−ρ2)Aj(τ)]dτ.(18)
With the definition of ∆Vn
i j in Eq. 8, we can finally write the convective term as
Cn
i≈1
Vi∑
j∈Bi
˜
un
jρ2˜
φn
i j∆tn+ (ρ1−ρ2)∆Vn
i j.(19)
Here the content of the square brackets is exactly the sought expression for rhoPhi.
The specific expression for ˜
ujin terms of the cell averaged velocities huin
iis deter-
mined by the settings in fvSchemes for the time integration and for the convective
term.
5 The damBreak case
For an initial investigation of the behaviour of our new interFoam solver using
isoAdvector instead of MULES, we run a refined version of the standard dam break
tutorial shipped with OpenFOAM-4.0. The domain is a box of width and height
0.584 m with a small obstacle on the bottom and the water initially placed in a
square column in the left side of the domain. The case is run with adaptable time
steps using maxAlphaCo =maxCo = 0.5 . In Fig. 7, we show snapshots of the
volume fraction field at two times. In the top panels, where the water has just stum-
bled over the obstacle on the floor, we clearly see how isoAdvector – in contrast
to MULES – is capable of keeping the interface sharp even for droplets of only a
few cells width. In the bottom panels the water is starting to settle, and we see how
the interface produced with isoAdvector is only one cell wide, whereas the interface
produced with MULES covers many cells. Calculation times are similar for the two
runs.
This is to be thought of as a kind of “Hello World!” case for our new solver and
caution should be taken drawing quantitative conclusion from this setup. In future
work, we will make more quantitative investigations based e.g. on the experimental
data provided in [7].
We remark that a razor sharp interface is not always the best representation of
the physics water distribution on the given mesh. If the encounter with the obstacle
in a real physical damBreak experiment causes the interface to explode into a cloud
of sub cell sized droplets, then the smeared representation obtained with MULES
together with an appropriate dispersed flow model may be a better representation
12 Johan Roenby, Henrik Bredmose and Hrvoje Jasak
Fig. 7 The damBreak case at times t=0.32 (top) and 1.1 (bottom) run with isoAdvector (left) and
MULES (right). Cells with 0.001 <αn
i<0.999 at t=1.1 are coloured yellow in the lower panels.
of the physical reality. To prevent unphysical sharpening of the interface in regions
with clouds of subcell droplets and bubbles, one could introduce a quantitative cri-
terion for detecting such regions and replace the isoAdvector interface treatment for
surface cells in these regions with a more appropriate dispersed model treatment.
6 Steady stream function wave
The purpose of our final test case is to investigae the effect it has on the propagation
of a steady stream function wave to change the interface advection method from
MULES to isoAdvector. The surface elevation, velocity pressure fields are found
IsoAdvector: Geometric VOF on general meshes 13
Fig. 8 Stream function wave with H = 10 m, D = 20 m and T = 14 s at time t = 10 s. From top:
MULES–Euler, MULES–Crank-Nicolson, isoAdvector–Euler, isoAdvector–Crank-Nicolson.
numerically using a Fourier approximation method which is well described in [8].
The derivation is based on potential flow theory with vacuum above the wave. This
corresponds to ρ2=0, which is not practically possible with the interFoam solver
because it involves division with ρ. We therefore use ρ2=0.1 kg/m3and ρ1=1000
kg/m3. As in [9], we use a wave with height H=10 m and period T=14 s on depth
D=20 m. This gives rise to a wave length of L=193.23 m which we choose as the
length of our rectangular domain with cyclic boundary conditions on the sides.
The cells in the interface region are squares of side length 0.5 m corresponding to 20
cells per wave height and 386 cells per wave length. Above and below the interface
region the mesh is coarser with cell size up to 2 m. For div(rho*phi,U) we use
Gauss limitedLinearV 1 as opposed to upwind used in [9]. Another differ-
ence is that in our setup we initialise the wave in a co-moving frame, and so the sur-
face elevation and velocity field should ideally not change throughout the transient
simulation. Also, we use a fixed time step of 0.002 s, which based on the theoretical
crest velocity of 5.95 m/s gives a CFL number of 0.0238. We run the setup with
MULES and isoAdvector using both Euler and crankNicolson 0.5 for time
14 Johan Roenby, Henrik Bredmose and Hrvoje Jasak
integration. The resulting wave shape and velocity magnitudes for the four combi-
nations a short time after the simulations have been started (t=10 s) are shown in
Fig. 8. The interface thickness is shown by plotting the 0.5 and 0.0001 contours of
the volume fraction field. We see that the interface is sharper and smoother in the
isoAdvector simulations than in the MULES simulations. But we also observe that
the velocities in a narrow air band just above the surface is almost twice as high in
the isoAdvector simulations (note the different colour scales in the different pan-
els). These larger air velocities do not seem to affected the interface significantly as
shown in Fig. 9, where we show the surface elevations from the four runs after 105
s corresponding to 7.5 wave periods.
Fig. 9 Stream function wave with H = 10 m, D = 20 m and T = 14 s at time 105 s. The x-axis has
been compressed by a factor 4. Black: exact elevation. Orange: MULES–Euler. Blue: MULES–
Crank-Nicolson. Red: isoAdvector–Euler. Green: isoAdvector–Crank-Nicolson.
All simulations have slightly too high celerity, causing all waves to be shifted
almost a quarter of a wave length to the right compared to the theoretical steady pro-
file crest centred in the middle of the domain. The MULES-Euler wave (orange) has
broken giving rise to a jerky profile. The MULES-Crank-Nicolson wave crest (blue)
has grown significantly and the trough is wrinkled. The isoAdvector waves with Eu-
ler (red) and Crank-Nicolson (green) also have slight overshoots in wave height but
much smaller and with much smoother profiles. This is a very preliminary test and
since many things can change if the case setup is adjusted one should not jump to
conclusions before a more thorough study has been conducted. It is, however, safe
to conclude that using isoAdvector instead of MULES in surface wave propagation
simulations does have a clear effect on the solution. It is also safe to conclude, that
the spurious tangential velocities observed at the interface for large density ratios
is not caused by MULES as such. More likely, the problem is caused by the PISO
loop implementation in interFoam not taking the large density jump properly into
account e.g. when interpolating density dependent quantities between cell centres
and face centres. We expect that an improved density jump treatment in this part of
the code can be achieved by using the information provided by isoAdvector about
the interface position inside surface cells.
IsoAdvector: Geometric VOF on general meshes 15
7 Summary
We have given a brief description of the isoAdvector algorithm for advection of a
sharp interface across general meshes. We added two pure advection cases to the
suite of test cases already presented in [1], demonstrating the superior behaviour
of isoAdvector compared to MULES with respect to accuracy and efficiency. We
derive an expression for the convective term in the momentum equation so that
isoAdvector can be used in interFoam instead of MULES. The resulting solver is
tested using the damBreak case and a steady stream function wave in a periodic do-
main. From these tests we conclude that using isoAdvector in interFoam is feasible
and leads to a sharper interface. Using isoAdvector for the tested wave propagation
case leads to significantly higher spurious tangential velocities in the lighter phase,
but nevertheless the solution quality is improved. In future work we will aim at ex-
ploiting the isoface data to impose consistent physical boundary conditions at the
interface in the PISO loop.
References
1. J. Roenby, H. Bredmose, and H. Jasak, “A computational method for sharp interface advection,”
Royal Society Open Science, vol. 3, p. 160405, Nov. 2016.
2. Johan Roenby, “isoAdvector.” www.github.com/isoadvector.
3. S. S. Deshpande, L. Anumolu, and M. F. Trujillo, “Evaluating the performance of the two-phase
flow solver interFoam,” Computational Science & Discovery, vol. 5, no. 1, p. 014016, 2012.
4. S. ZALESAK, “FULLY MULTIDIMENSIONAL FLUX-CORRECTED TRANSPORT AL-
GORITHMS FOR FLUIDS,” Journal of Computational Physics, vol. 31, no. 3, pp. 335–362,
1979.
5. J. L´
opez, C. Zanzi, P. G´
omez, F. Faura, and J. Hern´
andez, “A new volume of fluid method
in three dimensions–part II: Piecewise-planar interface reconstruction with cubic-b´
ezier fit,”
International Journal for Numerical Methods in Fluids, vol. 58, no. 8, pp. 923–944, 2008.
6. “cfMesh.” http://cfmesh.com/. Accessed: 2016-12-09.
7. L. Lobovsk, E. Botia-Vera, F. Castellana, J. Mas-Soler, and A. Souto-Iglesias, “Experimental
investigation of dynamic pressure loads during dam break,” Journal of Fluids and Structures,
vol. 48, pp. 407–434, July 2014.
8. JOHN D. FENTON, “NUMERICAL METHODS FOR NONLINEAR WAVES,” in Advances
in Coastal and Ocean Engineering, vol. 5 of Advances in Coastal and Ocean Engineering,
pp. 241–324, WORLD SCIENTIFIC, July 1999.
9. B. T. Paulsen, H. Bredmose, H. Bingham, and N. Jacobsen, “Forcing of a bottom-mounted
circular cylinder by steep regular water waves at finite depth,” Journal of Fluid Mechanics,
vol. 755, pp. 1–34, Sept. 2014.