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 efﬁcient multiphase ﬂow 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 ﬂow cases, namely the damBreak case and a steady stream func-

tion wave. We ﬁnd 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 beneﬁt 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 ﬂuid 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 ﬂow equations

Let us start by writing the equations of motion governing the ﬂow of two incom-

pressible, immiscible ﬂuids. 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 ﬂuid density ﬁeld taking the constant value, ρ1, in the reference ﬂuid

and the constant value ρ2in the other ﬂuid, uis the velocity ﬁeld, pis the ﬂuid pres-

sure and gis the constant downward pointing gravity vector. In the interFoam solver

of OpenFOAM, these equations are discretized in the ﬁnite volume framework and

advanced in time in a segregated manner. Within a time step Eq. 1 is used to up-

date the density ﬁeld in time, followed by a procedure for solving Eq. 2 and 3 to

update the pressure and velocity ﬁeld 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 ﬁeld 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 ﬁrst step

in our efforts to solve these problems and increase the general performance and ac-

curacy of interfacial ﬂow simulations. In the following we will brieﬂy explain how

isoAdvector works.

2 isoAdvector for interface advection

The basic equation that we will solve, is Eq. 1 recast in the volume-of-ﬂuid formu-

lation. We will let the computational domain be divided into cells, C1,C2,.... We

can then deﬁne the notation for the cell averaged value of a ﬁeld, f(x,t), at time t,

hfii(t)≡1

ViZCi

f(x,t)dV,(4)

where Viis the volume of cell i. Deﬁning the indicator ﬁeld

H(x,t)≡ρ(x,t)−ρ2

ρ1−ρ2

,(5)

the volume fraction (of ﬂuid 1) in cell iis then deﬁned 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

ﬁne 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 deﬁnitions 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 ﬂuid 1 ﬂowing 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 ﬂuid algorithm is all about coming up with

the best possible approximation of ∆Vn

i j given the incomplete available data, which

in our collocated ﬁnite volume framework consists of the volume fractions αn

i, the

cell averaged velocities, huin

i, and the volumetric face ﬂuxes,

φ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 ﬂuid

1 or ﬂuid 2, and for such cells the advection problem is trivial, since there is only

one ﬂuid ﬂuxed through all faces during a time interval. The surface cells requiring

special treatment are those containing both ﬂuid 1 and ﬂuid 2. We will deﬁne a

surface cell as one with ε<αn

i<1−ε, where we typically set ε=10−8in our

calculations. The ﬁrst step in ﬁnding αn+1

ifor such cells is to reconstruct the ﬂuid

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 ﬁrst 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 efﬁcient algorithm for ﬁnding 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 ﬂuid volume transported

across a face during a time step, [tn,tn+1]is ﬂuid 1, and how much is ﬂuid 2. We will

ﬁrst 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

ﬂux can be deﬁned 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 ﬂuxes, φ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 ﬁeld, we ﬁrst interpolate the velocity ﬁeld 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 coefﬁcients 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 ﬁnally 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 ﬂuid 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 ﬂux pure ﬂuid 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 ﬂux pure ﬂuid 1 or 2 through the face during the last sub time interval [τ5,tn+1].

There is one ﬁnal 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 ﬁeld. 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-ﬂy 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 ﬂuid 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 ﬁxes 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-deﬁned velocity ﬁeld.

3.1 Notched disc in solid rotation ﬂow

Our ﬁrst 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 ﬁeld 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 ﬁeld 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 ﬁeld 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 ﬁgure

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 ﬂow

Our second pure advection case is from [5]. The domain is the unit box and the initial

volume fraction ﬁeld is 1 within the sphere of radius 0.15 centred at (0.5,0.75,0.25)

and 0 elsewhere. The velocity ﬁeld 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 ﬂow the initial spherical

interface is sheared into a thin spiralling sheet until at t=1.5 it has reached its

maximum deformation and ﬂows 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 ﬂow 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 ﬂow 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 deﬁnition of H(x,t)in terms of ρ(x,t)in Eq. 5 and the deﬁnition 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 deﬁnition of ∆Vn

i j in Eq. 8, we can ﬁnally 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 speciﬁc 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 reﬁned 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 ﬁeld at two times. In the top panels, where the water has just stum-

bled over the obstacle on the ﬂoor, 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 ﬂow 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 ﬁnal 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 ﬁelds 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 ﬂow 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 ﬁeld should ideally not change throughout the transient

simulation. Also, we use a ﬁxed 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 ﬁeld. 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 signiﬁcantly 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-

ﬁle crest centred in the middle of the domain. The MULES-Euler wave (orange) has

broken giving rise to a jerky proﬁle. The MULES-Crank-Nicolson wave crest (blue)

has grown signiﬁcantly 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 proﬁles. 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 efﬁciency. 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 signiﬁcantly 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

ﬂow 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 ﬂuid method

in three dimensions–part II: Piecewise-planar interface reconstruction with cubic-b´

ezier ﬁt,”

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 ﬁnite depth,” Journal of Fluid Mechanics,

vol. 755, pp. 1–34, Sept. 2014.