You are on page 1of 140

Embedded Boundary Methods for Flow

in Complex Geometries

by

Sandra Monika May

A dissertation submitted in partial fulfillment


of the requirements for the degree of
Doctor of Philosophy
Department of Mathematics
New York University
September 2013

Professor Marsha J. Berger

UMI Number: 3602695

All rights reserved


INFORMATION TO ALL USERS
The quality of this reproduction is dependent upon the quality of the copy submitted.
In the unlikely event that the author did not send a complete manuscript
and there are missing pages, these will be noted. Also, if material had to be removed,
a note will indicate the deletion.

UMI 3602695
Published by ProQuest LLC (2013). Copyright in the Dissertation held by the Author.
Microform Edition ProQuest LLC.
All rights reserved. This work is protected against
unauthorized copying under Title 17, United States Code

ProQuest LLC.
789 East Eisenhower Parkway
P.O. Box 1346
Ann Arbor, MI 48106 - 1346

c Sandra Monika May



All Rights Reserved, 2013

Dedication

To my parents and my love Ulli.

iii

Acknowledgements
First and foremost, I would like to thank my advisor Professor Marsha Berger. Without her extraordinary insight in a wide range of computational challenges and her continual support and enthusiasm, this work would not have been possible. I am also grateful
for her help during my postdoc applications and my summer internships at Lawrence
Berkeley National Laboratory (LBNL). But above all, I appreciate the fact that her door
was always open for me, no matter when, no matter what.
Another big thank you goes to my collaborators at the Center for Computational
Sciences and Engineering at LBNL, in particular to John Bell, Ann Almgren, and Andy
Nonaka. I had two wonderful and productive summers in Berkeley, both of which became
very valuable parts of my PhD.
I am also grateful to all the professors at Courant that I have met, taken courses
from, and have collaborated with on research. It has been a pleasure to study at a place
with such a distinguished, broad, and vibrant numerical community. I would especially
like to thank Professor Olof Widlund for being an additional mentor throughout my
PhD. I would also like to thank Professor Margaret Wright for her help with the LP
limiter. Another thank you goes to the members of my thesis committee for their help
and feedback: Professors Marsha Berger, Aleksandar Donev, Jonathan Goodman, Leslie
Greengard, and Olof Widlund. Furthermore, I would also like to thank my former advisor
Professor Rolf Rannacher from the University of Heidelberg for his scientific advice over
the years and for providing me with a thorough foundation in numerical analysis.
A special thank you goes to all my wonderful friends at Courant, who have not only
been scientific peers but who have also encouraged me to take breaks and have enriched
my cultural understanding. In particular, Dharshi Devendran, Ken Ho, Tim Mitchell,
Andras Pataki, Jim Portegies, Adam Stinchcombe, Giulio Trigila, and Irena Vankova, as
well as the Machu-Picchu-travelers and my Volleyball teammates, thank you all. And
for her reliable support through times of minor and major crises, I would like to thank

iv

Tamar Arnon.
Finally, I would like to thank my family, particularly my parents, for their neverending support throughout my life and especially in the past five years, when my studies
have taken me far from home. And the very last thank you is for Ulli for being
an essential part of my life, for providing constant encouragement and advice, and for
making me laugh like no one else can.

Abstract
In this dissertation, we develop Cartesian embedded boundary methods for flow around
bodies with complicated geometries. These methods, also referred to as cut cell methods,
cut the body out of a regular Cartesian grid. As a result, most of the grid is regular but
special methods must be developed for the cut cells that intersect the solid boundary.
The dissertation is divided in three parts. The first part describes a mixed explicit
implicit scheme for solving the linear advection equation. It couples an explicit finite
volume scheme to an implicit scheme on only the cut cells. This approach avoids the
small cell problem that standard explicit finite volume methods are not stable on
arbitrarily small cut cells. We examine two different ways of handling the coupling. We
refer to them as cell bounding and flux bounding, depending on the kind of information
that is used as input for the implicit scheme. For using flux bounding on our model
problem, we prove a TVD result. We also examine different candidates for the implicit
scheme. Numerical results in two dimensions for the resulting scheme indicate secondorder accuracy in the L1 norm and between first- and second-order accuracy in the L
norm.
The second part describes the extension of an existing projection algorithm for the
incompressible Euler equations from Cartesian to Cartesian embedded boundary grids.
The mixed explicit implicit scheme is the main ingredient for extending the advection
step to cut cells. We also adjust all operators used in the projection step. We present
initial results in two dimensions for a full projection algorithm.
In the third part of this work we present a new slope limiter designed for cut cells.
Standard slope limiters do not easily apply to cut cells. Most practitioners use a scalar
limiter, where all components of a gradient are limited by the same scalar. We develop
a new limiter based on solving a tiny linear program for each cut cell, which separately
limits the x and y slope in a linearity preserving way. We present computational results
in two dimensions showing significantly improved accuracy.

vi

Contents
Dedication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

iii

Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

iv

Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

vi

List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ix

List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xi

Introduction

Notation

1 A mixed explicit implicit time stepping scheme

1.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Model problem in one dimension . . . . . . . . . . . . . . . . . . . . . . .

1.3

Two-dimensional generalization . . . . . . . . . . . . . . . . . . . . . . . . 32

1.4

Numerical results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

1.5

Conclusions and future work

. . . . . . . . . . . . . . . . . . . . . . . . . 54

2 A projection algorithm extended to embedded boundary grids

58

2.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

2.2

Projection algorithms on Cartesian grids . . . . . . . . . . . . . . . . . . . 60

2.3

Extension to embedded boundary grids

2.4

Numerical results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

vii

. . . . . . . . . . . . . . . . . . . 64

2.5

Conclusions and future work

. . . . . . . . . . . . . . . . . . . . . . . . . 75

3 The LP limiter

77

3.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.2

Description of LP limiter

3.3

Solution of the LPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

3.4

Numerical results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

3.5

Conclusions and future work

. . . . . . . . . . . . . . . . . . . . . . . . . . . 79

. . . . . . . . . . . . . . . . . . . . . . . . . 103

Conclusions

105

Appendix A A non-negativity result

107

Bibliography

117

viii

List of Figures
1

Examples of embedded boundary meshes

. . . . . . . . . . . . . . . . . .

Close-up of the embedded boundary . . . . . . . . . . . . . . . . . . . . .

Various cell types introduced by cut . . . . . . . . . . . . . . . . . . . . .

Location of variables on cut cells . . . . . . . . . . . . . . . . . . . . . . .

1.1

MUSCL scheme in one dimension . . . . . . . . . . . . . . . . . . . . . . . 10

1.2

One dimensional model problem . . . . . . . . . . . . . . . . . . . . . . . 12

1.3

Situation after applying the explicit scheme . . . . . . . . . . . . . . . . . 14

1.4

Two approaches for switching the schemes: cell bounding and flux bounding 15

1.5

Example of oscillations produced by cell bounding . . . . . . . . . . . . . 18

1.6

Mixed scheme in one dimension . . . . . . . . . . . . . . . . . . . . . . . . 27

1.7

Switching between explicit and implicit scheme in two dimensions . . . . . 36

1.8

Reconstruction to edge midpoints on irregular cells . . . . . . . . . . . . . 37

1.9

Sketch of the software setup used in numerical tests . . . . . . . . . . . . 42

1.10 Setup for advection parallel to the x axis . . . . . . . . . . . . . . . . . . . 44


1.11 Setup for advection along a ramp . . . . . . . . . . . . . . . . . . . . . . . 47
1.12 Numerical results for advection in the interior of a circle . . . . . . . . . . 53
1.13 Numerical results for advection in the interior of a circle . . . . . . . . . . 54
1.14 Numerical results in three dimensions . . . . . . . . . . . . . . . . . . . . 57
2.1

Location of the MAC velocities on a Cartesian grid . . . . . . . . . . . . . 62

ix

2.2

Interpolation from cell centroids to edge midpoints . . . . . . . . . . . . . 70

2.3

Interpolation from edge midpoints to cell centroids . . . . . . . . . . . . . 71

2.4

Setup for flow past a half-cylinder . . . . . . . . . . . . . . . . . . . . . . 73

2.5

Numerical results for flow past a half-cylinder . . . . . . . . . . . . . . . . 74

3.1

Slope reconstruction on cut cell . . . . . . . . . . . . . . . . . . . . . . . . 80

3.2

Figure of a cut cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.3

Figures of cut cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.4

Figures of cut cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.5

Grid used in supersonic vortex test . . . . . . . . . . . . . . . . . . . . . . 97

3.6

Numerical results for supersonic vortex test . . . . . . . . . . . . . . . . . 98

3.7

Numerical results for supersonic vortex test . . . . . . . . . . . . . . . . . 99

3.8

Flux computation in the h-box method

3.9

Numerical results for shock diffraction around a cylinder . . . . . . . . . . 102

. . . . . . . . . . . . . . . . . . . 100

3.10 Numerical results for shock diffraction around a cylinder . . . . . . . . . . 103


A.1 Figure of 4- and 5-sided cut cells . . . . . . . . . . . . . . . . . . . . . . . 110
A.2 Figure of 4-sided cut cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
A.3 Figure of 5-sided cut cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

List of Tables
1.1

Numerical results for mixed scheme in one dimension . . . . . . . . . . . . 30

1.2

Numerical results for mixed scheme in one dimension . . . . . . . . . . . . 31

1.3

Numerical results for advection parallel to x axis . . . . . . . . . . . . . . 45

1.4

Numerical results for advection parallel to x axis . . . . . . . . . . . . . . 45

1.5

Numerical results for advection along a ramp . . . . . . . . . . . . . . . . 48

1.6

Numerical results for advection along a ramp . . . . . . . . . . . . . . . . 49

1.7

Numerical results for advection along a ramp . . . . . . . . . . . . . . . . 51

1.8

Numerical results for advection in the interior of a circle . . . . . . . . . . 52

2.1

Numerical results for projection step on embedded boundary grid . . . . . 72

xi

Introduction
Cartesian embedded boundary methods, also referred to as cut cell methods, were
developed in recent years for computing fluid flow around bodies with complicated geometries. They cut the flow body out of a regular Cartesian grid, as illustrated in Figure
1.

(a) Two-dimensional example:


circle

(b) Three-dimensional
burner

example:

Figure 1: Examples of Cartesian embedded boundary meshes.


Cut cell methods are an alternative to methods employing body fitted or unstructured
grids. Body-fitted grids are significantly harder to generate for complicated objects. The
use of unstructured grids necessitates more complicated methods, which are harder to
parallelize. For cut cell methods, most of the grid is regular and standard methods for
Cartesian grids can be used. Special methods must be developed for the cut cells, which
are cells that intersect the boundary [22, 45].

Cut cells can have irregular shape. In two dimensions, the boundary segment of the body is typically
replaced by a line segment. The resulting cut cells are
three, four or five sided cells. The size of neighboring cells might differ by several orders of magnitude as
shown in Figure 2. In particular, cut cells can be arbiFigure 2: Close-up of the em-

trarily small.
The irregular geometry of cut cells causes various

bedded boundary.

numerical problems; e.g., special methods for slope reconstruction and limiting must
be developed. The biggest challenge for cut cell methods is the small cell problem for
hyperbolic problems: explicit finite volume methods using a time step constraint coupled
to the size of regular Cartesian cells are not stable on the arbitrarily small cut cells.
This is not an issue for steady-state problems since local time stepping can be used, and
explains the early popularity of cut cell methods for this problem type [41, 48, 49, 55].
For unsteady flow the small cell problem must be overcome. One common approach is
cell merging. There, cut cells that are too small are merged with neighboring cells. Then,
standard methods that are adjusted to the irregular geometry of cut cells can be used.
Different versions have been developed by, e.g., Chiang et al. [35], Quirk [97], Falcovitz
et al. [51], Causon et al. [33], Hunt [72], Ji et al. [77], and Hartmann et al. [64, 65]. While
the idea of cell merging is very simple, the practical implementation, in particular in
three dimensions, is very complicated.
Another approach to the small cell problem is to develop algorithms that can handle arbitrarily small cells. The flux redistribution method, originally developed for shock
tracking by Chern & Colella [34], was extended to embedded boundary problems by Pember et al. [95] and Colella et al. [46, 47]. The method has successfully been used in twoand three-dimensional simulations, but it is only first order accurate at the embedded
boundary. The h-box method developed by Berger, Helzel, and LeVeque [2325, 27, 66]

guarantees stability on small cut cells by constructing numerical fluxes that possess a
suitable cancellation property. This two-dimensional method is second-order accurate
along the boundary, but there does not exist a three-dimensional implementation due to
its complexity.
In this dissertation, we do not use cell merging but develop specialized methods for
potentially very small cut cells. One major goal of our work has been to develop a
solution to the small cell problem that is second order at the embedded boundary but
sufficiently simple to be used in three dimensions.
In the following, we assume that the reader is familiar with finite volume methods
on Cartesian grids [82, 106]. To make second-order accuracy possible, we treat the cell
values of conserved quantities (density, etc.) as point values at the center of mass of a
cell. For cut cells, the center of mass must be calculated as part of the grid generation
process. We focus on cut cell methods in two dimensions throughout this work, but for
all our methods the possibility of straightforward extension to three dimensions has been
one of our main design criteria.
The dissertation is split in three parts. In each chapter, a more detailed discussion
of the relevant literature will be given.
In Chapter 1, we focus on solving the small cell problem for the linear advection
equation. We couple an explicit scheme that is used on most Cartesian cells to an
implicit scheme on cut cells only. We examine various ways of handling the coupling
and various implicit candidates for the one-dimensional problem. The most promising
version is then extended to two dimensions. Numerical results imply that our resulting
scheme is second order in the L1 norm and between first and second order in the L
norm.
The mixed explicit implicit scheme is then used in Chapter 2 to solve the incompressible Euler equations. We extend an existing projection method by Bell et al. [7, 9, 19, 20]
from Cartesian meshes to embedded boundary meshes. This method uses an explicit

scheme to predict velocities at the next time step neglecting the incompressibility condition. The mixed explicit implicit scheme is the main ingredient for extending this
part of the projection algorithm to cut cells. We also adjust the projection operator to
embedded boundaries by defining suitable interpolation, divergence, and gradient operators. We present preliminary numerical results employing the full projection algorithm
on embedded boundary grids in two dimensions.
Chapter 3 is devoted to a different aspect of cut cell methods: the limiting of reconstructed slopes on cut cells. Standard slope limiters cannot easily be used on cut cells
as their centroids do not align with neighboring cell centroids. Most practitioners use a
scalar limiter that limits the x and y slope with the same scalar . We use two different
scalars x and y for the two gradient components. We formulate the limiting as a
tiny linear program (LP) and suggest a very efficient method to solve these problems.
Numerical results show a significantly improved accuracy for the LP limiter compared
to the scalar limiter. This work has been published by May & Berger [87].
We conclude this dissertation with thoughts about future directions.

Notation
We begin by introducing some notation that we will use throughout the dissertation.
By cutting the object out of the Cartesian background grid, we introduce three main cell types: flow
cells, cut cells, and solid cells. The latter refers to cells
that are fully covered by the body. The three types are

C
F
F

illustrated in Figure 3.

S
C
C
F

C
F

In Chapter 1, we will also introduce irrflow cells;


these are flow cells that are edge neighbors of cut cells,
compare Figure 1.7. This term is not part of the standard terminology. We will introduce this cell type to
refer to the cells on which we switch between the ex-

Figure 3:

Three main cell

types introduced by the cut:


F denotes a flow cell, C a
cut cell, and S a solid cell.

plicit and implicit time stepping scheme.


We note that we will not consider split cells in this dissertation. These are Cartesian cells that have been split into disjoint volumes by the geometry. Split cells add
much complexity to the implementation but do not change the fundamental numerical
algorithms.
As usual for finite volume methods, qij is the numerical approximation to the average value of the variable q on cell (i, j). For second-order accurate methods, this is a
sufficiently good approximation to the solution value at the centroid (center of mass) of
the cell. We will therefore think of qij as the numerical approximation to the value at

the cell centroid. We often say, informally, that qij is located at the cell centroid.
We denote edge centered quantities by
qi+1/2,j and qi,j+1/2 , respectively. Typically,

qi,j+1/2

(xij , yij ) refers to the centroid coordinates of a

qi+1/2,j

cell, and (xi+1/2,j , yi+1/2,j ) to the coordinates

qij

of the edge centroid of edge (i + 1/2, j). For a qi1/2,j


cut cell, the locations of the cell centroid and
of the edge centroids are shifted compared to a

qi,j1/2

Cartesian cell as shown in Figure 4. We assume


that the corresponding (cell centered or edge
centered) variable is an approximation of the
value at this shifted location. This is in contrast to the approach taken by Colellas group

Figure 4: Notation used to denote the


cell centered and edge centered variables.

at Lawrence Berkeley National Laboratory (LBNL); they interpret the value qij for a
cut cell (i, j) as the value at the Cartesian center of the corresponding uncut cell.
By i+1/2,j , i,j+1/2 [0, 1] we refer to the area fractions of a cut cell of edges (i +
1/2, j) and (i, j + 1/2), respectively, compared to a Cartesian cell. The case i+1/2,j = 0
corresponds to a non-existing edge. The volume fraction, defined as the volume of a cut
cell divided by the volume of a Cartesian cell, is denoted by ij (0, 1]. (For our model
problem in one dimension in Chapter 1, we will use to denote the volume fraction of
the only small cell.)
Finally, we try to reserve the letter U for velocity; not always successfully though.
In two dimensions, capital U or bold u refer to the two velocity components (u, v),
whereas little u and little v refer to the velocity in the x and y direction only.

Chapter 1

A mixed explicit implicit time


stepping scheme
1.1

Introduction

In this chapter, we focus on solving the linear advection equation

st + (us) = 0

in one and two space dimensions on a Cartesian embedded boundary grid. Here, s(x, t)
represents an advected scalar field and u(x) denotes a given smooth, divergence-free
velocity field with no flow boundary conditions on the embedded boundary.
The main issue in solving the linear advection equation on a cut cell grid is the so
called small cell problem: for most (explicit) finite volume schemes, the time step t is
coupled to the size of a cell by means of the CFL condition. Cut cells can be arbitrarily
small. We want to use a scheme for which t is chosen according to the size of regular
Cartesian cells, but which is also stable on cut cells.
Two well known methods that have this stability property are the flux redistribution
method [46, 47, 95] and the h-box method [27, 66]. The flux redistribution method

redistributes fluxes from small cut cells to neighboring cells in a volume-weighted way.
It has successfully been used in two- and three-dimensional simulations. However, the
redistribution leads to a loss of accuracy around the boundary of the object. The resulting
scheme is second order globally in L1 but only first order in L . In many interesting
applications, such as fluid-structure interaction problems or aerodynamic applications,
the solution along the boundary is very important. Therefore, a higher order method
along the boundary is desirable.
The h-box method extends the domain of dependence of a cut cell to guarantee
stability. To do so, h-boxes in various directions are constructed and rotated stencils are
used. This works very well in two dimensions. The method is second-order accurate in
both L1 and L . However, so far an extension to three dimensions is not known due to
the complexity of the scheme.
Our goal is a solution to the small cell problem that is simple enough to be implemented in both two and three dimensions and that results in second-order accuracy
at the boundary. Our approach is the following: we will use an implicit time stepping
scheme on cut cells to guarantee stability. Away from the cut cells we will use an explicit
scheme to avoid excessive cost. This necessitates switching between two different time
stepping schemes. The goal of this chapter is to find a good way to switch. Examining
efficient ways to solve the resulting implicit systems will be future work.
This approach is different from using IMEX (implicit - explicit) Runge-Kutta schemes
as, e.g., described by Ascher et al. [12]. In such a scheme, an equation of the form
ut + f (u) + g(u) = 0 is solved and an explicit scheme is used for the operator f and
an implicit scheme is used for the operator g. One common instance is the solution of
advection-diffusion equations, for which one often treats the diffusion term implicitly
and the advection term explicitly. In the scheme described in this chapter we solve an
equation of the form ut + f (u) = 0 and treat f explicitly in one part of the grid and
implicitly in another part of the grid.

This chapter is structured as follows: In Section 1.2, we focus on theory in one


dimension. We first present our explicit scheme, the MUSCL scheme. Then, we discuss
several ways of switching between the explicit and implicit scheme and provide theoretical
results about their monotonicity and mass conservation properties. Next, we examine
several implicit schemes that might be suitable for our mixed time stepping scheme for
their accuracy and stability properties.
In Section 1.3, we focus on the two-dimensional extension of the algorithm developed
in one dimension. We present the explicit scheme used in two dimensions, describe how
we switch between the explicit and implicit scheme, and give details for the implicit
scheme. In Section 1.4, we present numerical results for one of the two potential candidates identified in Section 1.2, the trapezoidal rule. We conclude this chapter with
thoughts about future work in two dimensions and a discussion of the extension to three
dimensions.

1.2

Model problem in one dimension

In this section we focus on the one-dimensional linear advection equation

st + usx = 0,

u > 0 constant,

(1.1)

ut
.
x

(1.2)

with CFL number


=

This section provides the theoretical part of the scheme development. Some numerical
results in one dimension are shown to support the presented theory.

1.2.1

Choice of explicit scheme: MUSCL scheme

As explicit scheme in our mixed explicit implicit method, we use the MUSCL scheme
(Monotonic Upwind Scheme for Conservation Laws). The MUSCL scheme was originally

introduced by van Leer [109] and extended by Colella [43]. It has been used in many
scientific codes.
Our main reason for using the MUSCL scheme, besides it being a good scheme, is the
following: The mixed scheme developed for linear advection equation in this chapter will
be used as part of a projection method in Chapter 2. There, we will extend an existing
projection method for Cartesian grids to Cartesian embedded boundary grids. The use
of the MUSCL scheme allows us to easily use the incompressible flow algorithms and
software developed by Bells group at LBNL, see Chapter 2.
We describe the version of MUSCL we use. The approximate solution values are
sni s(xi , tn ). A time step takes the form


n+1/2

n+1/2

= sni si+1/2 si1/2 .


sn+1
i
n+1/2

It uses time and space centered edge states si+1/2 . To construct the edge states, we
first reconstruct estimated slopes snx,i x s(xi , tn ). This is described below. Then we
n+1/2,L

n+1/2,R

estimate left and right states si+1/2

and si+1/2

of edge i + 1/2 at time tn+1/2 , see

Figure 1.1, based on Taylor expansion:


n+1/2,L

si+1/2

n+1/2,R

si+1/2

t n
x n
s +
s ,
2 x,i
2 t,i
x n
t n
= sni+1
sx,i+1 +
s
.
2
2 t,i+1

= sni +

sn+1
i1

n+1

sn+1
i

n+1/2,L

n+1/2,L

si1/2
n+1/2,R

si3/2

sn+1
i+1
n+1/2,L

si+1/2
n+1/2,R

si1/2

si+3/2
n+1/2,R

si+1/2

tn
sni1

sni

sni+1

Figure 1.1: MUSCL scheme in one dimension.

10

Here, snt,i t s(xi , tn ). We replace the unknown time derivative st by the space derivative
sx using the differential equation: st = usx . This results in
n+1/2,L

si+1/2

n+1/2,R

si+1/2

t
x
x n
s u snx,i = sni + (1 )snx,i
,
2 x,i
2
2
x n
t
x
= sni+1
sx,i+1 u snx,i+1 = sni+1 (1 + )snx,i+1
.
2
2
2

= sni +

(1.3a)
(1.3b)

n+1/2

The state si+1/2 is then given by upwinding. Therefore, for our model problem, the
MUSCL scheme has the form


n+1/2,L

sn+1
= sni si+1/2
i

n+1/2,L

si1/2

(1.4)

Based on its construction, the MUSCL scheme is second-order accurate for unlimited
slopes.
We calculate unlimited slopes using a central difference quotient. For limiting we
can choose any of the classical one-dimensional limiters [82, 104] as the MUSCL scheme
is used on the equidistant part of the grid. Typically, we use the monotonized central
difference (MC) limiter [109]. We note that in the case of piecewise constant data, i.e.,
n+1/2,L

without slope reconstruction, si+1/2

= sni . In this case, the MUSCL scheme coincides

with the classical upwind method/with using explicit Euler time stepping.

1.2.2

Introduction of model problem in one dimension

To study the small cell problem, we consider the model problem shown in Figure 1.2:
We assume an equidistant grid of width x except for cell 0, which has length x,
(0, 1]. The factor denotes the volume fraction (compared to a regular cell).
Using a conservative update formula, the update on the small cell takes the form

sn+1
= sn0
0

i
t h
F1/2 F1/2 .
x

11

tn+1

-2

-1

tn

Figure 1.2: 1d model problem: Equidistant grid with one small cell of length x labeled
as cell 0.
Many standard finite volume schemes, such as the upwind scheme and MUSCL with
unlimited slope reconstruction, require

0<

ut
<1
x

for stability. Therefore, we would need to choose t based on the size of the small cell.
Instead, we like to choose t based on x, i.e., such that

ut
< 1.
x

In that case, the value on the small cell may blow up for small, provided fluxes are
computed by a standard explicit finite volume scheme. The idea of the h-box method is
to construct special fluxes such that F1/2 F1/2 = O() to avoid this.
Our approach to overcome the small cell problem is to treat the small cell implicitly.
On normal-sized Cartesian cells, we use a standard explicit scheme. As a result, there is
a transition zone on both sides of the small cell.

1.2.3

Slope reconstruction on non-uniform grid

For unlimited slope reconstruction, we use second order central slopes given by snx,i =
(sni+1 sni1 )/(2x) wherever possible. But this is inappropriate at cells 1, 0, and 1.

12

Instead we use a least squares slope reconstruction. We define

si+1 si

xi+1 xi

r=

sx,i
si1 si
xi1 xi
and find sx,i as the least squares solution to minsx,i krk2 . Some algebra gives

sx,i =

(xi+1 xi )2
(xi xi1 )2
D
s
+
D si ,
+
i
(xi+1 xi )2 + (xi xi1 )2
(xi+1 xi )2 + (xi xi1 )2

with D+ si = (si+1 si )/(xi+1 xi ) and D si = (si si1 )/(xi xi1 ). The least squares
gradient is linearity preserving, i.e., exact for a linear function. On a uniform grid, it
simplifies to the central difference quotient.
For limited slope reconstruction, we use the minmod limiter. This limiter extends
in a straightforward way to a non-uniform grid. It reconstructs to both neighboring
cell centroids and makes sure to not over/undershoot the neighboring cells value. For
non-uniform grid, the minmod limiter is given by

sminmod
= minmod (D si , D+ si ) ,
x,i

with (D si , D+ si ) defined above and the minmod function being defined as

minmod(a, b) =

1.2.4

if |a| < |b| and ab > 0,


if |b| < |a| and ab > 0,

(1.5)

if ab 6 0.

Switching between explicit and implicit scheme

For a mixed explicit implicit scheme, we need to switch from the explicit scheme to
the implicit one and back. Some important criteria for this switch are
1. to ensure conservation of mass,
13

tn+1

updated by
explicit
scheme

tn
-3

-2

-1

Figure 1.3: Explicit cells have been updated (empty circles), the neighborhood of the
small cell has not yet been done.
2. to guarantee monotonicity properties,
3. to minimize the loss of accuracy when switching between the explicit and implicit
scheme,
4. to keep the number of cells treated implicitly as small as possible in order to keep
the cost small.
We will consider the third point in more detail in Section 1.2.5, where we will discuss
suitable implicit schemes to use. For now, we focus on the other three criteria.
For the discussion in this subsection we will focus on using implicit Euler as the
implicit scheme. This scheme is unconditionally SSP (strong stability preserving) [59,
Lemma 6.1]. There does not exist a second-order scheme with this property [80, 102].
Therefore, if a specific way of switching violates monotonicity properties for implicit
Euler, it probably will also cause problems when combined with a higher-order implicit
scheme. For the explicit scheme, we will use the MUSCL scheme or explicit Euler time
stepping.

1.2.4.1

Two different approaches

We first update the explicit cells and then update the implicitly treated cells. We
consider two different approaches, which we call cell bounding and flux bounding. We
will show that a mixed scheme using flux bounding has better stability and monotonicity
properties than a mixed scheme using cell bounding.

14

tn+1

impl. scheme
influence of
expl. on impl.
scheme

tn

-3
-2
-1
1
2
3
0
n+1
n+1
(a) Cell bounding: values s2 and s2 are input for implicit scheme.
tn+1

impl. scheme
influence of
expl. on impl.
scheme

tn

-3
-2
-1
1
2
3
0
(b) Flux bounding: fluxes F3/2 and F3/2 are input for implicit scheme.

Figure 1.4: Two approaches for switching the schemes: cell bounding and flux bounding.
Before examining the two options in detail, we give the main ideas. Consider Figure
1.3. Here, all cells except for cells 1, 0, and 1 have been updated to time tn+1 using an
explicit scheme. One possibility is to use the value sn+1
2 as input for the implicit scheme
that is applied on cells 1, 0, and 1. This is shown in Figure 1.4(a). We refer to this
way as cell bounding.
Another possibility is to employ the fluxes of the explicit scheme: in order to update
cell 2, we assumed a certain flux F3/2 (given by the explicit scheme). We can consider
this flux as given. The same holds true for F3/2 . This is shown in Figure 1.4(b). In this
case, we only compute fluxes F1/2 and F1/2 using the implicit scheme. We refer to this
way of switching the scheme as flux bounding.
The next sections describe the options in more detail.

15

1.2.4.2

Cell bounding

Here, we use the first-order upwind scheme as the explicit scheme. We first update
all cells except for cells 1, 0, and 1 using the upwind scheme. In particular this implies

n
n
n
sn+1
2 = s2 s2 s3 ,

sn+1
= sn2 (sn2 sn1 ) .
2
We want to use implicit Euler on cells 1, 0, and 1 given by


n+1
n+1
n
sn+1
,
1 = s1 s1 s2

sn+1
= sn0
0


 n+1
s0 sn+1
,
1

s1n+1 = sn1 sn+1


sn+1
.
1
0
(Note that the volume of the small cell is given by x.) We know sn+1
2 from applying
n+1
the explicit scheme. Therefore, using sn+1
2 , we can solve for s1 , from which we get

sn+1
, which then is used to compute sn+1
.
0
1
This scheme however is not conservative. When updating cell 2 using the explicit
scheme, we assumed that the flux usn2 is leaving cell 2. But when we updated cell 1
using the implicit scheme, we assumed that the flux usn+1
2 is entering cell 1. There is
a similar problem for the flux between cells 1 and 2.
To ensure mass conservation, we need to add a conservation fix in a post processing
step. We focus on the problem between cells 2 and 1. Two possible options to fix
this issue are:
1. Fix explicit cell 2: Compute preliminary state sn+1
2 using the explicit scheme,

16

n+1
compute sn+1
n+1
1 using the implicit scheme, adjust s
2 resulting in s2 , i.e,

n
n
n
sn+1
2 = s2 s2 s3 ,

(1.6a)


n+1
n
sn+1
n+1
,
1 = s1 s1 s
2

(1.6b)

n
sn+1
n+1
sn+1
2 = s
2 + s2
2 .

(1.6c)

2. Fix implicit cell 1: Compute sn+1


2 using the explicit scheme, compute preliminary
n+1
state sn+1
n+1
1 using the implicit scheme, adjust s
1 resulting in s1 , i.e.,

n
n
n
sn+1
2 = s2 s2 s3 ,

(1.7a)


n+1
n
sn+1
n+1
,
1 = s1 s
1 s2

(1.7b)

n+1
n
sn+1
n+1
1 = s
1 + s2 s2 .

(1.7c)

We note that this is not equivalent to using flux bounding.


We will show that cell bounding with either of these two options might destroy
monotonicity. We will start with option 2.
Lemma 1.1. The scheme (1.7) can create overshoot and is not monotonicity preserving.
Proof. Suppose sni = 0 for i 6 3 and sni = 1 for i > 2. A short computation shows
sn+1
1 = 1 +

3
> 1,
1+

for > 0. This is outside of the range of values of sni and therefore an overshoot. Also,
monotonicity will not be preserved as sn+1
= 1 for i > 3.
i
We now consider the scheme (1.6), which fixes the explicit cells. This scheme can
cause oscillations. (For a definition of TVD see Definition 1.2.)
Lemma 1.2. The scheme (1.6) is not monotonicity preserving or TVD for

17

51
2 ,1

-3

-2

-1

0
1
(a) given data at tn

-3

-2

-1
0
1
n+1
(b) computed solution at t

Figure 1.5: Data at tn and computed solution for explicit Euler and implicit Euler time
stepping and fixing explicit cells -2 and 2 for = 0.9 and = 1. (Even though we use
= 1 for simplicity we still apply the mixed explicit implicit scheme (1.6).)
Proof. Consider again sni = 0 for i 6 3 and sni = 1 for i > 2. We show that the
solution at time tn+1 is not monotone for

51
2 ,1

. The behavior is illustrated in

Figure 1.5. Simple calculations show

2
sn+1
2 = 1 +

and

sn+1
1 =

1 + 2
.
1+

Therefore,
n+1
sn+1
2 6 s1

This is true for >

1.2.4.3

5+1
2

and 6

51
2

2 + 1 6 0.

0.62.

Flux bounding

The idea of flux bounding is shown in Figure 1.4(b). We first update all cells except
for cells 1, 0, and 1 using explicit Euler time stepping. For cells 2 and 2 this implies

n
n
n
sn+1
2 = s2 s2 s3 ,

sn+1
= sn2 (sn2 sn1 ) .
2

18

Therefore, the fluxes F3/2 = usn2 and F3/2 = usn1 are already determined from the
explicit scheme. We want to use the implicit Euler scheme on the small cell 0. This
implies the following formulae for cells 1, 0, and 1:


n+1
n
n
sn+1
1 = s1 s1 s2 ,


 n+1
n+1
n
s

s
,
sn+1
=
s

0
1
0
0



sn+1
= sn1 sn1 sn+1
.
1
0

(1.8a)
(1.8b)
(1.8c)

Note that both cells 1 and 1 are transition cells with one flux computed explicitly and
the other one implicitly. We refer to these cells as irrflow cells: they are full Cartesian
(flow) cells that are treated in an irregular manner.
Remark. This mixed scheme is conservative by construction.
We now examine the monotonicity properties of flux bounding.
= H(sn ; j)
Definition 1.1 (Monotone Scheme). A differentiable scheme of the form sn+1
j
is said to be monotone if
H n
(s ; j) > 0,
sni

i, j, sn .

Lemma 1.3. Consider explicit Euler time stepping coupled to implicit Euler time stepping through flux bounding as described in (1.8). The resulting scheme is monotone for
the linear advection equation (1.1) under the condition 0 6 6 1.
Proof. The explicit part of the scheme is given by

sn+1
= sni sni sni1 = (1 ) sni + sni1 ,
i


i.e., it is a convex combination (for 0 6 6 1) and therefore monotone. The formulae

19

for the implicitly treated cells can be rewritten as


n
1 n
s1 +
s ,
1+
1 + 2

1
1
n

=
s
+
sn+1 =
0
1
1+
1+
1+

sn+1
1 =
sn+1
0

sn +
0

1+

1 n
n
s +
s
,
1 + 1 1 + 2


sn+1
= (1 ) sn1 + s0n+1 .
1
n+1
Therefore, all of sn+1
, and sn+1
can be written as convex combinations of data at
1 , s0
1

tn . This concludes the proof.


This result is good start. For combining the MUSCL scheme with implicit Euler,
however, we cannot expect to get a monotone scheme as monotone schemes are known
to be at most first-order accurate [84, Ch. 15]. One desirable property for the mixed,
hopefully second-order scheme is to be TVD (total variation diminishing). TVD schemes
are a subclass of monotone schemes and TVD schemes are monotonicity preserving: for
} is monotone in the same sense.
, the solution {sn+1
monotone data {sni }, e.g., sni 6 sn+1
i
i
This implies that around an isolated discontinuity, which has monotone data, spurious
oscillations cannot occur. (For more detailed information see Toro [106, Ch. 13] and
LeVeque [84, Ch. 15].)
Definition 1.2 (TVD scheme). The scheme sn+1
= H(sn ; j) is said to be TVD if
j
T V (sn+1 ) 6 T V (sn )
for all grid functions sn , where

T V (s) =

|si si1 |.

i=

The standard way to show that a scheme is TVD is to employ the theorem by Harten
n
n
[63]. This theorem gives criteria for Ci1/2
and Di+1/2
, which are sufficient for a scheme

20

of the form
n
n
sn+1
= sni Ci1/2
sni sni1 + Di+1/2
sni+1 sni
i

(1.9)

n
n
to be TVD. The coefficients Ci1/2
and Di+1/2
are often functions of the solution sni .

Using Hartens theorem, see [63, 82, 106], it is straightforward to show the following
lemma.
Lemma 1.4. The MUSCL scheme with minmod limiter is TVD for the linear advection
equation (1.1) on a uniform grid under the time step constraint 0 6 6 1.
Proof. The scheme is given by


sn+1
= sni sni + (1 )snx,i
i

x
x
sni1 (1 )snx,i1
.
2
2


n
Comparing with the form (1.9) in Hartens theorem, we set Di+1/2
= 0 and define

n
Ci1/2
=

x
n
n
sni + (1 )snx,i x
2 si1 (1 )sx,i1 2
,
sni sni1

snx,i
snx,i1
x
x
= 1+
(1 ) n

(1

)
2
si sni1
2
sni sni1

For slopes limited by the minmod limiter, there holds

06

1
x snx,i
6 ,
n
n
2 si si1
2

06

x snx,i1
1
6 .
n
n
2 si si1
2

Therefore,
1
1
n
1 (1 ) 6 Ci1/2
6 1 + (1 ) .
2
2


n
For 0 6 6 1, this implies 0 6 Ci1/2
6 1. This concludes the proof.

We now consider the mixed scheme using MUSCL as explicit scheme and implicit
Euler without slope reconstruction as implicit scheme, applied to our model problem,

21

i.e.,
..
.
x
x
,
sn4 (1 )snx,4
2
2


x
= sn2 sn2 sn3 (1 )snx,3
,
2


n
n
n
sn+1
3 = s3 s3 + (1 )sx,3

sn+1
2

(MUSCL)

n+1
n
n
sn+1
1 = s1 s1 s2 ,

sn+1
= sn0
0

i
h n+1
s0 sn+1
,
1

,
sn+1
= sn1 sn1 sn+1
1
0
sn+1
2
sn+1
3

sn2

sn2

+ (1

x
)snx,2

sn1

,
2

n
n x
n
n
n x
s2 (1 )sx,2
,
= s3 s3 + (1 )sx,3
2
2
..
.
=

(MUSCL)
(1.10)

(Note that we dropped slopes for fluxes F3/2 and F3/2 .) We cannot directly use Hartens
theorem to show that this scheme is TVD, but we can reuse the idea of its proof.
Theorem 1.1. The scheme (1.10) is TVD for 0 6 6 1.
Sketch of proof of Theorem 1.1. The proof is split in three parts.
Part 1: Explicit part of scheme
The MUSCL scheme can be written as

n
sn+1
= sni Ci1/2
sni sni1
i

n
n
with suitably defined Ci1/2
, which fulfill 0 6 Ci1/2
6 1. This relation holds on all cells

i 6 3 and all cells i > 3 as well as on cells 2 and 2 (where we drop the slopes on one

22

side). Therefore, for i 6 3 and i > 2, there holds


n+1
n
n
|sn+1
| 6 (1 Ci+1/2
)|sni+1 sni | + Ci1/2
|sni sni1 |,
i+1 si
n
n
= |sni+1 sni | Ci+1/2
|sni+1 sni | + Ci1/2
|sni sni1 |.

Neglecting the behavior at , this implies

n+1
|sn+1
|6
i+1 si

i63

n
|sni+1 sni | C5/2
|sn2 sn3 |

i63

and
n+1
|sn+1
|6
i+1 si

i>2

i>2

n
|sni+1 sni | + C3/2
|sn2 sn1 |.

Part 2: Implicit part of the scheme


For the implicit part we use the convexity of the implicit Euler scheme to estimate
differences at time tn+1 in terms of differences at time tn .
n+1
We start with estimating |sn+1
1 s2 |. Using the appropriate formulae there holds


1 n
n
n
sn2 sn3 ,
s1 +
s2 sn2 + C5/2
1+
1+


1
n
=
sn1 sn2 + C5/2
sn2 sn3 .
1+

n+1
sn+1
1 s2 =

This implies
n+1
|sn+1
1 s2 | 6

1
n
|sn sn2 | + C5/2
|sn2 sn3 |.
1 + 1

23

n+1
We continue with sn+1
sn+1
sn+1
, . . . , to get the following estimates
0
1 , s1
0

1
n
|sn sn2 | + C5/2
|sn2 sn3 |,
1 + 1
1
1

|sn sn1 | +
|sn+1
sn+1
|sn sn2 |,
0
1 | 6
0
1 + 1
1+
1+
n+1
|sn+1
1 s2 | 6

|sn+1
sn+1
| 6 (1 )|sn1 sn0 | + (1 )
1
0
+ (1 )

1+

1+

|sn0 sn1 |

|sn sn2 |,
1 + 1

n
|sn+1
sn+1
| 6 (1 C3/2
)|sn2 sn1 | + |sn1 sn0 |
2
1

1+

|sn sn1 | +
0

1+

|sn sn2 |.
1 + 1

Part 3: Mixing explicit and implicit part


Our goal is to show
X

n+1
|sn+1
|6
i+1 si

|sni+1 sni |.

Splitting up the sum

n+1
|sn+1
|=
i+1 si

n+1
n+1
n+1
|sn+1
| + |sn+1
sn+1
1 s2 | + |s0
1 |
i+1 si

i63

+ |sn+1
sn+1
| + |sn+1
sn+1
|+
1
0
2
1

n+1
|sn+1
|
i+1 si

X
i>2

and using the result from Part 1 we get

X
i

n+1
|sn+1
|6
i+1 si

n
|sni+1 sni | C5/2
|sn2 sn3 | +

i63

n
|sni+1 sni | + C3/2
|sn2 sn1 |

i>2

n+1
n+1
n+1
sn+1
|. (1.11)
sn+1
sn+1
| + |sn+1
+ |sn+1
1 | + |s1
0
2
1
1 s2 | + |s0

Using the estimates from Part 2 and sorting the sum

n+1
n+1
n+1
|sn+1
sn+1
sn+1
| + |sn+1
sn+1
|
1 s2 | + |s0
1 | + |s1
0
2
1

24

into its single terms results in

|sn2 sn3 | :

n
C5/2
,

|sn1 sn2 | :

1
1
+
1+ 1+

|sn0

1
1+

sn1 |

+ (1 )
1+
1+

+ (1 )

|sn1 sn0 | :

(1 ) + = 1,

|sn2 sn1 | :

n
1 C3/2
.

1+

1+

+
1+
1+

= 1,
1+

= 1,

Therefore,

n+1
n+1
n+1
|sn+1
sn+1
sn+1
| + |sn+1
sn+1
|
1 s2 | + |s0
1 | + |s1
0
2
1
n
n
6 C5/2
|sn2 sn3 | + |sn1 sn2 | + |sn0 sn1 | + |sn1 sn0 | + (1 C3/2
)|sn2 sn1 |.

Plugging this result into equation (1.11) gives

n+1
|6
|sn+1
i+1 si

|sni+1 sni |.

This completes the proof.

1.2.4.4

Summary: cell bounding vs. flux bounding

We have examined both the possibility of using cell bounding and of using flux
bounding. For cell bounding, we observe oscillations or overshoot that are caused by
the conservation fix. For flux bounding, we have shown a TVD result for using MUSCL
with implicit Euler (with piecewise constant data). Therefore, we will use flux bounding
for the remainder of this work.

25

1.2.5

Choice of implicit scheme

In our considerations so far, we have used implicit Euler as implicit time stepping
scheme. This scheme has very good stability properties, in particular it is unconditionally
SSP, but it is only first-order accurate. Our goal, however, is to develop a second-order
mixed explicit implicit scheme. We are looking for a second-order scheme with good
stability properties that matches well with the MUSCL scheme.

1.2.5.1

SSP schemes

It is popular to use specific TVD/SSP Runge-Kutta schemes [58, 59, 100, 101] for
time stepping as these schemes possess guaranteed stability properties. Unfortunately,
there is no second-order implicit scheme that is unconditionally SSP [80, 102]. In fact,
there is no second-order scheme that is close to that.
Denote by 0 the maximum step size for which the explicit Euler scheme is strongly
stable for a given spatial discretization. By c we denote the largest step size, such that
a second-order implicit time stepping scheme is strongly stable for 0 < t 6 c 0 . The
optimal one-stage method (optimal with respect to c) is the midpoint rule with c = 2
[53]. The factor c scales with the number of stages: for a scheme with s stages, it is
c = 2s. For more information see [52, 53, 80].
Therefore, to guarantee SSP property of the implicit scheme, when using, e.g., a twostage method, we could only increase the allowed time step by a factor of 4 compared to
the Euler time step constraint. Cut cells however can be arbitrarily small and we want
to choose the time step based on the size of regular Cartesian cells. Therefore, we cannot
hope to find a second-order scheme that is strongly stable on cut cells for our approach.

1.2.5.2

Candidates for the implicit scheme

Instead we investigate whether some of the well-established, second-order schemes


used to solve stiff ODEs [61, 62, 71, 83] fit our purposes. We use two theoretical tests to

26

tn+1

tn

Figure 1.6: Sketch of scheme: mix MUSCL flux (M) and flux from implicit scheme (I).
assess the accuracy and stability properties of the resulting mixed scheme.
Test 1: (Accuracy) We apply the mixed scheme sketched in Figure 1.6 to a linear
test function and take one time step. The mixed scheme uses MUSCL as explicit
scheme and the respective implicit scheme with slope reconstruction as implicit
scheme. The connection is done by flux bounding. For simplicity, we replace all
slopes in our theoretical considerations by the true slope of the given linear test
function. This corresponds to assuming that slope reconstruction for slopes at tn
and tn+1 is exact.
Test 2: (Stability) We use discontinuous data sni = 1 for i 6 1 and sni = 0 for
i > 0. We take one time step and examine the value sn+1
, which depends on (, ),
0
for 0.
We note that the main purpose of Test 1 is not to assess the accuracy of the implicit
scheme but its compatibility with MUSCL. On the irrflow cells 1 and 1, which use fluxes
from both the explicit and implicit scheme, errors occur if the fluxes do not match. BDF2
(backward differentiation formula), for example, evaluates the flux at time tn+1 , whereas
MUSCL evaluates the flux at time tn+1/2 . We observe an O(x) error on cells 1 and 1
in Test 1. The same holds true for combining implicit Euler time stepping with MUSCL;
i.e., the mixed scheme consisting of MUSCL and implicit Euler with unlimited slopes is
not exact for linear functions.
In the following we present three implicit schemes. All of these schemes passed Test
1, i.e., did not show errors on cells 1, 0, and 1 when used in the mixed scheme. We
give the definition of the schemes based on their application to the ODE ut = f (u) and
27

focus on their behavior in Test 2. We note that all second-order candidates produce
some overshoot in this test.

Trapezoidal rule
The trapezoidal rule is given by

un+1 = un +

t
[f (un ) + f (un+1 )] .
2

(1.12)

For the linear advection equation, it is similar to the implicit midpoint rule
1
u = un + tf (u ),
2
un+1 = un + tf (u ).

(1.13)

We will only examine the trapezoidal rule in the following.


For Test 2, we find
sn+1
=
0

2
.
+1

Therefore, for 0 we could get values up to 2, which corresponds to significant


overshoot.
To avoid this, we will use an FCT (flux-corrected transport) approach [30, 115] and
will combine the trapezoidal rule with implicit Euler. Based on Theorem 1.1 the resulting
scheme should be TVD, provided the switching between the two implicit schemes is done
properly. This has not yet been implemented.

28

TR-BDF2
TR-BDF2 (TR stands for Trapezoidal) is L-stable and second-order accurate [83,
p. 175]. It is given by
t
[f (un ) + f (u )] ,
4
t
= un +
[f (un ) + f (u ) + f (un+1 )] .
3

u = un +
un+1

(1.14)

For Test 2, the maximum overshoot for sn+1


is roughly 1.21 for 0. However, as
0
the first stage is computed with the trapezoidal rule, s0 could have values up to 2. As
it is harder to use an FCT approach at the intermediate stage and this scheme is more
expensive than the trapezoidal rule, we eliminate TR-BDF2 from the list of potential
schemes.

A specific SDIRK scheme


Our final candidate is the SDIRK scheme

u = un + tf (u ),
un+1 = un + t [(1 )f (u ) + f (un+1 )] ,

with the choice = (2

2)/2. The two values = (2

(1.15)

2)/2 are the only variable

values for which the resulting scheme is both second order and L-stable [61, p. 98]. Also,

for = (2 2)/2 this schemes passes Test 1, whereas for 6= (2 2)/2 we observe

an O(x) transition error. As (2 + 2)/2 > 1, we choose = (2 2)/2.


In Test 2, we found that s0 , which is computed with an implicit Euler step, has values
between 0 and 1. For sn+1
, values can increase up to approximately 1.21 for 0.
0

29

Table 1.1: One step error for mixed schemes

1.2.5.3

L1

order

order

80
160
320

1.94e-04
4.70e-05
1.16e-05

2.05
2.02

9.60e-03
5.14e-03
2.65e-03

0.90
0.95

Trapezoidal

80
160
320

2.39e-05
2.95e-06
3.65e-07

3.02
3.01

2.28e-03
5.52e-04
1.36e-04

2.04
2.02

SDIRK

80
160
320

2.59e-05
3.18e-06
3.94e-07

3.02
3.01

9.48e-04
2.31e-04
5.70e-05

2.04
2.02

Implicit method

Implicit Euler

A numerical test assessing accuracy

We now test the mixed scheme sketched in Figure 1.6 numerically. For the implicit
part we use the trapezoidal rule, the SDIRK scheme (1.15) or implicit Euler, all combined
with unlimited slope reconstruction. As the implicit time stepping scheme is only used
for two fluxes, F1/2 and F1/2 , we expect the behavior of the MUSCL scheme, which is
used on most of the grid, to dominate the L1 error.
We discretize the interval [0, 1 + x] to have N equal cells of length x and one
small cell in the middle of length x, = 104 . We use initial data sin

2x
1+x

periodic boundary conditions, and solve st + 2sx = 0 with CFL number = 0.8.
Table 1.1 shows the result for taking one time step. (We use the notation in [83]. By
one step error we refer to the error caused by taking one time step, i.e., s(t1 ) s1 ; the
one step error for the MUSCL scheme is of third order on a regular grid.) We observe
for the mixed scheme using
implicit Euler: the one step error measured in the L norm is of the order O(x);
measured in the L1 norm, it is of second order.
trapezoidal rule or SDIRK scheme: the one step error measured in the L norm is
of the order O(x2 ). Due to the third-order one step error of the MUSCL scheme,

30

Table 1.2: Result at time T for mixed schemes


L1

order

order

80
160
320

1.22e-03
3.16e-04
8.21e-05

1.95
1.95

1.38e-02
6.66e-03
3.30e-03

1.05
1.01

Trapezoidal

80
160
320

2.10e-04
5.68e-05
1.48e-05

1.89
1.94

1.58e-03
3.51e-04
7.41e-05

2.17
2.24

SDIRK

80
160
320

2.04e-04
5.59e-05
1.47e-05

1.87
1.93

1.10e-03
2.82e-04
7.20e-05

1.96
1.97

Implicit method

Implicit Euler

the one step error measured in L1 norm is of third order.


To better understand this behavior, we isolate the two error sources: the irregularity
of the small cell and the switch in the scheme. Instead of switching on cells 1 and 1, we
switch away from the small cell so that overall the implicit scheme is used on one quarter
of the grid cells and MUSCL is used on the remaining three quarters. The results for
taking one time step are
for implicit Euler: the switch in the scheme causes an O(x) error. This is due to
implicit Euler evaluating the flux at time tn+1 whereas MUSCL evaluates at time
tn+1/2 . The irregularity of the small cell causes an O(x2 ) error.
for trapezoidal rule and SDIRK scheme: the errors caused by the switch and by
the irregularity of the small cell are both second order.
These results imply that for both our second-order implicit candidates, we make a
second-order one step error in the switch. If this error accumulated, this could result in
an overall first-order scheme. We therefore test running until time T , where T 0.5 is
chosen such that the sinusoidal curve is back to its original position (using the true
scheme with switching on cells 1 and 1). The result for this test is shown in Table
1.2. Apparently, the one step error caused by the transition between the schemes does

31

not accumulate. This behavior of the one step error accumulating in an unusual way is
an often observed phenomenon when working with non-uniform/cut cell grids, see, e.g.,
Wendroff & White [113].
1.2.5.4

Summary

Based on the numerical test, both the trapezoidal rule and the SDIRK scheme (1.15)

with = (2 2)/2 are good candidates for the implicit scheme. In the theoretical
discontinuity test, the SDIRK scheme causes less overshoot than the trapezoidal rule,
but does not completely avoid it. The SDIRK scheme uses two stages and is therefore
twice as expensive as applying the trapezoidal rule. We will use the trapezoidal rule as
the implicit scheme in two dimensions.

1.3

Two-dimensional generalization

In this section we focus on extending the mixed explicit implicit approach presented
in Section 1.2 to two dimensions. We solve the linear advection equation

st + (us)x + (vs)y = 0.

(1.16)

Here, s(x, t) denotes a cell centered, advected scalar field and u(x) = (u, v) denotes
a divergence-free velocity field that is constant in time. Furthermore, we use no flow
boundary conditions on the embedded boundary imposed by

u n = 0 on .

(1.17)

Therefore, only an initial condition s(x, 0) = s0 (x) (and a given velocity field) is required
for a well-posed problem. We assume that the velocities are given at the edge midpoints,
i.e., the velocities are given as ui+1/2,j and vi,j+1/2 .
As we said, small cut cells can cause stability problems. We explore solving this
32

small cell stability issue using mixed explicit implicit schemes that are implicit only near
the boundary. This will result in a layer of transition cells next to cut cells, which are
updated with both explicitly and implicitly computed fluxes.
In the following, we first present the MUSCL scheme in two dimensions. Then, we
describe how we generalize the switch between the explicit and implicit scheme from
one to two dimensions. We conclude this section by giving formulae for computing the
implicit fluxes in two dimensions using slope reconstruction.

1.3.1

The MUSCL scheme in two dimensions on a Cartesian grid

As in one dimension, we use the MUSCL scheme as an explicit scheme. This version
of the scheme mostly coincides with the one used by Almgren et al. [7]. The main idea
is the same as in one dimension, which was described in Section 1.2.1. Taylor expansion
in time and space to determine the left and right edge states gives
n+1/2,L

t n
x n
sx,ij +
s ,
2
2 t,ij
x n
t n
= sni+1,j
sx,i+1,j +
s
.
2
2 t,i+1,j

si+1/2,j = snij +
n+1/2,R

si+1/2,j

We again use the equation st = usx vsy to replace the time derivative st , but we pay
particular attention to where we evaluate the terms. We use
n+1/2,L


x n
t 
[
sx,ij
ui+1/2,j snx,ij + (vs
y )ij ,
2
2

x
t 
[
= sni+1,j
snx,i+1,j
ui+1/2,j snx,i+1,j + (vs
y )i+1,j .
2
2

si+1/2,j = snij +
n+1/2,R

si+1/2,j

(The b symbol is used for easy recognizability of the term (vsy )ij , which will be evaluated
n+1/2,L

in a specific manner.) Let us focus on si+1/2,j given by


n+1/2,L
si+1/2,j

snij

x
t n
t [
ui+1/2,j
sx,ij
(vsy )ij .
2
2
2


33

(1.18)

We evaluate snx,ij , the normal derivative with respect to edge (i + 1/2, j), by slope reconstruction. As the algorithm is used on a Cartesian grid, we use one-dimensional slope
reconstruction and slope limiting in the x direction: we use central difference quotients
for the unlimited gradient and the MC limiter for limited gradients. (For more detailed
information see LeVeque [82, Ch. 6].)
[
The evaluation of the transverse derivative term (vs
y )ij is more complicated. We first
use extrapolation from above and below to construct edge states using normal derivatives
n+1/2,B

n+1/2,T

only; for edge (i, j + 1/2) we compute edge states si,j+1/2 and si,j+1/2 as
n+1/2,B

t n
y
sy,ij ,
vi,j+1/2
2
2


y
t n
= sni,j+1
+ vi,j+1/2
sy,i,j+1 .
2
2

si,j+1/2 = snij +
n+1/2,T

si,j+1/2

(1.19a)
(1.19b)

Then we choose between these states using an upwinding procedure based on vi,j+1/2 to
get

n+1/2

si,j+1/2 =

n+1/2,B

si,j+1/2 ,

if vi,j+1/2 > 0,

n+1/2,T

si,j+1/2 ,


 n+1/2,B

n+1/2,T

1 s
+ s
,
2

i,j+1/2

i,j+1/2

(1.20)

if vi,j+1/2 < 0,
if vi,j+1/2 = 0.

Now we rewrite vsy = (sv)y vy s and evaluate




n+1/2
n+1/2
[
(vs
i,j+1/2 vi,j+1/2 si,j1/2 vi,j1/2 snij vi,j+1/2 vi,j1/2 .
y )ij = s

(1.21)

n+1/2,L

This concludes our description of the evaluation of si+1/2,j . We now use upwinding
n+1/2,L

analogous to (1.20), employing ui+1/2,j instead of vi,j+1/2 , to choose between si+1/2,j


n+1/2,R

n+1/2

n+1/2

and si+1/2,j with the result being si+1/2,j . Analogously, we compute si,j+1/2 . Then we

34

update our solution from snij to sn+1


using the conservative update formula
ij

sn+1
= snij
ij

1.3.2

i
t h
n+1/2
n+1/2
ui+1/2,j si+1/2,j ui1/2,j si1/2,j
x
i
t h
n+1/2
n+1/2

vi,j+1/2 si,j+1/2 vi,j1/2 si,j1/2 . (1.22)


y

Switching between the explicit and implicit scheme

Based on the results in one dimension, we use flux bounding in two dimensions to
connect the explicit MUSCL scheme with the implicit scheme. To minimize work, we
want to use the implicit time stepping for as few cells as possible. Therefore, as in one
dimension, we only treat cut cells in a fully implicit manner. By irrflow cells, we denote
the cells on which we switch the scheme. These are flow cells that are edge neighbors of
cut cells. They correspond to cells -1 and 1 from our one-dimensional considerations.
We use explicit fluxes on edges between irrflow cells and flow cells, and on edges between
irrflow cells. Implicit fluxes are used on edges between irrflow and cut cells, and on edges
between cut cells. This is illustrated in Figure 1.7.
A high level version of the mixed explicit implicit scheme is given in the following.
Algorithm 1.1. Mixed explicit implicit scheme in two dimensions
Given sn ,
1. compute explicit fluxes using the MUSCL scheme (with the adjustments from Section 1.3.3),
2. update all flow cells to sn+1
using explicit fluxes and the conservative update forij
mula,
3. compute implicit fluxes making use of the explicit fluxes and the updated values
of the explicitly treated cells,
4. update cut cells and irrflow cells to sn+1
using implicit fluxes and a mixture of
ij
explicit and implicit fluxes, respectively. For details see Section 1.3.4.
35

I
I

I
I

Figure 1.7: Switching the scheme in two dimensions: The domain used in the simulation
corresponds to the interior of the circle. Irrflow cells (marked with I) are flow cells
that are edge neighbors of a cut cell. Cut cells are marked with the rose color. Implicit
fluxes are marked by a bold, light blue line. The remaining fluxes are explicit. We note
that there is no flow through the embedded boundary. (In each cut cell, the boundary
arc is replaced by a straight line.) Unmarked white cells are standard flow cells. The
light gray parts are the parts of cut cells that lie outside the fluid domain. Dark gray
color marks solid cells.

36

Figure 1.8: For a Cartesian cell, reconstruction to edge midpoints is a one-dimensional


operation. This is not the case for cut cells.
We note that the main ingredient that enters from the explicit part into the implicit
part are the fluxes. However, values at tn+1 on explicitly treated cells are needed for
slope reconstruction at tn+1 on irrflow cells, if slopes are used for the implicit scheme.

1.3.3

Adjustments to the MUSCL scheme

The MUSCL scheme is only used to compute fluxes between any two Cartesian cells
both flow and irrflow. However, the computation of the MUSCL flux between two irrflow
cells could involve a cut cell in the evaluation of the transverse derivative term. (One
[
example is the computation of the transverse derivative term (us
x )ij on the Cartesian
cell in Figure 1.8 assuming u < 0.) Therefore, we need to extend the computation of
n+1/2,L/R

si+1/2,j

n+1/2,B/T

and si,j+1/2

to cut cells.

For a Cartesian cell, we used (compare formula (1.19))


n+1/2,R
si1/2,j

snij

x
t n
+ ui1/2,j
sx,ij .
2
2


For a cut cell, the edge midpoint and the cell centroid are not aligned, i.e., they do
not have the same y component. This is shown in Figure 1.8. Denoting by (xij , yij ) the
coordinates of the centroid of cut cell (i, j) and by (xi1/2,j , yi1/2,j ) the coordinates of

37

the edge midpoint of edge (i 1/2, j), we use


n+1/2,R

si1/2,j = snij + xi1/2,j xij snx,ij + yi1/2,j yij sny,ij ui1/2,j

t n
s .
2 x,ij

Note that this formula reduces to the equation above in the case of a regular cell. The
slopes snx,ij and sny,ij are both computed by a least squares approach and limited using
the LP limiter, as described in Chapter 3.

1.3.4

Computation of implicit fluxes

As implicit second-order scheme we use the trapezoidal rule with slope reconstruction.
For slope reconstruction on cut cells and irrflow cells, see Chapter 3. We also test implicit
Euler with piecewise constant data.
on a cut cell
Using implicit Euler time stepping without slope reconstruction, sn+1
ij
is updated by (compare the section Notation for definition of ij and i+1/2,j )

sn+1
= snij
ij

t
n+1
u

y sn+1
i+1/2,j ui1/2,j i1/2,j y si1/2,j
ij xy i+1/2,j i+1/2,j


+ vi,j+1/2 i,j+1/2 x

sn+1
i,j+1/2

vi,j1/2 i,j1/2 x

sn+1
i,j1/2

Here,
sn+1
i+1/2,j =

sn+1
ij

if ui+1/2,j > 0,

sn+1

if ui+1/2,j < 0,

i+1,j

n+1
and sn+1
i1/2,j as well as si,j1/2 are computed analogously. (Note that for a non-existing

face = 0.)
On irrflow cells, we use both explicit and implicit fluxes. Assume that cell (i, j) is an
irrflow cell, cells (i 1, j) and (i, j 1) are cut cells, and that cells (i + 1, j) and (i, j + 1)
are either flow or irrflow cells. Then, for mixing implicit Euler with the MUSCL scheme,

38

the scheme on the irrflow cell (i, j) is given by

sn+1
ij

snij

t
n+1/2
ui+1/2,j y si+1/2,j ui1/2,j y sn+1

i1/2,j
xy


n+1/2

+ vi,j+1/2 x si,j+1/2 vi,j1/2 x sn+1


i,j1/2 ,
n+1/2

n+1/2

with si+1/2,j and si,j+1/2 representing the MUSCL fluxes described in Section 1.3.1 and
n+1
sn+1
i1/2,j and si,j1/2 being the implicit Euler fluxes described above.

This can be formulated as a linear system. The variables are the values on the cut
cells and the irrflow cells. As the update on each irrflow cell uses at least one implicit
flux, the new value on an irrflow cell needs to be integrated in this system. Therefore,
the size of the system is N N with N being roughly twice the number of cut cells.
The explicit fluxes from the MUSCL scheme, used in the update of irrflow cells, enter
the right hand side of the linear system.
For using the trapezoidal rule with slope reconstruction on a cut cell, the update is
given by

sn+1
ij

snij

y (sni+1/2,j + sn+1
i+1/2,j )
2ij xy i+1/2,j i+1/2,j


ui1/2,j i1/2,j y (sni1/2,j + sn+1


i1/2,j )
+ vi,j+1/2 i,j+1/2 x (sni,j+1/2 + sn+1
i,j+1/2 )
vi,j1/2 i,j1/2 x

(sni,j1/2

sn+1
i,j1/2 )

(1.23)

Here,

sni+1/2,j =

n
n
sn
ij + (xi+1/2,j xij )sx,ij + (yi+1/2,j yij )sy,ij

if ui+1/2,j > 0,

sn

if ui+1/2,j < 0,

i+1,j

+ (xi+1/2,j xi+1,j )snx,i+1,j + (yi+1/2,j yi+1,j )sny,i+1,j

where (xi+1/2,j , yi+1/2,j ) denotes the location of the edge midpoint of face (i + 1/2, j),

39

(xij , yij ) denotes the centroid of cut cell (i, j), and sx,ij and sy,ij refer to the reconstructed
x and y slopes respectively in cell (i, j).
Even though the update formula for using trapezoidal rule with slope reconstruction
looks similar to the one for implicit Euler, it is more difficult to solve for sn+1
numerically
ij
due to the slope reconstruction. In the slope reconstruction, typically slope limiters need
to be used to avoid overshoot or oscillations. Slope limiters are nonlinear operators. In
addition, slope limiters on cut cells, both the standard scalar limiter and our newly
developed LP limiter (see Chapter 3), are non-smooth. Therefore, unlike the situation
for implicit Euler with piecewise constant data, here we must solve a system of nonlinear
equations involving non-smooth functions.
In the present work, we have used a direct solver from LAPACK [11] to solve the
linear system for implicit Euler time stepping at each time step. For the implicit scheme
consisting of the trapezoidal rule with limited slope reconstruction, we have used a pseudo
time stepping method [29, 73, 74]. We also experimented with a Quasi-Newton method,
which, for the second-order implicit scheme, uses a first-order space discretization for
the Jacobian. Exploring this approach as well as other possibilities further will be future
work. We note that even though solving an implicit system is generally not cheap, the
size of the implicit system will be roughly one dimension less than the overall number of
grid cells used in the simulation.

1.4
1.4.1

Numerical results
Implementation aspects

The software used for our tests in two (and three dimensions) is based on BoxLib
[50]. This is an open-source software library developed by the Center for Computational
Sciences and Engineering (CCSE) at Lawrence Berkeley National Laboratory (LBNL).
It contains all the functionality for massively parallel, block-structured adaptive mesh

40

refinement (AMR) applications. The user must provide the finite volume scheme used
for the simulation.
The package does not provide support for embedded boundaries. To generate cut
cell information we use patchCubes, a derivative of cubes, the mesh generation part of
Cart3D [1, 5, 6]. The input for patchCubes consists of the bounding box of the domain/a
computational patch and a surface triangulation of the embedded boundary. It then
computes all the geometry information needed for a second-order finite volume algorithm;
the location of the cut cells centroid and volume,
the location of each face centroid and the face length/area,
the location of the boundary edge midpoint and the length/area of the boundary
segment.
The combination of these two packages, BoxLib and patchCubes, forms the basis of our
software. This is illustrated in Figure 1.9.
BoxLib provides general functionality for high performance programming. The actual
time stepping algorithms for the Cartesian part of the grid were taken from existing
solvers of the CCSE group. We wrote most of the algorithms used for tests in this chapter
from scratch, partly following the structure of existing solvers used by the CCSE group.
Routines provided by BoxLib, like the setting of boundary conditions and the plotting
routines, needed to be adjusted to the presence of cut cells. During all these tasks and
the fusion of the two software packages we were actively supported by members of the
CCSE group. All code is written in Fortran 90.
For visualization of the numerical results we use AmrVis [2] and VisIt [111].

1.4.2

Numerical results in two dimensions

We now present numerical results in two dimensions. In all tests we compute the
true solution by either tracing back characteristics or by comparing to initial data. To

41

Initializations

..
.

Initialize Cartesian grid


Initialize cut cells:
do n=1, # levels
do k=1, #patches
call patchCubes
end do
.. end do

Input: Computational patch


Surface triangulation
Output: Cut cell information

patchCubes

Time stepping

..
.

AMR

..
.

If new grids
Software based
on BoxLib
Figure 1.9: Sketch of the software setup used for our numerical tests.

measure the error e we define the classical L1 and L norm for the computational domain

L1 (e) =

1 X
|eij | |ij |,
|| i,j

L (e) = max|eij |,
i,j

(1.24)
(1.25)

where |ij | denotes the area of cell (i, j). If the error on the cells close to the embedded
boundary converges with at least first order, we expect the L1 error to converge with
second order as the MUSCL scheme is a second-order scheme and the cells close to the
embedded boundary have a lower dimensionality. (For L1 this follows from a counting
argument. An analog theorem for L2 was proven by Gustafsson [60].) The L error will
most likely be dominated by the error on the cut cells.
To measure the error along the embedded boundary separately, we also introduce

42

boundary norms L1bdy and L


bdy . For these norms, we use the computed solution to
reconstruct slopes on all cut cells and use these slopes to evaluate the solution at the
boundary edge midpoint of the cut cell. Let k = 1, . . . , N denote a numeration of cut
cells and ek,bdy denote the error at the boundary edge midpoint of cut cell k. Then we
define

L1bdy (ebdy ) =

1 X
|ek,bdy | |k |,
| | k

L
bdy (ebdy ) = max|ek,bdy |.

(1.26)
(1.27)

Here, | | denotes the length of the embedded boundary and |k | the boundary segment
length of cut cell k.
We compute errors for taking one time step and for simulating until time T . For the
definition of one step error we follow LeVeque [83] who distinguishes between truncation
and one step error. A second-order method on a regular grid typically has a third-order
one step error.
We compute the time step based on the CFL number as
!

t = min

y
x
,
.
maxij |uij | maxij |vij |

We use = 0.8 for all tests presented in this section to fulfill the time step restriction
for the MUSCL scheme. We choose x = y in our tests but this is not a requirement.
Finally we note that determining the exact accuracy of a cut cell scheme is nontrivial. Cut cells do not allow for a smooth error expansion. As a result, convergence
plots usually do not correspond to a smooth line but to a zig-zag line instead.

1.4.2.1

Test 1: Advection parallel to the x axis

Our first test is advection parallel to the x axis. The setup is shown in Figure 1.10.
We cut the Cartesian grid parallel to the x axis, leading to (regular) cut cells at the
43

inflow
b.c.

outflow
b.c.

Figure 1.10: Setup for advection parallel to the x axis: cut cells (marked in rose) are
at the bottom of the grid. Light blue lines indicate implicit flux. The black thick line
indicates that there is no flux between cut cells and irrflow cells.
bottom of the grid. We choose u = 2 and v = 0, i.e., the velocity field is parallel to the
embedded boundary. The inflow is given by evaluating the flux on the low x edge based
on the true solution. We do not prescribe the outflow as it is determined by the finite
volume scheme on the last column of cells.
For this test, the cut cells do not need to be treated in a special way as they have
regular length in x direction and v = 0. (The face fraction with respect to the y direction
cancels with the volume fraction.) However, this test is very helpful to (a) find bugs in
the code and to (b) confirm some basic properties of the schemes. We note that for this
test, there is no interaction between the cut cells and the irrflow cells due to v = 0. This
is indicated by the thick black line in Figure 1.10. Consequently, our method reduces to
the standard MUSCL scheme on irrflow cells.
The original (uncut) problem domain is [0, 1]2 and the embedded boundary has height
0.1. We initialize the grid cells with the one-dimensional test function

s(x, y, 0) = sin(2x)

44

Table 1.3: Results for the mixed scheme for the domain norms L1 and L for advection
parallel to the x axis.
Implicit scheme

N2

L1 error

order

L error

order

min

Implicit Euler

642
1282
2562
5122
7682

3.57e-04
4.12e-05
1.59e-05
6.78e-06
9.08e-07

3.11
1.38
1.23
4.96

4.83e-02
2.44e-02
1.23e-02
6.15e-03
4.10e-03

0.99
0.99
1.00
1.00

0.59
0.19
0.37
0.74
0.12

Trapezoidal

642
1282
2562

8.15e-05
1.92e-05
4.74e-06

2.09
2.02

1.12e-03
2.78e-04
7.01e-05

2.02
1.99

0.59
0.19
0.37

Table 1.4: Results for the mixed scheme for the boundary norms L1bdy and L
bdy for
advection parallel to the x axis.
Implicit scheme

N2

L1bdy error

order

L
bdy error

order

min

Implicit Euler

642
1282
2562

3.72e-02
1.59e-02
8.79e-03

1.23
0.85

6.62e-02
2.82e-02
1.56e-02

1.23
0.86

0.59
0.19
0.37

Trapezoidal

642
1282
2562

8.15e-05
1.92e-05
4.74e-06

2.09
2.02

1.12e-03
2.78e-04
7.01e-05

2.02
1.99

0.59
0.19
0.37

and advect until time T = 0.1. We use unlimited slopes.


Table 1.3 shows the results for the domain norms for using MUSCL scheme with
implicit Euler and trapezoidal rule, respectively. For the trapezoidal rule, we observe
second-order convergence both for the L1 and the L error. For using MUSCL with
implicit Euler we observe linear convergence in the L norm and irregular behavior in
the L1 norm: convergence orders jump between 1.23 and 4.96. We expected second-order
convergence as there are N cut cells compared to roughly N 2 total cells; therefore the
second-order MUSCL scheme should dominate the L1 error.
To better understand the inconsistency between the numerical result and our theoretical considerations, we examine the formula for the L1 error for this test problem in

45

F
detail. Let us denote by |eC
ij | the average error on a cut cells and by |eij | the average

error on an irrflow or flow cell. (Note that the standard MUSCL scheme is used on
irrflow cells in this test.) Then

L1 error =

|eij |xy +

flow cell
irrflow cell

cut cell

y C
y
|eij | + 1
1
1


|eij |xy /(1 ),

|eFij |.

This implies that |eC


ij | is multiplied by y, which should improve the overall convergence
order from first order to second order. However, |eC
ij | is actually multiplied by y, i.e.,
the volume fraction also shows up in the formula. The volume fraction depends
on how the grid is cut by the embedded boundary, and varies randomly, see Table 1.3.
As doubles between grids N = 1282 and N = 2562 , and N = 2562 and N = 5122 ,
respectively, the factor y is overall annihilated leading to the first-order convergence
observed for these grids. This also explains the jump in convergence between grids
N = 5122 and N = 7682 . Therefore, on average, the L1 error for using MUSCL with
implicit Euler converges with second order; but the number of samples was not enough
to capture the behavior appropriately. Even in this very simple test problem, we have
the classical zig-zag behavior of the convergence plot, an often observed phenomenon
when using cut cells.
Finally, Table 1.4 shows the results for the boundary norms L1bdy and L
bdy . Here, we
observe roughly first order for implicit Euler. The mixed scheme using the trapezoidal
rule shows second-order convergence in all norms.

1.4.2.2

Test 2: Advection along a ramp

Next, we test advection along a ramp with angle 0 < < 90 . The test is illustrated
in Figure 1.11. We choose the velocity field (u, v)T = (2, 2 tan ) to be parallel to the
embedded boundary. Unlike our first test, there is interaction between the irrflow and

46

outflow b.c.

inflow
b.c.

outflow
b.c.

inflow b.c.
Figure 1.11: Setup for advection along a ramp: cut cells are marked in rose. Light blue
lines indicate implicit flux.
cut cells. Our test functions are one-dimensional quadratic functions with respect to a
line () that is perpendicular to the ramp and whose slope therefore depends on the
ramp angle . Since the MUSCL scheme has a third-order one step error, the error on
the domain should be negligible and the error at the boundary should dominate. We
advect until T = 0.1. For this test, we do not show the result for implicit Euler but focus
only on the trapezoidal rule.

Results for fully implicit scheme


We first test a fully implicit version, i.e., we use the trapezoidal rule on all cells. This
eliminates errors caused by the switch in the scheme. We use slopes of the exact solution
to also eliminate errors caused by the slope reconstruction. For taking only one time
step, i.e., for the one step error, we observe that
the error in the L1 norm is of order O(x3 ),
2
the errors in the L1bdy norm, the L norm, and the L
bdy norm are of order O(x ).

47

Table 1.5: Results for advection along a ramp, using trapezoidal rule with analytic slopes
everywhere.

Grid

L1 error

order

L1bdy error

order

L
bdy error

order

5o

322
642
1282
2562

1.28e-05
3.22e-06
8.09e-07
2.02e-07

1.99
2.00
2.00

3.67e-05
1.36e-05
4.95e-06
1.80e-06

1.43
1.47
1.46

1.70e-04
5.30e-05
1.67e-05
4.70e-06

1.68
1.66
1.83

20o

322
642
1282
2562

1.26e-05
3.15e-06
7.89e-07
1.97e-07

2.00
2.00
2.00

6.18e-05
2.15e-05
7.55e-06
2.64e-06

1.52
1.51
1.52

1.80e-04
5.47e-05
1.60e-05
5.07e-06

1.72
1.77
1.66

30o

322
642
1282
2562

1.24e-05
3.11e-06
7.79e-07
1.95e-07

1.99
2.00
2.00

5.47e-05
1.83e-05
6.26e-06
2.15e-06

1.58
1.55
1.54

1.56e-04
4.67e-05
1.40e-05
4.24e-06

1.74
1.74
1.72

40o

322
642
1282
2562

1.04e-05
2.60e-06
6.52e-07
1.63e-07

2.00
2.00
2.00

3.18e-05
9.77e-06
2.97e-06
9.57e-07

1.70
1.72
1.64

1.15e-04
3.39e-05
9.72e-06
2.76e-06

1.77
1.80
1.82

The results for running to time T = 0.1 are shown in Table 1.5. (The results for the L
error are very similar to the L
bdy error and therefore are not shown here.) We observe
for the L1 error: second-order convergence,
for the L1bdy error: convergence rates around 1.5 to 1.6,
for the L and L
bdy error: convergence rates around 1.7 to 1.8.
The convergence rates vary a bit between the angles. We would need to run more tests,
for which we keep the angle but shift the ramp slightly to the left or right, to reliably
identify the reason. There might be a dependency on the angles, but it might also be
accident caused by the random cut cell sizes and geometries.
We note that we do not observe full second-order convergence for the maximum error,
most likely due to the irregularity of the cut cells. More surprisingly, the convergence
rates for the L1bdy error are worse than the convergence rates for the L
bdy error for the

48

Table 1.6: Results for advection along a ramp, using trapezoidal rule with unlimited
slope reconstruction everywhere.

Grid

L1 error

order

L1bdy error

order

L
bdy error

order

5o

322
642
1282
2562

1.88e-05
4.02e-06
9.17e-07
2.18e-07

2.23
2.13
2.07

5.56e-05
2.25e-05
9.62e-06
4.03e-06

1.30
1.23
1.25

2.62e-04
8.62e-05
3.02e-05
9.11e-06

1.60
1.51
1.73

20o

322
642
1282
2562

1.87e-05
4.09e-06
9.43e-07
2.27e-07

2.34
2.20
2.12
2.05

1.88e-04
7.43e-05
2.93e-05
1.22e-05

1.38
1.35
1.34
1.26

4.22e-04
1.45e-04
4.84e-05
1.84e-05

1.61
1.54
1.59
1.39

30o

322
642
1282
2562

2.04e-05
4.49e-06
1.04e-06
2.50e-07

2.18
2.11
2.06

2.68e-04
1.00e-04
3.87e-05
1.53e-05

1.42
1.37
1.33

4.79e-04
1.64e-04
5.73e-05
2.09e-05

1.54
1.52
1.46

40o

322
642
1282
2562

1.95e-05
4.24e-06
9.59e-07
2.24e-07

2.21
2.14
2.09

2.65e-04
9.61e-05
3.47e-05
1.27e-05

1.47
1.47
1.44

4.39e-04
1.45e-04
4.93e-05
1.71e-05

1.59
1.57
1.53

grids given here. In terms of absolute errors, the L1bdy errors are smaller though. (Note
that the one step error only converged with second order in the L1bdy norm.)
The results just presented are an upper bound to what we can expect from the
mixed explicit implicit scheme at least with respect to the L error, the L1bdy error,
and the L
bdy error. Compared to the mixed scheme, we eliminated two error sources:
the switch and the inaccuracy in the slope reconstruction. The purpose of the next test
is to quantify the effect of the latter one.
Table 1.6 shows the results for using trapezoidal rule everywhere together with unlimited least squares slope reconstruction. On flow cells away from the boundary this
reduces to standard second-order central difference quotients. But for cut cells these
slopes are only a first-order approximation and could cause a loss of accuracy. The numerical results show that the L1 error is very similar to using analytic slopes, both in
terms of convergence rates and absolute numbers. For the L1bdy and the L
bdy error, the

49

convergence rates drop by about 0.1 to 0.2 compared to using analytic slopes. Also, the
absolute error is significantly larger.

Results for mixed explicit scheme


Next, we test the scheme that we actually want to use: the mixed explicit implicit
scheme (compare Figure 1.11) with the trapezoidal rule as implicit scheme and unlimited
slope reconstruction. Numerical tests indicate that the one step error is of the order
O(x3 ) in the L1 norm and of the order O(x2 ) in all other norms. The results for time
T = 0.1 are shown in Table 1.7.
The results are overall similar to the results for using trapezoidal rule with unlimited
slope reconstruction everywhere. In particular we observe
for the L1 error: second-order convergence,
for the L1bdy error: convergence rates around 1.3 to 1.4,
for the L and L
bdy error: convergence rates around 1.4 to 1.6.
Comparing the L1 error for = 5o , we find that the results for using the mixed explicit implicit scheme are one order of magnitude better than for using the fully implicit
scheme. The MUSCL scheme seems to do particularly well for advection that is approximately parallel to the coordinate axes. Overall, the L1 error using the mixed scheme is
somewhat smaller than the L1 error using trapezoidal time stepping with least squares
slope reconstruction everywhere. The results for the L1bdy and L
bdy error are pretty
comparable for both schemes.
This implies that the switch in the scheme does not lead to a significant loss of
accuracy along the boundary. There is some loss of accuracy on the irrflow cells though,
which is not reflected in the given tables. The maximum error, measured only over
irrflow cells, converges with second order for taking one time step and with only first
order for final time T = 0.1. But it is significantly smaller than the error on the cut

50

Table 1.7: Results for advection along a ramp, using the mixed explicit implicit scheme
with trapezoidal rule and unlimited slope reconstruction.

Grid

L1 error

order

L1bdy error

order

L
bdy error

order

5o

322
642
1282
2562

1.24e-06
2.60e-07
6.03e-08
1.62e-08

2.26
2.11
1.89

5.03e-05
1.74e-05
6.92e-06
2.87e-06

1.53
1.34
1.27

2.62e-04
8.20e-05
2.74e-05
7.91e-06

1.68
1.58
1.80

20o

322
642
1282
2562

3.32e-06
9.10e-07
2.36e-07
6.30e-08

1.87
1.94
1.91

1.75e-04
7.06e-05
2.87e-05
1.24e-05

1.32
1.30
1.21

4.10e-04
1.41e-04
4.78e-05
1.88e-05

1.54
1.56
1.35

30o

322
642
1282
2562

7.18e-06
1.83e-06
4.75e-07
1.24e-07

1.97
1.95
1.93

2.69e-04
1.04e-04
4.28e-05
1.80e-05

1.36
1.29
1.25

4.83e-04
1.71e-04
6.22e-05
2.40e-05

1.50
1.46
1.37

40o

322
642
1282
2562

1.07e-05
2.56e-06
6.23e-07
1.54e-07

2.07
2.04
2.01

2.51e-04
9.36e-05
3.53e-05
1.38e-05

1.42
1.41
1.35

4.36e-04
1.46e-04
5.09e-05
1.85e-05

1.58
1.52
1.46

cells and therefore does not influence the L error. Furthermore, it apparently does not
cause additional errors along the embedded boundary.

1.4.2.3

Test 3: Advection in the interior of a circle

Our last test uses a spatially varying velocity field given by (u, v)T = (2y, 2x)T .
Test domain is the interior of a circle with radius 1.0 as shown in Figure 1.7 and we use
initial conditions


s(x, y, 0) = 1 + exp 60 (x 0.85)2 + y 2



We choose T = , at which time the solution is identical to its initial value. We use the
full explicit implicit scheme. As implicit scheme we use the trapezoidal rule. Unlimited
slopes are employed for both the explicit and implicit scheme. We run simulations for
16 different meshes with the width x varying between 0.003 and 0.010. The error is

51

Table 1.8: Results for advection in the interior of a circle. Convergence orders correspond
to a least squares fit based on 16 runs with grid width x [0.003, 0.010].
conv. order for L1 error

conv. order for L error

Domain norm

2.09

2.22

Boundary norm

1.06

1.00

Cut cell norm

1.34

Irrflow cell norm

1.87

Norms

measured in the domain L1 and L norm, the boundary L1bdy and L


bdy norm, as well as
in the L norm measured only at the cut cell centroids and only at the irrflow centroids

resulting in the L
c and the Lirr norm, respectively.

Figure 1.12 shows the convergence in the four variants of the maximum norm. The
error plots show the zig-zag behavior, which is characteristic for cut cell methods.
The straight lines indicate the convergence rates computed by a least squares fit. The
corresponding rates are listed in Table 1.8. In this table, we also list the convergence
rates for the L1 and the L1bdy norm.
We observe the following:
both the L1 and L error measured over the whole domain converge with second
order; the former was expected, the latter implies that the maximum error is
probably caused by the peak of the Gaussian test function; Figure 1.12 shows that
for most grids, the L error is bigger than the maximum error measured over only
cut cells and irrflow cells; this confirms the suspicion;
the maximum error measured over only irrflow cells converges with close to second
order; i.e., we do not observe accumulation of the transition error in this test;
the error measured at the boundary edge midpoints converges only with first order

in both the L1bdy and the L


bdy norm; the Lc error (measured at cut cell centroids),

however, has a convergence rate of 1.34; we are not sure what the reason for this

52

Domain
Boundary
Cut cell
Irrflow cell

Error

10

10

10
Mesh width

Figure 1.12: Results for advection in the interior of a circle. The error is measured in
the L norm over various sets: all grid cells (Domain), all boundary edge midpoints
(Boundary reconstruction was used to evaluate the error), only cut cells (Cut cells),
and only irrflow cells (Irrflow cell). The x axis corresponds to the mesh width x of
the underlying Cartesian grid and the y axis to the error measured in the corresponding
L norm. The straight lines correspond to the least squares fits with the convergence
orders given in Table 1.8.

53

(a) time t = 0

(b) time t = T =

Figure 1.13: Results for advection in the interior of a circle using x = 0.0059. Both
pictures use the scale implied by the data at the initial time. The computational domain
is split in four equal patches.
difference in convergence is; one possibility is that unlike our previous tests a
curved boundary is used here.
Finally, in Figure 1.13 we show the results for x = 0.0059 (which corresponds to
1922 grid cells to discretize the bounding box) at its initial and its final time. The shape
of the Gaussian has been well preserved and we do not observe excessive smearing along
the boundary.

1.5

Conclusions and future work

In this chapter we have presented a new explicit implicit time stepping scheme for
solving the linear advection equation in two dimensions. The scheme uses a standard
explicit scheme, the MUSCL scheme, on Cartesian cells away from the embedded boundary. On cut cells we use an implicit time stepping scheme, the trapezoidal rule. The
switch is done on the Cartesian cells next to the cut cells using flux bounding.
The numerical results are promising. The convergence rates along the embedded
boundary varied between 1.0 and 2.0, typically lying somewhere in the middle. Additional tests will be needed to explore the properties of the scheme further.
54

1.5.1

Future work in two dimensions

Some open issues in two dimensions that need to be examined more closely are:
Robustness of the scheme: In the discontinuity test in one dimension, the trapezoidal method caused overshoot for very small values of . We plan to develop an
FCT approach combining the trapezoidal method with implicit Euler time stepping to guarantee monotonicity. We would also like to examine the option of using
the SDIRK scheme (1.15) instead of the trapezoidal rule.
Solving the implicit system more efficiently: The focus of the work was on the
method development and we did not have time to investigate a way to efficiently
solve the resulting implicit systems. This is necessary though for a practical implementation of the method.
Comparison to literature: It would be nice to directly compare to results from
existing methods in the literature, e.g., the h-box method or the flux redistribution
method.

1.5.2

Extension to three dimensions

During our scheme development one main design choice has been to ensure straightforward extension of the resulting algorithm to three dimensions. The explicit scheme
in three dimensions would be the extension of the two-dimensional MUSCL scheme presented in Section 1.3.1 and would contain corner-coupling. In an unsplit finite volume
scheme in two dimensions, diagonal neighbors, i.e., cells that differ by one in both the
i and j index, are used in the flux computation of cell (i, j) for a second-order accurate
and stable method [44]. In three dimensions, this extends to cells that differ by one
in all three coordinate directions [99]. A nice description of these issues is contained
in [88] and [92]. There, customized advection schemes in two and three dimensions are
developed that are based on tracing characteristics. As a side product, explanations are

55

provided concerning which neighboring cells need to be taken into account to advect a
reconstructed polynomial exactly over one time step.
As a consequence, the MUSCL scheme in three dimensions is more complicated than
in two dimensions, and its stencil is larger. In a first approach to extend the method
described in this chapter to three dimensions, we therefore extended the definition of
irrflow cells from edge neighbors in two dimensions to face and edge neighbors in three
dimensions. We also simplified the MUSCL scheme on irrflow cells to neglect corner
correction terms. Everything else was relatively straightforward and first results using
implicit Euler time stepping have been produced, see Figure 1.14. We conclude that our
method extends to three dimensions in a straightforward way, but that additional work
is necessary to fix all the (important) details.

56

Figure 1.14: Initial results for the advection scheme in three dimensions using implicit
Euler time stepping. This test is a generalization of Test 2; the test function is a threedimensional Gaussian and the ramp is constant in the z direction.

57

Chapter 2

A projection algorithm extended


to embedded boundary grids
2.1

Introduction

In this chapter we consider the two-dimensional incompressible Euler equations given


by

ut + (uu) + p = 0,

(2.1a)

u = 0.

(2.1b)

Our starting point is a well-established projection algorithm for Cartesian grids [7, 9,
19, 20] and the corresponding high performance implementation provided by the CCSE
(Center for Computational Sciences and Engineering) at LBNL. Our goal is to extend
both the algorithm and the implementation to Cartesian embedded boundary grids,
using the mixed explicit implicit time stepping scheme developed in Chapter 1.
Projection algorithms, also referred to as fractional step methods, were introduced by
Chorin [36, 37]. The method typically consists of two main steps:

58

1. Step 1: Update of the velocity field U n to an approximation U at time tn+1 that


does not satisfy the incompressibility condition.
2. Step 2: Enforcement of the divergence-free constraint by applying a projection to
U , resulting in U n+1 .
For Step 1, the biggest issue in extending the method to cut cells is to overcome
the small cell problem. Here, we will rely on the results from Chapter 1. For Step
2, all operators involved in the projection step (divergence, gradient, and interpolation
operators) need to be adjusted to the irregular geometry of cut cells. Our goals for the
resulting method are second-order accuracy at the embedded boundary and straightforward extension to three dimensions. Initial numerical results indicate that the approach
is promising but that the desired accuracy has not yet been achieved.
Projection algorithms for solving the incompressible Euler equations on Cartesian
embedded boundary grids have been examined before. Almgren et al. [8] present a projection algorithm that is second-order accurate in L1 and first-order accurate in L .
The authors use the flux redistribution method [95] to overcome the small cell problem
in Step 1. Popinet [96] presents a solver for the incompressible Euler equations with
similar accuracy properties, which uses both AMR and embedded boundary techniques.
The focus of the paper is on AMR-related aspects. Popinet avoids the small cell problem
by cell merging. Both methods use a similar discretization for the advection terms on
Cartesian cells as we use.
There is much more literature about Cartesian embedded boundary methods for
solving the incompressible Navier-Stokes equations than for the incompressible Euler
equations. Different versions have been developed by Tau [105], Calhoun [32], Ye et
al. [114], Gao et al. [56], Barad et al. [13] and Miller & Trebotich [90], Meyer et al. [89],
and Wang et al. [112]. Because of the many differences between the equations, these
methods are not directly applicable to our case.
This chapter is organized as follows: We first introduce the projection method for
59

regular Cartesian grids. Then, we discuss adjustments to Step 1 and Step 2 of the
algorithm to account for the embedded boundary. In Section 2.4 we present initial
numerical results for flow past a half-cylinder. We conclude this chapter with a discussion
of open problems.

2.2

Projection algorithms on Cartesian grids

In this section we focus on solving the incompressible Euler equations (2.1) on a


Cartesian grid. The idea of using a projection algorithm to solve the incompressible
Navier-Stokes equations was introduced by Chorin [36, 37]. Its theoretical basis is the
Helmholtz-Hodge decomposition theorem, see, e.g., [38]. Chorins algorithm contained
all the main features of a modern projection algorithm but was only first order. Secondorder projection algorithms were developed by Kim & Moin [81], van Kan [79] and Bell,
Colella, and Glaz (BCG) [18, 19].
Our extension is based on the projection methods described in [7, 9, 19, 20]. These
methods are all revisions of the original BCG algorithm with varying details. The two
steps of the projection algorithm are:
Step 1: The advection equation (2.1a) is solved without strictly enforcing the incompressibility constraint, i.e., the equation
U Un
+ [(U )U ]n+1/2 + pn1/2 = 0
t

(2.2)

is solved for U . The pressure gradient is evaluated at tn1/2 and is treated as a source
term. The nonlinear term [(U )U ]n+1/2 is approximated at tn+1/2 to second order in
space and time using an explicit predictor corrector scheme based on a MUSCL approach.
Lagging of the pressure gradient results in a failure of incompressibility, which will be
corrected in the next step.
Step 2: In the projection step, U is decomposed into a discrete gradient of a scalar

60

potential and a discretely divergence-free vector field. The former is used in the pressure
update, the latter in the update of the velocity field. Denoting the projection by P, one
obtains
U n+1 U n
U Un
,
=P
t
t


pn+1/2 = pn1/2 + (I P)

(2.3a)


U Un

(2.3b)

In the following we will give a short summary of the algorithms used for both steps.

2.2.1

Details for the advection step

The details of the advection step overall coincide with the descriptions given by Bell
et al. [19, 20] and Almgren et al. [7]. The main complication in computing U in (2.2) is
caused by the term [(U )U ]n+1/2 . The variable U n is cell centered but this non-linear
term needs to be evaluated on the edges with second-order accuracy in time. To deal
with this problem, a predictor corrector approach is used:
n+1/2

n+1/2

(i) Predictor: Velocities ui+1/2,j and vi,j+1/2 are predicted on the x edges and y
edges, respectively. The details of this step are described in [7]. Essentially, a
MUSCL scheme similar to the one described in Section 1.3.1 is used.
Then, a MAC projection is applied to enforce that the edge velocities are discretely
divergence-free, i.e.,
n+1/2

n+1/2

(ui+1/2,j , vi,j+1/2 )

MAC projection

M
(uM
i+1/2,j , vi,j+1/2 ).

More information about the MAC projection is given below. This results in disM
cretely divergence-free velocity components uM
i+1/2,j on the x edges and vi,j+1/2 on

the y edges, respectively, compare Figure 2.1.


M
(ii) Corrector: In the corrector step, the predicted velocities U M = (uM
i+1/2,j , vi,j+1/2 )

61

M
vi,j+1/2

uM
i1/2,j

uM
i+1/2,j
(u, v)ij

M
vi,j1/2

Figure 2.1: Location of the MAC velocities U M on a Cartesian grid.


are treated as a given velocity field and an equation of the form
in+1/2
U Un h M
+ (U )U
+ pn1/2 = 0
t

(2.4)

is solved. The pressure gradient is treated as a source term. Therefore, solving


(2.4) for U is similar to applying the MUSCL scheme to the linear advection
equation. This was described in Section 1.3.1.
In the MAC projection, an equation of the form

DG = DU n+1/2
n+1/2

n+1/2

with U n+1/2 = (ui+1/2,j , vi,j+1/2 ) is solved for . Here, D and G denote discretizations
of the divergence and gradient operators; details are given in Section 2.2.2. Then, U M =
U n+1/2 G. We note that this enforces the incompressibility of the MAC velocities up
to machine precision with respect to the chosen D, i.e., the MAC projection is an exact
projection.

2.2.2

Details for the projection step

For Step 2, the projection, an approximate projection method is used, i.e., the incompressibility is only enforced up to second order. Approximate projection methods

62

were introduced by Almgren et al. [7] as a response to the problems caused by exact
projections for the case that both the velocity and the pressure variables are cell centered: Discretizing the divergence operator D and the gradient operator G with standard
second-order difference quotients leads to an extended five point stencil for DG. As a
result, the stencil locally decouples and standard solvers like multigrid for the Poisson
equation cannot easily be used. For more information about approximate projections
see Almgren et al. [10] and Rider [98].
The projection operator is defined as
P = I GL1 D.

For an exact projection, there holds L = DG. We use the standard approach of employing
cell centered second-order difference quotients for D and G and defining L as the standard
five point Laplacian stencil; this results in an approximate projection.
To make the extension to cut cells easier, we write the projection step in a different
form. We define D : edge midpoints cell centroid by

(DU )ij =

vi,j+1/2 vi,j1/2
ui+1/2,j ui1/2,j
+
.
x
y

Then, G: cell centroid edge midpoints is defined as the skew-adjoint operator to D


given by

(Gx U )i+1/2,j

Ui+1,j Uij

(Gy U )i,j+1/2

Ui,j+1 Uij
y

(These are the definitions of D and G used in the MAC projection.) Note that for D
and G defined this way, there holds L = DG. We also define interpolation operators

I1 : cell centroids edge midpoint,


I2 : edge midpoints cell centroid.

63

Using averaging for both interpolation operators, which is second-order accurate for
Cartesian grids, makes this approach equivalent to using cell centered divergence and
gradient operators without the interpolation steps.
Applying the projection operator P to a cell centered vector field V , i.e., computing


V proj = PV = I G(DG)1 D V

can be split in the following steps:


Algorithm 2.1. Steps of the projection:
1. Interpolation: Evaluate V = I1 V .
2. Computation of divergence: Evaluate DV .
3. Linear system solve: Solve
DG = DV
for . Note that lives at cell centroids and DG maps cell centroids to cell
centroids.
4. Computation of gradient: Evaluate G.
d = I2 (G). Note G
d = I2 (G(DG)1 D(I1 V )).
5. Interpolation: Evaluate G

6. Subtraction: Compute
d
V proj = V G

2.3

Extension to embedded boundary grids

In this section, we focus on extending the projection algorithm to cut cells. We first
discuss the extension of Step 1, the advection step, to Cartesian embedded boundary
grids. Afterwards, we discuss necessary changes for the projection step. We present

64

extensions of D, G, I1 , and I2 suitable for cut cells and show numerical results for the
projection step.

Step 1: Computation of U

2.3.1

To make the algorithm work on cut cells, we need to


(i) adapt the way the MAC velocities are calculated, i.e.,
n+1/2

n+1/2

(a) predict ui+1/2,j and vi,j+1/2 on the edges in the presence of embedded boundaries,
(b) apply a MAC projection suitable for embedded boundary grids; (the adjustments to the operators D and G are given in Section 2.3.2 where we extend
Step 2 to embedded boundary grids;)
(ii) solve the equation
in+1/2
U Un h M
+ pn1/2 = 0
+ (U )U
t

for U on embedded boundary grids.


n+1/2

Even though the irregularity of cut cells complicates the prediction of ui+1/2,j and
n+1/2

vi,j+1/2 on the edges, the first part of Step (i) avoids the biggest problem related to cut
cells, the small cell problem. In this step we only predict to edges and do not divide
by the volume of potentially very small cut cells. For a Cartesian grid, the edge state
n+1/2,L

ui+1/2,j is given by
n+1/2,L
ui+1/2,j

unij

x max(uij , 0)t
t [
t n1/2

unx,ij
(vuy )ij
p
,
2
2
2
2 x,ij


[
with (vu
y )ij referring to a specific evaluation of the transverse derivative term. (For
more details see Almgren et al. [7].)

65

Two main changes were necessary to extend the algorithm from Cartesian cells to
cut cells. First, for a cut cell, cell centroid and edge midpoint are typically not aligned.
For spatial reconstruction from the cell centroid to the edge centers both the x and the
y slope of a variable are needed. We discussed this adjustment in Section 1.3.3.
[
Second, on a Cartesian grid, the transverse derivative term (vu
y )ij is evaluated by
n+1/2

n+1/2

upwind differencing of predicted edge states u


i,j+1/2 and u
i,j1/2 . For cut cells, the
lower and upper y edge might not both exist and their edges midpoints are not aligned.
Therefore, we just use the y slope uy computed by limited least squares reconstruction
(more fully described in Chapter 3) for the evaluation of the transverse derivative term.
Step (ii) is similar to solving a linear advection equation since the pressure gradient
pn1/2 is treated as a source term and the velocities U M are known. In Chapter 1 we
developed a mixed explicit implicit algorithm for solving the linear advection equation

st + (us) = 0.

We use a variant of this algorithm for step (ii).

2.3.2

Step 2: The projection step

Algorithm 2.1 in Section 2.2.2 summarizes the projection step for a fully Cartesian
grid. Following this approach we need to define
1. divergence operator D : edge midpoints (cut) cell centroids,
2. gradient operator G : (cut) cell centroids edge midpoints,
3. interpolation operator I1 : (cut) cell centroids edge midpoints,
4. interpolation operator I2 : edge midpoints (cut) cell centroids.
This will be done in this order.

66

A popular algorithm for solving the Poisson problem = with inhomogeneous


Dirichlet boundary conditions on embedded boundary grids is the method by Johansen
& Colella [78]. However, in this approach is centered at the Cartesian center of a cut
cell, i.e., at the center of the corresponding uncut cell. As our variables are centered at
the (geometric) cut cell centroid, we did not follow this approach.

2.3.2.1

Divergence operator D

For Cartesian cells, the divergence operator D is given by

(DU )ij =

vi,j+1/2 vi,j1/2
ui+1/2,j ui1/2,j
+
.
x
y

(2.5)

Like Almgren et al. [8], we define the divergence operator on cut cells by
1 ui+1/2,j i+1/2,j ui1/2,j i1/2,j
(DU )ij =
ij
x

vi,j+1/2 i,j+1/2 vi,j1/2 i,j1/2
+
. (2.6)
y


Unlike a Cartesian cell, a cut cell also has a non-Cartesian face, which is part of the
embedded boundary. The projection should enforce u n = 0 at the edge midpoint of
this face. By choosing L = DG, by defining D as given in (2.6), and due to the Neumann boundary conditions used for the Poisson problem, this property will be enforced
automatically (up to the order of the projection step).

2.3.2.2

Gradient operator G

The gradient operator G is given as map

G : cell centroids edge midpoints.

67

For projection methods, one typically tries to define G as the skew-adjoint operator of
D with respect to a suitable inner product.
For a Cartesian grid it is common, see, e.g., Bell et al. [20], to use the inner product

(, ) =

ij ij h2 .

ij

For cut cells, the situation is more complicated. We define spaces S1 and S2 for cell and
edge centered variables as

S1 := ij cell centered ,
n

y
x
centered on y edges .
S2 := = ( x , y ) i+1/2,j
centered on x edges, i,j+1/2

Then, D : S2 S1 and G : S1 S2 . As discrete inner product on S1 , we use

(, )S1 =

ij ij Vij ,

ij

where Vij denotes the cell volume. It is non-trivial to define an inner product on S2 . We
use the bilinear form

(, )S2 =

x
i+1/2,j
xi+1/2,j i+1/2,j +

x edges

y
yi,j+1/2 i,j+1/2 ,
i,j+1/2

y edges

with
i+1/2,j = i+1/2,j xy,

i,j+1/2 = i,j+1/2 xy.

We note that this is a somewhat arbitrary pick and does not correspond to a suitable
inner product on S2 . This definition results in the gradient being given by

i+1,j i,j

Gx i+1/2,j

Gy i,j+1/2

68

i,j+1 i,j
y

(2.7)

This operator G is not useful as a gradient operator. For a cut cell, the y coordinates
of the centroids of cells (i + 1, j) and (i, j) typically differ, which is not captured by
Gx i+1/2,j . But it works well when used in the projection. This gradient operator was
also used by Almgren et al. [8] in the MAC projection. (For the cell centered projection
a finite element approach was employed.)
Recently, we were made aware of the work by Lipnikov et al. [86]. Among other
things, the authors deduce a gradient operator, which is the skew-adjoint operator of
the divergence, on general polyhedral meshes. In the future, we plan to apply the very
general definition given in this work to the case of a cut cell and to test the resulting
operator numerically. We expect the resulting gradient operator to be more complicated
than the currently used G but to be more accurate and to result in a more favorable
matrix DG.

2.3.2.3

Interpolation operators I1 and I2

The interpolation operator I1 is defined as map

I1 : (cut) cell centroids edge midpoints.

For the projection algorithm on Cartesian grids, simple averaging is used. On edges away
from the embedded boundary, i.e., for an edge between two Cartesian cells, we keep this
operation. For edges between cut cells or between a cut and an irrflow cell, averaging is
not accurate enough. Instead we fit a bilinear polynomial

p(x) = a + bx + cy + dxy

through the centroids of four cells and evaluate the polynomial at the appropriate edge
midpoints. This is illustrated in Figure 2.2, which shows the four cells used in the
polynomial fit to interpolate to the edge marked in red.

69

Figure 2.2: The values at the four marked cell centroids are used to fit a bilinear polynomial, which is evaluated at the edge midpoint marked with a red bar.
In the case of all four cells being uncut Cartesian cells, this procedure reduces to
averaging the lower two cell values. Therefore, this approach for interpolation on cut
cells is consistent with the averaging used on Cartesian cells.
The interpolation operator I2 is defined as map

I2 : edge midpoints (cut) cell centroids.

This interpolation operator will be used to interpolate the gradient components from
the x and y edges to the cell centroids. For Cartesian cells (also for irrflow cells) we use
averaging, e.g.,
(I2 Gx )ij =

(Gx )i+1/2,j + (Gx )i1/2,j


.
2

On cut cells we again have the problem that this is not accurate enough. Instead we use
polynomial interpolation.
The implementation details for this interpolation operator are more complicated than
for I1 . Figure 2.3 shows three possible situations. The goal is to interpolate values from
the center of x edges to the centroid marked with a gray circle. To do so, we use the
values at the x edges marked with a red bar. Depending on whether we have four or
three values available in the close neighborhood of the cell with the marked centroid, we

70

(a) bilinear

(b) bilinear

(c) linear

Figure 2.3: Illustration of the interpolation operator I2 : the values at the edge midpoints
marked with red bars are used to determine a polynomial, which is then evaluated at
the cell centroid marked with the gray circle. In situations (a) and (b) we use a bilinear
polynomial, for (c) a linear polynomial is used.
either fit a bilinear polynomial a + bx + cy + dxy or a linear polynomial a + bx + cy.

2.3.2.4

Numerical results for the projection step

We now test the accuracy of the projection using the adjustments on cut cells we
just described. As test problem we use the interior of a circle (compare Figure 1.7). For
this geometry, one possible incompressible velocity field with the appropriate boundary
conditions is given by u = (2y, 2x)T . We disturb this velocity field to u + , where
represents a scalar field. Then we test how well the projection removes the perturbation,
i.e., we compare the projected velocity field with u = (2y, 2x)T .
The result is shown in Table 2.1. We observe second order in the L1 norm. The
convergence rates in the L norm seem to depend on whether the perturbation is of
the form f1 (x) + f2 (y) or whether there is more interaction between the x and y terms.
In the first case, we observe second-order convergence in the L norm in this simple
test, in the latter case, first-order convergence.

71

Table 2.1: Accuracy of the projected velocity field compared to u = (2y, 2x)T . The
errors for u and v are the same.

2.4
2.4.1

L error

perturbation

Grid

L1 error

1 + 0.8x + 0.1y

322
642
1282
2562

0
0
0
0

1 + 0.2x + 0.3y + 0.4xy

322
642
1282
2562

4.98e-04
1.69e-04
4.32e-05
1.16e-05

1.56
1.96
1.90

1.50e-02
7.72e-03
3.71e-03
2.00e-03

0.96
1.06
0.89

sin(x) + sin(y)

322
642
1282
2562

2.48e-03
6.34e-04
1.60e-04
4.03e-05

1.96
1.98
1.99

3.07e-03
7.67e-04
1.96e-04
4.89e-05

2.00
1.97
2.00

sin(x) sin(y)

322
642
1282
2562

1.48e-03
4.55e-04
1.19e-04
3.14e-05

1.70
1.94
1.92

2.03e-02
1.04e-02
5.03e-03
2.66e-03

0.96
1.05
0.92

order

order

0
0
0
0

Numerical results
Implementation aspects

For testing the full projection algorithm we use the same software setup as described
in Section 1.4.1. The main work for the advection step had already been implemented for
our tests in Chapter 1. We extended the existing algorithms by a routine that predicts
the velocities on the edges.
For the cell centered projection and the MAC projection we started with a working
projection for Cartesian grids provided by the CCSE group. It uses a multigrid (MG)
solver to solve the corresponding Poisson problem. To make the projection work on cut
cells, we implemented the interpolation operators presented in Section 2.3.2.3 and the
divergence and gradient operators presented in Sections 2.3.2.1 and 2.3.2.2. During these
tasks, we were supported by members of the CCSE group.
We only use cut cell geometry on the finest MG level. On coarser levels, cut cell

72

geometry can lead to split cells, which causes additional problems. In our initial tests,
this approach overall worked well. But it might be necessary in the future to adjust the
MG solver on all levels to the geometry of the embedded boundary.
In our numerical test, the initial velocity field is computed by an initial cell-centered
projection. To determine a suitable pressure gradient, initial pressure iterations are used.
Here, several iterations of our 2-step algorithm are taken (consisting of advancing the
velocity field and applying the projection). Afterwards, the velocity field is reset to the
initial data. For theoretical justification see Bell et al. [18, 20].

2.4.2

Flow past a half-cylinder

We solve the incompressible Euler equations given by

ut + (uu) + p = 0,
u = 0,

on embedded boundary grids. In addition, we solve for a


passively advected tracer determined by

st + (us)x + (vs)y = 0.

This test problem is an adapted version of a test from


Figure 2.4:

Flow past a

Almgren et al. [8]. The geometry for this problem is shown


half-cylinder in a channel.
in Figure 2.4. The test domain is [0, 8] [0, 24] and a halfcylinder with diameter D = 2.0 is used. There are inflow and outflow boundary conditions at the lower and upper y edge, respectively, and slip wall boundary conditions on
both x edges. The inflow velocity is v = 1. The initial velocity field is computed by an
initial projection. We add a small perturbation to break the symmetry. The scalar is
advected in from the low y edge.

73

(a) vorticity

(b) passive scalar

Figure 2.5: Flow past a half-cylinder.

74

Figure 2.5 shows the vorticity and the passively advected scalar for a 96288 resolution at time T . The final time T was chosen such that the flow is periodic but before the
errors arising at the high y outflow boundary dominate. (To be able to run to a later
time T , we actually use the test domain [0, 8] [0, 48] and run with six patches of the
size 962 in parallel.)
In [8], the Strouhal number given by Df /U is calculated with U = 1 denoting the
free-stream velocity and f being the vortex shedding frequency. We measure a Strouhal
number of 0.29, which is very similar to the 0.31 measured in [8].

2.5

Conclusions and future work

We have presented initial results for extending a projection algorithm from Cartesian
grids to embedded boundary grids. Here, we relied on the mixed explicit implicit time
stepping scheme developed in Chapter 1.
First numerical results are promising but there are still many open questions. Initial
numerical tests and theoretical considerations indicate that the discretization of the
nonlinear velocity term (uu) is only first-order accurate for cut cells. For this term,
boundary integrals over the cell edges are evaluated using the midpoint rule. Then, these
terms are summed up and the sum is divided by the cell volume. Due to this division,
accuracy is lost. On Cartesian cells, this is not an issue as error cancellation is more
favorable. For cut cells, one solution might be to use a higher order quadrature rule, such
as the two point Gaussian quadrature rule. Additional work will be needed to examine
this possibility more closely.
Also, further tests for the projection step and the development of a fully second-order
projection (with respect to both the L1 and L norm) are probably necessary. We did
initial tests replacing G = DT by a more accurate gradient operator, which however
does not correspond to the skew-adjoint of D. Another approach is to follow Lipnikov et
al. [86]. Further tests will be needed to assess whether one of these two approaches will

75

lead to a more suitable definition of G than the currently used one, but it seems likely.
A distant future goal is to extend this algorithm to three dimensions and to the solution of the Navier-Stokes equations. So far, we only used algorithms that extend to three
dimensions in a straightforward way. This will also be a main design criteria for future
algorithm improvements. For the extension to Navier-Stokes equations, we additionally
need to solve an elliptic problem in each time step. We already solve an elliptic equation
in each iteration (for the projection), but with a different type of boundary conditions.
Future research will be necessary to assess the possibilities of extending the approach
taken in the projection step appropriately.

76

Chapter 3

The LP limiter
3.1

Introduction

In this chapter we focus on slope reconstruction and limiting for embedded boundary
grids in two dimensions. On flow cells standard one-dimensional limiters [82, 104] can
be applied to the x and y direction separately. This is not the case for cut cells, since
the centroids are typically not coordinate-aligned and therefore the x and y direction do
not decouple.
Typically a scalar limiter is used on cut cells. This limiter multiplies both the x and
y slope with the same scalar factor . It was introduced for unstructured triangle grids
by Barth & Jespersen [16], with less diffusive versions of the scalar limiter developed in
[17, 94]. More multi-dimensional limiter versions, partly tailored to the special structure
of a triangle, have been proposed in [39, 70, 75, 85, 107]. Additionally, ENO/WENOtype schemes have been developed for unstructured grids [3, 54, 68, 93]. For cut cells,
however, we are not aware of a limiter of this type.
Here, we present a less diffusive alternative to the scalar limiter, the LP limiter.
This new limiter is linearity-preserving and inherently two-dimensional. It limits the x
and y slope separately by using two different scalar factors x and y . Due to the non-

77

coordinate-aligned geometry of cut cell centroids, x and y do not decouple but need
to be determined together. The limiting is formulated as a tiny linear program (LP) as
suggested by Berger et al. [28]. Such an LP needs to be solved on every cut cell in every
time step. To do that efficiently we use the all-inequality Simplex method, introduced to
us by Margaret Wright.
The idea of formulating a limiter as an optimization problem is also the main ingredient for several limiters developed for unstructured triangular and quadrangular grids.
Hubbard [69, 70] examines the possibilities of using a projection approach or a quadratic
programming (QP) problem to enforce the reconstruction to stay within a designated
maximum principle region. Both Hubbard and Buffard & Clain [31], who propose a new
slope reconstruction method for the MUSCL scheme based on a minimization procedure,
do not provide a general optimization method but use a customized solution strategy for
the respective optimization problems. In [67], Hoteit et al. develop a limiter for discontinuous Galerkin methods based on solving least squares problems with linear equality
and inequality constraints, and provide a general optimization algorithm for their solution. However, the solution of a constrained least squares problem is significantly more
expensive than the solution of our specific LPs by means of the all-inequality Simplex
method.
The LP limiter presented here is actually more a limiter framework than a specific
limiter. The choice of the monotonicity constraints influence the accuracy and robustness
of the limiter. In the following we will examine various formulations to determine suitable
monotonicity constraints on cut cells, both theoretically and numerically.
Much of this chapter has been published in a modified form by May & Berger [87].
That paper also includes results using the LP limiter on unstructured, triangular grids
using a variety of monotonicity constraints. In addition, the recent MLP-u1 limiter by
Park et al. [94] was tested. The LP limiter did well in these tests, and in particular
confirmed its second-order accuracy for smooth test problems.

78

This chapter is structured as follows. In Section 3.2 we introduce the idea of the LP
limiter and discuss the suitability of various monotonicity constraints for cut cells. In
Section 3.3, we compare optimization algorithms for solving linear programs and provide
details for our method of choice, the all-inequality Simplex method. Numerical results for
the LP limiter on embedded boundary meshes are presented in Section 3.4. We conclude
with thoughts about extending the LP limiter to three dimensions. In Appendix A we
show a non-negativity result for linear advection on cut cells using the LP limiter.

3.2

Description of LP limiter

Typically, slope reconstruction on a cell M consists of two steps:


1. compute an initial gradient (Dx , Dy ) for cell M , and
2. limit the initial gradient appropriately.
In Step 2, the scalar limiter computes a limited gradient (Dx , Dy ). For the LP limiter,
the limited gradient has the form (x Dx , y Dy ). Both limiters enforce certain monotonicity constraints. We will present details for the two limiters and discuss suitable
monotonicity constraints for cut cells. For concreteness, however, we first describe the
computation of the initial gradient estimate.

3.2.1

Unlimited slope reconstruction

For the computation of the initial gradient estimate (Dx , Dy ), we use a standard least
squares approach [15]. Consider a cut cell M with centroid (xM , yM ) and cell value sM
that has three neighbors with centroids (xi , yi ) and cell values si , i = 1, . . . , 3, as shown

79

in Figure 3.1. We define

y1 yM
s1 sM

Dx

y2 yM
s2 sM

Dy

x1 xM

r = x2 xM

x3 xM

(3.1)

s3 sM

y3 yM

and find (Dx , Dy ) as the least squares solution of minDx ,Dy krk2 . This approach is exact
for linear functions. When formulating suitable monotonicity constraints we will focus
on preserving this property in the limiting step. On distorted meshes, the least squares
approach is somewhat more accurate than the Green-Gauss approach [4, 14].
For the gradient estimation, only edge neighbors of a cut cell are used, except for a
triangular cut cell. Since the latter has only two edge neighbors, the diagonal neighbor
is included. This ensures that we always use at least three pieces of information in (3.1)
for the two-dimensional case.

(xM , yM )
(x1 , y1 )

(x3 , y3 )

(x2 , y2 )

Figure 3.1: Slope reconstruction on blue cell.

3.2.2

The scalar limiter

The limited reconstruction using the scalar limiter has the form

s(x, y) = sM

Dx x xM
+

Dy
y yM

80

with [0, 1]. For each of the given monotonicity constraints (discussed in Section
3.2.4), a value i [0, 1] is determined such that the constraint is fulfilled. Then =
mini i . The possibility of sequentially enforcing the monotonicity constraints makes the
implementation of the scalar limiter very easy. The price is unnecessary diffusion.

3.2.3

The LP limiter

The LP limiter uses two different scalars x , y [0, 1] to reduce the numerical
diffusion. This results in a reconstruction of the form

s(x, y) = sM

x Dx x xM
+
.

y yM
y Dy

(3.2)

For a coordinate-aligned mesh, x and y decouple. This is not the case for a cut cell. We
cannot sequentially enforce the monotonicity constraints as done with the scalar limiter.
The reason is that the scalar limiter only changes the length of the initial gradient,
whereas the use of (x , y ) rotates the gradient.
Instead, following [28], the limiter is formulated as a constrained optimization problem: retain as much of the unlimited gradient as possible while fulfilling the monotonicity
conditions. We use the l1 -norm to measure the difference between the limited and unlimited gradient. The objective function is given by

min |Dx x Dx | + |Dy y Dy |

x ,y

= (1 x )|Dx | + (1 y )|Dy |
= |Dx |x |Dy |y + constant term,

(3.3)

where the constant term is |Dx | + |Dy |. We used 0 6 x , y 6 1 in these manipulations.


To obtain a linear program, we formulate the constraints as linear inequalities in

81

(x , y ). This results in a problem of the form

min |Dx |x |Dy |y

x ,y

subject to

> b,

(3.4)

with A Rk2 and b Rk .

3.2.4

Monotonicity constraints

We now present two sets of monotonicity constraints that are suitable for cut cells:
the more strict standard constraints and the relaxed constraints.

Standard constraints
In one space dimension, the minmod slope limiter reconstructs to the two neighboring
centroids and makes sure to not over- or undershoot the neighboring value. The standard
constraints are a two-dimensional generalization of this idea.
For concreteness, let j = 1, . . . , N denote the cells where a monotonicity constraint
should be enforced. Typically, these are the edge neighbors of cell M . The constraints
are given by

(xj xM )Dx x
min(sM , sj ) 6 sM +
6 max(sM , sj ), for j = 1, . . . , N.
(yj yM )Dy
y

(3.5)

In words, we reconstruct to the centroid of a cell j and make sure to not exceed the
minimum and maximum value taken over the value of cell j and the value of cell M .
This is illustrated in Figure 3.1.
To use the LP formulation for limiting, we need to rewrite the constraints as linear
inequalities. For this purpose, we distinguish the cases sM 6 sj and sM > sj and

82

reformulate the constraints as

if sM 6 sj :

(xj xM )Dx x

> (sj sM ),
y
(yj yM )Dy

(xj xM )Dx x
> 0,

(yj yM )Dy

if sM > sj :

(xj xM )Dx x

> 0,
y
(yj yM )Dy

(3.6b)

(3.6a)

(3.6c)

(xj xM )Dx x
> sj sM .

y
(yj yM )Dy

(3.6d)

For each cell neighbor j we determine whether sM 6 sj . If this is the case, we add
inequalities (3.6a) and (3.6b) to the LP. Otherwise, we add constraints (3.6c) and (3.6d)
to the LP. In addition, A and b also contain the constraints 0 6 x , y 6 1. The
dimension of A and b in (3.4) depends on the number of constraints one wants to enforce.
Typically, k is on the order of 10 to 15.

Relaxed constraints
A less strict alternative to the standard constraints, which is especially popular on triangular
meshes, is to reconstruct to the edge midpoint instead of to the neighboring centroid. In one dimension this corresponds to using the MC limiter instead
of the minmod limiter. For cut cells, however, this
approach might limit even a linear function, since
typically the edge midpoint does not lie on the line
connecting the cell centroids as pictured in Figure
3.2. If the level lines of a linear function are aligned

83

Figure 3.2: For cut cells, the edge


midpoint typically does not lie on
the line connecting neighboring
centroids.

with this line, the value at the edge midpoint will be a relative extremum and the limiting
will become active.
To mitigate this problem, some approaches reconstruct to the edge midpoints but
limit using the min and max over all neighboring cells [16]. Geometrically it corresponds
to extending the convex hull depicted in Figure 3.2 as a line to a polygon spanned by the
centroids of all cells used in the min/max computation. This approach will be linearitypreserving if and only if the edge midpoints lie in this extended convex hull, compare
Swartz [103]. This is not true, however, for a cut cell with triangular shape. Consider
for example Figure 3.2 and assume that only the left edge neighbor and the (not drawn)
upper edge neighbor are used for limiting. Then, the edge midpoint marked with a
square does not lie in the convex hull spanned by these two centroids and the triangular
cells centroid.
In our definition of relaxed constraints, we therefore keep reconstructing to the neighboring centroids but limit using the min and max over all neighboring cells. The constraints are then given by

(xj xM )Dx x
min(sM , s1 , ... . . . , sN ) 6 sM +
6 max(sM , s1 , . . . , sN )
(yj yM )Dy
y

(3.7)

for j = 1, . . . , N .
We note that for both the standard and relaxed constraints, the resulting LP limiter
will be linearity-preserving. The accuracy of these two formulations will be compared
numerically later in this chapter.

Limiting at the boundary edge midpoint


The boundary edge midpoint does not lie in the convex hull spanned by the centroids,
so any constraint of the form used for the other edge midpoints might lead to limiting
a linear function. Therefore, we do not enforce such a constraint. In some situations it

84

is necessary to ensure non-negativity. For example when simulating the Euler equations
pressure and density should not become negative. To address this issue, we add the
constraint

sM

(xB xM )Dx x
+
> 0,
y
(yB yM )Dy

(3.8)

where (xB , yB ) denotes the boundary edge midpoint. The non-negativity result presented
in Section 3.2.6 and the result in Appendix A include the addition of this constraint.
This concludes the discussion of the specific LPs used for limiting. We will either
use the standard constraints (3.6) or the relaxed constraints (3.7) in the LP of the form
(3.4). In addition, 0 6 x , y 6 1 is enforced and the non-negativity constraint at the
boundary edge midpoint (3.8) might be used.

3.2.5

Solvability and boundedness of the LPs

All our constraints are formulated such that (x , y ) = (0, 0) is a feasible point.
The point (0, 0) corresponds to the zero gradient, i.e., to not reconstructing a slope.
Therefore, there exists at least one feasible point. Furthermore, since 0 6 x , y 6 1,
the feasible set is bounded. These two facts imply that there must exist a bounded
optimal solution for each LP on every cut cell by the Fundamental Theorem of Linear
Programming [91].

3.2.6

A convex hull argument

Both the standard and the relaxed constraints only limit the reconstruction evaluated
at the neighboring centroids. It might be possible that the reconstruction evaluated at
the edge midpoints, which is used in the flux computation, is a relative extremum and
might become negative. For planar geometry, a straightforward but tedious geometry
analysis (not included here) shows the following Lemma.

85

(a) convex hull for cut


cell

(b) convex hull for Cartesian neighbor of cut cell

Figure 3.3: For a cut cell, all edge midpoints are contained in the convex hull of neighboring centroids and the boundary edge midpoint. For a Cartesian neighbor, this might
not be the case for the respective convex hull.
Lemma 3.1. All edge midpoints of a cut cell lie in the convex hull spanned by the
neighboring centroids and the cut cells boundary edge midpoint.
This is illustrated in Figure 3.3(a). We note that the convex hull here includes the
boundary edge midpoint. Therefore, this convex hull is different from the one considered
in the discussion of the relaxed constraints.
A linear function evaluated over a convex hull attains the maximum and minimum
values at the corners of the convex hull. Consequently, Lemma 3.1 implies that the
reconstruction evaluated at the edge midpoints is bounded by the max and min over
the centroid values and the value at the boundary edge midpoint. Assuming that all
neighboring cells values are non-negative and that the boundary constraint (3.8) is
included, non-negativity at the edge midpoints is guaranteed.
In Appendix A, the boundary constraint (3.8) and Lemma 3.1 will be used to prove
that for the linear advection equation and non-negative data at tn , the value on a cut
cell at time tn+1 will also be non-negative under certain conditions.
The Cartesian neighbor of a cut cell also has an irregular stencil and needs special
treatment. (In Chapter 1 we referred to these cells as irrflow cells.) One possibility

86

E
W

Ecen

Figure 3.4: Idea of recentering: instead of E, Ecen is used to determine the x slope.
is to use the LP limiter on these cells as well. Analogous to Lemma 3.1, we examined
whether the four edge midpoints are contained in the convex hull of the four neighboring
cells centroids. Unfortunately, this is not true in general. An example of this is shown
in Figure 3.3(b). Additional constraints would be necessary to guarantee positivity in
these cases. Though additional constraints can easily be included in the LP framework,
there is a cheaper option for this relatively regular cell which is presented next.

3.2.7

A recentering approach

An alternative to using the LP limiter is the recentering approach [28, 76]. In recentering, the location of the point where the limiter is applied is altered, so that a
one-dimensional limiter can be applied. To do so, one makes use of the fully limited
gradient on cut cells, which is computed first.
The main idea in recentering is illustrated in Figure 3.4. We focus on reconstructing
a limited x slope, since in the situation shown, a standard one-dimensional limiter can
be used for the y slope. The problem is that the cell centroids W , M , and E do not
have the same y coordinate. Instead of E, we use the point Ecen for limiting, which
does have the same y coordinate as W and M . This reduces the limiting problem to
a one-dimensional problem on a non-uniform grid (as the distances between W and M
and between M and Ecen differ). One possibility is to use the minmod limiter (recall
87

(1.5)) resulting in the x slope


sEcen sM
sM sW
.
,
minmod
x
x(Ecen ) x(M )


To obtain a value at Ecen , we use the fully limited gradient on the cut cell E and
evaluate the linear reconstruction of cell E at Ecen . We note that even in the case of
the slimmest triangle, the point Ecen lies within the cell and in particular within the
convex hull guaranteeing non-negativity. This in turn guarantees non-negativity of the
reconstruction on cell M at the edge midpoint that lies on the line connecting M and
Ecen (assuming non-negative cell values). Also, this procedure is linearity preserving.

3.3

Solution of the LPs

In this section we focus on the efficient solution of the LPs in our limiter. We first
compare standard optimization algorithms used to solve linear programs and then present
the scheme that is most suitable for our purposes, the all-inequality Simplex method.

3.3.1

Comparison of solution algorithms

The LP limiter is based on solving an LP of the form

min cT x,
x

subject to Ax > b,

with c, x R2 , A Rk2 , b Rk , and k depends on the geometry of the cut cell and the
constraints chosen, but is typically between 10 and 15. Such a problem must be solved on
every cut cell in every time step, or several times per time step for a multi-stage method.
Therefore, an efficient solution algorithm is crucial for the limiter to be practical.
The two standard methods for solving LPs are the Simplex method and the Interior
Point method, see, e.g., Nocedal & Wright [91]. The Simplex method starts at a corner of

88

the feasible set and then moves (along the edges) from corner to corner until it reaches
an optimal vertex. The Interior Point method starts with a strictly interior point of
the feasible set, computes iterates that lie strictly in the interior, and only approaches
the boundary in the limit of approaching the optimal point. We tried both methods
and concluded that the Simplex method is much more suitable for our specific problems
due to the choice of the starting point and the cost of the algorithm determined by the
number of iterations and the expense of each iteration.
It is usually non-trivial to find a suitable starting point for the Simplex method. One
common way is to solve a Phase-I problem [91] in addition to solving the actual LP.
The solution of the additional problem is roughly as expensive, which doubles the cost.
In our case, we have a starting point free of charge. The point (0, 0), corresponding to
the zero-gradient, is a vertex of the feasible set and therefore a suitable starting point. It
is non-trivial, however, for our LPs to find a strictly interior point to be used as starting
point for the Interior Point method.
Once a starting point is found, the cost of the algorithm is determined by the number
of iterations needed and the cost of each iteration. In terms of the latter, the Interior
Point method is more expensive than the Simplex method as the matrix that needs to
be inverted in each iteration is significantly larger. The number of iterations needed for
both methods was roughly the same in our tests.
Typically, the Simplex method is presented for an LP of the form

min dT x,

subject to F x = g, x > 0.

The all-inequality form is mathematically equivalent to this, and can be transformed


to it by means of slack variables. Then, the standard Simplex algorithm, as, e.g.,
presented by Nocedal & Wright [91], can be used. However, the resulting computation
is not very fast, since in each iteration two linear systems need to be solved, and their
size depends on k, the number of original constraints. We typically solve several million

89

LPs during the course of a simulation. This situation is to some extent contrary to the
classical LP situation, where a very large LP with hundred of thousands of variables
needs to be solved only a few times. We need to solve tiny LPs, but we need to solve
them very often.
For our situation, the all-inequality Simplex method, introduced to us by Margaret
Wright, is much more suitable. The idea is the same as for the standard Simplex method:
the algorithm moves along the boundary of the feasible set from corner to corner. The
mathematical details differ as the algorithm is based on the all-inequality standard form.
As a consequence, the two linear systems that need to be inverted in each iteration are
only 2 2 systems (for our case of A Rk2 ). This makes each iteration significantly
cheaper than for the standard Simplex method, while the number of iterations stayed
the same. Therefore, the all-inequality Simplex method is our method of choice for these
specific LPs.
The all-inequality Simplex method is not widely known. The only description we
know of is by Gill et al. [57]. Since this book is out of print, the algorithm is included
in the Appendix of [87] and will be presented here as well. We follow the description by
Gill et al. .

3.3.2

The all-inequality Simplex algorithm

We consider an LP in the all-inequality standard form:

min cT x
x

subject to

Ax > b.

For more generality, c, x Rn , A Rmn , b Rm , n 6 m, and rank(A) = n. In our


case n=2 and m is typically 1015. The Simplex method is an iterative algorithm with

xk+1 = xk + k pk .

90

(3.9)

In each iteration, the step length k and the descent direction pk need to be determined.
We use the following notation:
Working set Wk : Set of (exactly) n indices, each of which is the index of a constraint
that is active at xk .
Working set matrix Ak : n n matrix consisting of rows numbered 1 , . . . , n of
A, where Wk = {1 , . . . , n }. We denote this

T
a1

.
Ak = .. ,

and

aTn

b1

.
bk = .. ,

bn

where aTi denotes the ith row of A. Ak needs to be non-singular.


Set of decreasing constraints: For a given descent direction pk , the set of decreasing
constraints Dk is defined by
Dk = {i : aTi pk < 0}.

A vertex of the feasible set is non-degenerate if exactly n constraints are active at


this vertex. In this case, the working set Wk is uniquely determined. The vertex is
degenerate if more than n constraints are active. This is the case for our LPs and it can
lead to cycling. We did not observe this behavior in any of our two-dimensional tests,
see also the more detailed discussion in Section 3.3.3.
One iteration of the all-inequality Simplex algorithm consists of:
Algorithm 3.1. Let xk be a vertex of the feasible set satisfying Axk > b and let Wk be
a working set such that Ak is non-singular and Ak xk = bk .
1. Calculate the Lagrange multipliers k Rn by solving ATk k = c.

91

2. Examine the Lagrange multipliers k :


If k > 0, STOP. In this case, the point xk is optimal.
Otherwise select q such that (k )q < 0. This constraint will be removed from
Wk . (Details on how we choose q are given below.)
3. Calculate the descent direction pk from Ak pk = eq , eq = q th coordinate vector.
4. Choose the step length k to be taken along pk :
(a) Find the set of decreasing constraints along pk given by
Dk {i : aTi pk < 0}.
(Note that by the definition of pk , aTi pk = 0 i Wk , i 6= q, i.e., indices that
are supposed to stay in the working set will not be contained in Dk .)
(b) If Dk = , STOP. In this case, the problem is unbounded. (This will never
be the case for our special LPs, since the constraints 0 6 x , y 6 1 guarantee
a bounded feasible domain.)
(c) For all i Dk calculate the maximum step length i that can be taken before
violating constraint i:
i

aTi xk bi
.
aTi pk

(d) Calculate the largest step length possible that does not violate any constraints
as
k min (i ).
iDk

5. Update
(a) the variable x: xk+1 xk + k pk ,
(b) the working set:

92

i. Determine the set of blocking constraints Sk which contains all indices i


such that i = k .
ii. From Sk , choose a constraint t to be added to Wk . (For a non-degenerate
vertex, Sk only contains one index. Details on which t to choose for our
LPs are given below.)
iii. Wk+1 Wk {q} + {t},
(c) the working set matrix: Ak+1 Ak with row t replacing row q of A,
(d) the iteration count: k k + 1.
The algorithm assumes the existence of a suitable starting point. This is not an issue
for our specific LPs. We will therefore not discuss this point further.

3.3.3

The all-inequality Simplex method applied to the LPs used in


the LP limiter

We now discuss our choices for constraint deletion and addition and some numerical
issues we encountered for solving the LPs used in the limiting step.

Determining the leaving index q and entering index t


It can happen that there exist several indices i such that (k )i < 0. We follow
Dantzigs original rule of defining the most negative component of k to be the leaving
index q in Step 2.
For a non-degenerate vertex xk+1 , the entering constraint t is uniquely defined. But
for our degenerate LPs it can happen that several constraints (that are currently not in
Wk ) block the step at exactly the same maximum step length k . In this case, we choose
the constraint with the lowest index to enter the working set for Wk+1 .

93

Degeneracy and cycling


We use the zero-gradient, corresponding to x0 = (0, 0), as starting point for the
algorithm. We initialize W0 with the indices corresponding to the conditions x10 , x20 > 0.
Any constraint of the form (assume WLOG sM 6 sj )

(xj xM )Dx x
> 0

(yj yM )Dy

(3.10)

will be active at the starting point, but not be part of the working set. Therefore, the
LP is degenerate.
The main problem with degenerate LPs is that they could encounter cycling: The
search direction is computed such that it does not violate any of the constraints in the
working set Wk \ q. If a constraint j is active but not in the working set (as, e.g., for
the starting point), one can end up with a search direction violating that constraint.
Therefore, the step length k will be determined to be zero, j will be added to the
working set and one index will be removed. In other words, the algorithm does not move
along the boundary of the feasible set in this step, but just replaces the indices in the
working set. This can lead to a cycle in which the algorithm changes the working set in
each iteration but does not move.
We did not encounter this issue in any of our numerical tests in two dimensions,
during which we solved a very high number of LPs coming from cut cells with differing
geometry and different data.

Numerical issues
In Step 3 of Algorithm 3.1, the search direction pk is determined by solving Ak pk = eq .
If we solved that system exactly, then aTi pk = 0 for i Wk , i 6= q, i.e., for all indices in the
working set, which are supposed to stay in the working set in this iteration. Therefore,
none of these indices should qualify for the set of decreasing constraints Dk , out of which

94

the index is determined that will enter the working set Wk+1 in exchange for q.
Numerically, however, we found that aTi pk = with small but not identically zero.
This led initially to the problem that sometimes a constraint ended up twice in the
working set: in addition to staying in the working set, the constraint also entered the
set of blocking constraints and was chosen as the new constraint to enter Wk+1 . To
avoid this case (which would not occur in exact computations), we do not check whether
aTi pk < 0 but whether aTi pk < 1011 in the computation of Dk in Step 4. This worked
well in all our two-dimensional tests.

3.3.4

Cost of the LP limiter

The cost of the LP limiter essentially depends on the number of iterations in the
Simplex algorithm. In all our two-dimensional tests, the average number of iterations
was between 2 and 3.5, and 2.5 iterations was typical. The maximum was always 6 or
less.
Each iteration of the all-inequality Simplex method is very cheap. It consists of
solving two two-by-two systems and checking each constraint for a possible violation
by the proposed step. This corresponds to more floating point operations than the
scalar limiter, but it is approximately equivalent in terms of data motion. Therefore,
we count one iteration of the all-inequality Simplex method as roughly equivalent to the
computational cost of the scalar limiter.
For both the scalar and LP limiter one first computes a least squares gradient, so
this part of the work is identical. In sum, we estimate the cost of slope reconstruction
using the LP limiter to be about 2.5 times the cost of slope reconstruction using the
scalar limiter. We also like to note that the LP limiter is embarrassingly parallel.

95

3.4

Numerical results

Here we present numerical results comparing the LP limiter with the scalar limiter.
We first show results for a smooth steady-state test problem. Then we present results
for the time-dependent simulation of shocked flow diffracting around a cylinder. The
numerical methods used for time stepping are described in the respective sections.

3.4.1

Smooth test case: supersonic vortex

We consider the case of inviscid, isentropic, supersonic flow between concentric arcs
as presented in Aftosmis et al. [4]. Since the flow is shock free, a limiter is not needed for
this test problem. But this way we can compare the unlimited solution to the solution
using the two different limiters. Also, there exists an analytic solution for this test
problem.
As this is a steady-state problem, we can use local time stepping and avoid the small
cell problem. We use the second-order TVD Runge-Kutta method due to Gottlieb &
Shu [58]. To solve ut = f (u), this two stage method is given by:
u = un + tf (un ),
1
1
un+1 = un + (u + tf (u )) .
2
2
The limiting is performed on the primitive variables, not the conserved variables, and
the van Leer flux function is used.
The grid for the simulation is shown in Figure 3.5. The cells are initialized with the
exact solution and the simulations are run to steady state. We use the same parameters
as [4], Mi = 2.25, inner radius 1.0, outer radius 1.43, and CFL number .9.
In our test, we only limit at the cut cells. If limiting was used on all cells the interior
error would dominate, and we would not be able to see the effect of using different
limiters in the cut cells as clearly. For the unlimited slope reconstruction on Cartesian

96

Figure 3.5: Only slopes on the marked cut cells are limited, using either scalar or LP
limiting.
cells, we use standard central difference quotients on flow cells, and the least squares
formulation on irrflow cells. Also, to minimize the error at the inflow, we specify the
exact fluxes into the first column of cells, and do not limit these cells either.
For the shaded cut cells of Figure 3.5 we use either the scalar or LP limiter, and
compare to the unlimited results and the exact solution. For both the scalar and LP
limiter we use both sets of constraints:
the standard formulation, defined by (3.5), and
the relaxed formulation, defined by (3.7).
For the LP limiter, we also include a positivity constraint at the boundary segment.
Thus, each LP has 4 + 2N + p constraints, where N is the number of neighboring cells
used for limiting and p is 1 for density and pressure and 0 for the velocity variables.
Figure 3.6 shows the error in the L1 norm and L norm for various scenarios. The
solid lines correspond to a least squares fit, the symbols to the measured errors. For a
given set of constraints, the LP limiter leads to significantly more accurate results than
the scalar limiter. For the standard constraints, the LP limiter is about 4-5 times more
accurate in both the L1 and L norm. For the relaxed constraints, the results with the
LP limiter are about twice as accurate in the L1 norm and a factor of 4 better in the
L norm. Note that the LP-relaxed version yields results that are very close to the
unlimited case.
97

10
3

Error

Error

10

10

10

Unlimited

Unlimited

Scstd

Scstd

Screl

10

Screl

10

LPstd

LPstd

LPrel

LPrel

10
mesh width

10
mesh width

(a) L1 error

(b) L error

Figure 3.6: Error in density over the domain for standard and relaxed monotonicity
constraints. The mesh width h on the horizontal axis denotes the length/height of a
Cartesian cell. The unlimited results show second-order convergence in L1 , and h3/2 in
the L norm. The solid lines are the result of a least squares fit, the symbols mark the
measured errors.
As typical for embedded boundaries, the error plots show a zig-zag-behavior, which
is significantly more pronounced for the L error than for the L1 error. Also, for the
unlimited case in the L norm, the error does not converge with full second order but
instead converges like h3/2 . Similar behavior has been observed by other authors before
[26, 42].
Figure 3.7 shows the actual error distribution for density for the scalar and LP limiters, both using the standard formulation. Red represents overshoot, blue undershoot,
and green is negligible error. Both pictures use the same scale. For both limiters, the errors bounce between the two arcs. However, the error for the scalar limiter is significantly
bigger than for the LP limiter.
A common problem when simulating steady-state problems with limiters is limiter
chatter. The convergence stalls due to the activity of the limiter. For both the scalar
and LP limiter we observe this issue, but for the LP limiter it kicks in later.
Venkatakrishnan [110] attributes limiter chatter to a conflict between monotonicity
and convergence to a steady-state. This is consistent with our observations. We ex98

(a) scalar limiter

(b) LP limiter

Figure 3.7: Error in density using the scalar limiter (a) and LP limiter (b) and standard
monotonicity constraints. The grid uses h = (1.43/244) 0.0059. Red represents
overshoot, blue undershoot, and green negligible error.
amined some cells in the inflow area more closely. The values on these cells along the
boundary are slightly increasing with some minor oscillations. However, due to these
minor differences the limiter becomes active for a few cells to guarantee monotonicity. As
a result, the flux to the neighboring cells is reduced (or increased) by a bit. Over several
iterations, the cell value at the neighboring cell becomes smaller (or bigger), changing
the balance, which leads to other limiters becoming active.
Common approaches to reduce limiter chatter are to use a smooth limiter and/or to
avoid clipping smooth extrema, i.e., to not strictly enforce monotonicity [75, 108, 110].
As it is non-trivial to transform the LP limiter into a smooth limiter, we tried the latter
approach and allowed some relative overshoot of the order of 103 . As a result, the
limiter chatter significantly improved, but at the price of allowing overshoot.

3.4.2

Discontinuous test case: shock diffraction from a cylinder

Here we test the behavior of the LP limiter with standard monotonicity constraints
(3.5) on a time-dependent problem with a shock to assess its robustness. This implies
that we need to use a time stepping method that can deal with the small cell problem.
We choose the h-box method [27, 66] for this purpose. For the h-box method and the

99

A
QL

C
M
D

Figure 3.8: Due to the enlarged stencil of the h-box method, the gradient on cell M is
used in the flux computation for the edge marked with the blue square.

LP limiter we need to use more monotonicity constraints than usual for triangular cells.
This is made precise in Section 3.4.2.1. In Section 3.4.2.2, we present numerical results
for a shock reflection from a cylinder.

3.4.2.1

Additional monotonicity constraints for the h-box method

The h-box method solves the small cell problem by essentially enlarging the domain of
dependence of cut cells in a way that enforces a cancellation property that gives stability.
By increasing the stencil, however, a cut cell can be used in the flux computation for
another cut cell that is not an edge neighbor but a diagonal neighbor (with respect to
the underlying Cartesian grid). We enlarge the monotonicity constraints to include these
diagonal neighbors in the limiting process too.
In more detail, for triangular cells it can happen that the slope on the cut cell has
not been sufficiently limited in the direction of that diagonal neighbor. This is shown in
Figure 3.8. The edge between cells A and E, marked with a blue square, uses the h-box
state QL
in solving the Riemann problem to compute the flux. This state is computed
from a linear combination of the solution on the underlying Cartesian grid, in this case
from cells A and M . The gradient QL
is also determined from a linear combination of
the gradients in A and M . The problem is that the gradient in cell M might not have
been limited strongly enough to be used this way. Cell M only has one x face (shared

100

with cell C) in the negative x direction. The other edge neighbor, cell A, has a centroid
for which the difference in the y component, compared to cell M s centroid, is much
bigger than the difference in the x component. As a consequence, the x slope on cell M
might not have been limited strongly enough, and might cause a loss of positivity at the
edge between cells A and E.
This did not cause issues when using the h-box method with the more diffusive scalar
limiter and standard monotonicity constraints. But when using the LP limiter with the
h-box method, in some of our tests we lost positivity.
Therefore, we add monotonicity constraints to the LP at triangular cut cells for any
cell in the 3 by 3 neighborhood of cells surrounding cell M . In our example, monotonicity
equations for cells B, D, and E are added to the LP for determining the gradient on cell
M . Without this, only constraints for A and C would have been used. The additional
equations are of the same form as the standard monotonicity constraints (3.5). (We note
that cells D and E do not participate in the initial computation of the least squares
gradient.) It was very easy to adjust the LPs in this way and we did not observe further
issues for this modified limiting approach.

3.4.2.2

Numerical Results for shock diffraction from a cylinder

We again solve the two-dimensional Euler equations for this test. We consider shock
reflection from a cylinder using the same setup as Helzel et al. [66]. The domain is [0, 1]2 ,
the cylinder has a radius of r = 0.15 and is centered at (0.5, 0.5). A Mach 2 shock starts
at x = 0.2. The state in front of the shock is given by = 1.4, u = v = 0, p = 1. The
mesh for this computation is 302302. This results in 364 cut cells around the cylinder.
As this problem involves a shock, all cells must be limited. We use the MC limiter
for regular Cartesian cells. For cut cells, we use either the scalar or the LP limiter with
standard monotonicity constraints. For the LP limiter, we add the positivity constraint
at the boundary edge midpoint for the density and pressure variables.

101

Figure 3.9 shows contour lines of density at


T=0.30 using the LP limiter. The result using
the scalar limiter is very similar and therefore
not shown here. Using different limiters only
on the cut cells does not impact the solution
strongly enough to influence the density contours at this level.
For a more detailed look, we evaluate the Figure 3.9:

Simulation of shock

solution on the embedded cylinder boundary at diffraction around a cylinder: Density


the final time T=0.30. The results for density contours at T=0.30 for the LP limiter.
(reconstructed to the boundary) as a function
of arc length are shown in Figure 3.10 for both the LP and the scalar limiter on two
different grids. The curve starts at the high density region in front of the cylinder and
goes clockwise until it loops back to the starting cell.
Figure 3.10(a) shows the result for the same discretization as used for the density
contours in Figure 3.9. The maximum peak is 4.11 for using the LP limiter and 3.90 for
the scalar limiter. This corresponds to a 5% difference. We also did computations with a
coarser grid with h .008. The result is shown in Figure 3.10(b). There, the difference
is even more pronounced, and is slightly over 6%. For both grid sizes, the minimum
density values are also slightly lower for the LP limiter than for the scalar limiter.
At first glance it seems that the scalar limiter is doing better at the high density
in front of the cylinder, corresponding to the left and right boundary parts of our onedimensional plots. A more detailed analysis reveals, however, that the LP limiter is more
accurate there as well. Both comparison to results from [66] and computations on finer
grids imply that the solution converges to the lower value of the maximum density.

102

(a) fine grid

(b) coarse grid

Figure 3.10: Simulation of shock diffraction around a cylinder: Density as function of


arc length around the cylinder on a fine and coarse grid, respectively. The LP limiter
gives density at the sharp peak that is 5% higher than the scalar limiter on the fine grid,
and 6% higher on the coarser grid.

3.5

Conclusions and future work

In this chapter, we have presented a limiter that limits the x and y slope of the
gradient independently and that is suitable for the complicated geometry of a cut cell.
It is based on solving a tiny LP in every cell, which we solve very efficiently by means of
the all-inequality Simplex method.
The standard limiter for cut cells, the scalar limiter, limits both slopes with the same
scalar factor . For this approach the constraints can be enforced one after the other,
which is not possible for limiting x and y slope independently. As a consequence, the LP
limiter is roughly 2-3 times as expensive as the scalar limiter, despite its very efficient
setup. In terms of accuracy, the results using the LP limiter are a factor of 2-5 more
accurate depending on the monotonicity constraints, which compensates for the higher
cost.
The LP limiter is really a limiter framework, accompanied by a general algorithm for
the solution of the LPs. Thus, it is easy to modify the constraints for special situations.
This was demonstrated by our modifications for the h-box method no changes besides

103

the additional constraints were needed.


The next step is to extend the LP limiter to three space dimensions and to use
three different scalars (x , y , z ) to limit the three coordinate directions separately.
Consequently, the corresponding LPs will have three variables instead of two and there
will be additional monotonicity constraints, but we can still use the same all-inequality
Simplex method to solve them. Initial tests have found occasional problems with cycling,
however, which was not the case in two dimensions. Even though the LPs used for
limiting are tiny, they are degenerate. Using Blands rule [40, 57] fixed the problem in
our initial tests and seems a promising way to go. Also, we observed some numerical
issues as the three-by-three systems that need to be inverted in the Simplex algorithm
became very ill-conditioned for a few cut cells. We could fix these issues easily though
by introducing an index check, which ensures that a constraint cannot show up twice in
the working set.
In two dimensions, a geometric analysis showed that for planar geometry, the reconstructed solution evaluated at the edge midpoints does not become negative. In three
dimensions, such an analysis would be very complicated, and the claim might not even
be true. In this case, additional positivity constraints would need to be included in the
LP, which can easily be done. Overall, we expect a significant improvement in accuracy
compared to the scalar limiter, which uses the same for all three coordinate directions.

104

Conclusions
We have developed new methods for simulating flow in complicated geometries using Cartesian embedded boundary grids. The dissertation is organized along the three
aspects that we have considered: In Chapter 1 we have presented a new method to solve
the small cell problem for the linear advection equation in two dimensions. The main
criteria for the scheme development has been to guarantee easy extensibility to three
dimensions and to achieve second-order accuracy at the embedded boundary. Our approach is to use an implicit time stepping scheme on the cut cells for stability and an
explicit scheme on cells away from the boundary to avoid excessive cost. The goal of
Chapter 1 has been to find a suitable way to do that.
Theoretical considerations in one dimension show that flux bounding is more favorable than cell bounding. As implicit time stepping scheme we use the trapezoidal rule,
which is a good match with our explicit scheme, the MUSCL scheme. Numerical tests
in two dimensions indicate that the resulting scheme is second order in L1 and between
first and second order along the embedded boundary.
In Chapter 2 we have presented first results for extending an existing projection
method for the incompressible Euler equations from Cartesian to Cartesian embedded
boundary grids. In the first step of the projection algorithm, the velocity field at the
new time is computed without enforcing the incompressibility condition. We have relied
on the algorithm from Chapter 1 to extend this part to cut cells. For the second step of
the algorithm, we have adjusted the operators involved in the projection to embedded

105

boundary grids. We have presented first results using the full projection algorithm for
Cartesian embedded boundary grids.
In Chapter 3 we have developed a new slope limiter for cut cells. Due to the irregular
geometry of a cut cell, standard slope limiters for Cartesian or triangular grids cannot
easily be used. Usually, the scalar limiter is applied, which limits the x and y slope with
the same scalar factor . We have developed a new limiter, the LP limiter, which limits
the x and y slope separately using two scalars (x , y ). The limiter is formulated as
a tiny LP. We use the very effective all-inequality Simplex method to solve the specific
LPs. The LP limiter is somewhat more expensive than the scalar limiter but significantly
more accurate.
We have described plans for future work in the conclusions of each chapter. One
main goal is the extension of the algorithm developed in Chapter 1 and of the LP limiter
to three dimensions. Both schemes have been set up to easily extend to three dimensions
and preliminary three-dimensional versions have been implemented by us.
For the projection algorithm presented in Chapter 2, we need to continue developing
the two-dimensional algorithm before extending it to three dimensions. We have already
identified problems caused by our approach and have ideas how to fix them. We are very
hopeful that this will lead to a higher-order algorithm for solving the incompressible
Euler equations on Cartesian embedded boundary grids.
Another goal for future work is a high performance implementation of our algorithms
for embedded boundary grids. Our software is based on BoxLib [50], which provides
functionality for massively parallel, block-structured AMR applications for Cartesian
grids. Our tests currently run in parallel on desktop computers (with four cores). Taking
care of AMR related aspects along the embedded boundary and running big simulations
on supercomputers will be future work.

106

Appendix A

A non-negativity result
Batten et al. [17] show a non-negativity result for linear advection on triangle grids.
Following their approach, we show a non-negativity result for linear advection on cut
cells when using the LP limiter for slope reconstruction.
Lemma A.1. Consider the two-dimensional linear advection equation

st + usx + vsy = 0.

Let M be a cut cell, where


(i) the gradient on cell M is limited using:
the constraint (3.8) at the boundary edge midpoint,
neighboring centroids (not edge midpoints) using either the standard or the
relaxed version given by (3.5) and (3.7),
(ii) on neighboring cells a limiting equivalent to (i) is used, which guarantees nonnegativity of the reconstruction at the edge midpoints for non-negative data,
(iii) the embedded boundary is planar,
(iv) explicit Euler time stepping is used,
107

(v) the time step satisfies the CFL-like condition

t 6

VM
,
j:unj >0 u nj ej

(A.1)

where VM denotes the volume of cell M , nj denotes the unit normal vector of the
j-th edge of cell M , and ej the length of that edge.
If the data at time tn are non-negative, i.e. sni > 0 i, then sn+1
M > 0.
For the proof of the Lemma A.1 we need information that is provided by the following
Lemma. We will first prove Lemma A.1, assuming Lemma A.2 holds true, and then show
Lemma A.2.
Lemma A.2. Let the assumptions of Lemma A.1 hold and define the linear, LP limited
reconstruction as

sM (x, y) = snM + (x xM )x Dx + (y yM )y Dy .

(A.2)

Then there holds


ML := max sM (mi ) 6 6 snM ,
i

i = 1, . . . , k,

(A.3)

where mi is the midpoint of the ith edge of cell M , and cell M has k edges including the
boundary edge.
Proof of Lemma A.1. We assume that Lemma A.2 is true. The standard finite volume
update for scalar advection on cell M is

n
sn+1
M = sM

k
t X
Fj (
sM (mj ), sj (mj ))
VM j=1

where sM and sj denote the limited reconstruction on cell M and the neighboring cell

108

j, respectively, and

Fj (sL , sR ) =

sL u nj ej

if u nj > 0,

s u n e
j
j
R

otherwise.

Using that sj (mj ) > 0, j = 1, . . . , k, and the bound (A.3) on ML we get

n
sn+1
M > sM

k
t X
Fj (
sM (mj ), 0)
VM j=1

t
VM

= snM

> snM ML

sM (mj ) u nj ej

j:unj >0

t
VM

u nj ej

j:unj >0

t
> snM 1 6
VM

u nj ej .

j:unj >0

The time step constraint (A.1) on t then guarantees that sn+1


M > 0.
The theorem given in [17] for triangles is overall very similar to Lemma A.1 but uses
limiting at the edge midpoints and has the time step constraint

t 6

VM
.
3 maxj |u nj ej |

(A.4)

The main differences in the proofs are:


Bound for maxi s(mi ): for triangles it is straightforward to deduce the bound
maxi s(mi ) 6 3 snM , which is used in [17]. For cut cells the analysis is more
complicated and will be presented in the proof of Lemma A.2. (For a triangle cell
we also use the bound 3snM but the cases of a 4- or 5-sided cut cell imply the larger
bound 6snM .)
Sum: by the divergence theorem, the term

109

j:unj >0 u

nj ej in the time step

C
2

I
y

A
(0, 0)
F

A
(0, 0)
1

(a) 4-sided cell

B
x
(b) 5-sided cell

Figure A.1: Geometry of 4- and 5-sided cut cell.


constraint can be replaced by maxj |u nj ej | for triangular cells. This is not
possible for cut cells, which can have 4 or 5 sides as well.
Before showing Lemma A.2, we provide some basic results about the centroid locations of 4- and 5-sided cut cells.
Lemma A.3. Consider the 4-sided cut cell in Figure A.1(a). For varying between 0
and L, there holds for the centroid location (xC , yC )
1
1
L 6 xC 6 L,
3
2

1
2
y 6 yC 6 y.
2
3

Consider the 5-sided cut cell in Figure A.1(b). For 1 varying between 0 and x and 2
varying between 0 and y, there holds
1
1
x 6 xC 6 x,
3
2

1
2
y 6 yC 6 y.
2
3

Proof. Let us start with the 4-sided cell. We first prove the lower bound for xC . We use
that the 4-sided cell ABCD corresponds to cutting the small triangle F BA out of the
110

large triangle F CD. We denote area by A. Then there holds


R
R
R
xdx F BA xdx
xdx
F
CD
ABCD
xC = R
=
ABCD

=
=

AF CD

AABCD

1dx

R
F CD

xdx/AF CD AF BA
AABCD

F BA xdx/AF BA

AF CD 13 L AF BA 31
AF CD 13 L AF BA 13 L
1
>
= L.
AABCD
AABCD
3

For the upper bound we describe the cell as quadrilateral AGCD minus triangle BGC
to get
R
R
R
xdx BGC xdx
xdx
AGCD
ABCD
=
xC = R
ABCD

AABCD

1dx

AAGCD 12 L ABGC xC (BGC)


AABCD

AAGCD 12 L ABGC 21 L
1
= L.
AABCD
2

Here, we used that xC (BGC) > 23 L > 12 L. To determine yC , we interpret the 4-sided
cell as the sum of the quadrilateral ABED and the triangle BCE. Then, yC is a
convex combination of yC (ABED) and yC (BCE). For yC (ABED), the y coordinate
of the centroid of cell ABED, we have yC (ABED) = 12 y. For yC (BCE) there holds
yC (BCE) = 32 y. This implies the bounds for the 4 sided cell.
To determine the location of xC of the 5-sided cell, we represent xC as a convex
combinations of the x coordinate of the centroids of quadrilateral JICD and the 4-sided
cell ABIJ. Using the results for the 4-sided cell, this implies the claim for xC . For yC
we split into ABED and BICE.
With this information we now prove Lemma A.2. The proof relies on Lemma 3.1.
The LP limiting itself only ensures that the reconstruction evaluated at the neighboring
centroids does not overshoot. This implies non-negativity of the reconstruction sM at

111

z2
c

(0, 0)

z3

e3

2
z1

e2

e1

eB

(a) cell M with neighbors

(b) focus on cell M

Figure A.2: Figure of 4-sided cut cell M .


the neighboring centroids assuming sni > 0 i . Lemma 3.1 implies that non-negativity
also holds true for sM evaluated at the edge midpoints of a cut cell. The main idea
of the following proof is this: since the linear reconstruction sM , which has a positive
value sM at the centroid, is known to be non-negative at several points (the neighboring
centroids, edge midpoints, and the boundary edge midpoint), its slope cannot be too
steep. Otherwise it would violate one of these non-negativity constraints. This is made
precise in the following. For simplicity, we will drop the time index n in snM .
Proof of Lemma A.2. We consider the case of a 3-sided, 4-sided, and 5-sided cut cell
separately.
3-sided cell: This case is straightforward and can be handled as in [17]. By Lemma 3.1
and assumption (i) from Lemma A.1, we know that sM is positive at the two edge midpoints e1 and e2 and the boundary edge midpoint eB of the triangle cell. Furthermore,
using quadrature formulae, there holds
1
1
(
sM (e1 ) + sM (e2 ) + sM (eB )) =
3
VM

sM (x)dx = sM ,
M

where VM is the volume of cell M . This implies sM (ei ) 6 3sM for i = 1, 2, B.


4-sided cell: Consider Figure A.2(a). For a 4-sided cell, there holds 0 6 1 , 2 6 y.

112

(In the following we assume WLOG 1 > 2 .) The point c, which coincides with the
origin, lies in the convex hull of the neighbors as shown in Figure A.2(a). The reason
y
M
is that for centroid z1 , there holds x(z1 ) 6 x
2 and y(z1 ) > 2 . Using that s

has non-negative values at the neighboring centroids due to limiting, it must also be
non-negative at c.
This in turn implies that sM is non-negative on the line marked in light blue in Figure
A.2(b). Denoting the location of the centroid of cell M by (xM , yM ) there holds
1
1
x 6 xM 6 x,
3
2

1
1
1 6 yM 6 1 .
2
3

The point (0, yM ) lies on the light blue line. Therefore,

sM + (0 xM )x Dx + (yM yM )y Dy > 0

x Dx 6

3sM
sM
6
.
xM
x

Similarly, using that (xM , 0) also lies on the light blue line, we get

y Dy >

3sM
.
1

We now need a lower bound for x Dx and an upper bound for y Dy . Consider the
distance between the centroid and the boundary midpoint eB . There holds 0 6 x(eB )
xM 6 16 x. A short calculation shows 12 1 6 y(eB ) yM 6 61 1 . Using sM (eB ) > 0,
there holds
(y(eB ) yM )y Dy > sM (x(eB ) xM )x Dx .
As x(eB ) xM > 0, we make the right hand side as negative as possible by using the
upper bounds for x(eB ) xM and x Dx and get
3sM
3
1
= sM .
(y(eB ) yM )y Dy > sM x
6
x
2

113

This implies
y Dy 6

3
2 sM

yM y(eB )

9sM
.
1

Finally, we use point e3 to bound x Dx from below. There holds

(x(e3 ) xM )x Dx > sM (y(e3 ) yM )y Dy .


A short computation shows 0 6 y(e3 ) yM 6 31 1 . Therefore, we can bound
1 9sM
= 4sM .
(x(e3 ) xM )x Dx > sM 1
3
1
Using 12 x 6 x(e3 ) xM 6 23 x, we get
x Dx >

8sM
.
x

Using the upper and lower bounds for x Dx and y Dy for evaluating sM at the edge
midpoints and the boundary edge midpoint implies ML 6 6sM .
5-sided cell: The situation of the 5-sided cell is shown in Figure A.3. For the location
of the centroid, there holds
1
1
x 6 xM 6 x,
3
2

1
2
y 6 yM 6 y.
2
3

e2

e3

e1
(0, 0) e4

2
1

eB

(a) Cut cell M

(b) Parameter 1 and 2

Figure A.3: Figure of 5-sided cut cell M .

114

The upper right corner of the cell lies on the line connecting the centroid of the upper
neighbor with the centroid of the left neighbor. Therefore, sM is non-negative at that
point and consequently non-negative on the light blue line. We use the light blue line in
the same way as for the 4-sided cell to deduce the bounds

x Dx 6

3sM
,
x

y Dy >

3sM
.
y

We now distinguish 4 cases determined by the sign of x Dx and y Dy . Assume


x Dx , y Dy > 0. Then we can use point e4 to deduce y Dy 6

2sM
y .

The case x Dx > 0

and y Dy 6 0 is already done. For the case x Dx , y Dy 6 0 we use the point e3 to


M
deduce x Dx > 2s
x . Now we are left with the tricky case.

For x Dx 6 0 and y Dy > 0 we use a contradiction argument. We want to show

x Dy >

We assume y Dy >

6sM
y .

8sM
,
x

y Dy 6

6sM
.
y

Using the point e4 , there holds

x Dx (x(e4 ) xM ) + y Dy (y(e4 ) yM ) +sM > 0.


|

{z

>0

{z

60

Based on the assumptions and the geometry of the cell x Dx (x(e4 ) xM ) > 0 and
y Dy (y(e4 ) yM ) 6 0. Therefore, for y Dy big, x Dx (x(e4 ) xM ) must also be big to
make sure that the overall sum is still positive. This implies

x Dx (x(e4 ) xM ) > sM y Dy (y(e4 ) yM ) > sM +


As xM x(e4 ) 6 12 x, we deduce
x Dx 6

115

4sM
x

6sM 1
y = 2sM .
y 2

as a consequence of assuming y Dy >

6sM
y .

Now we consider the point eB . There should hold

x Dx (x(eB ) xM ) + y Dy (y(eB ) yM ) +sM > 0.


|

{z

60

{z

60

Using the upper bound for x Dx and the lower bound for y Dy , we define

f (x(eB ), y(eB ), xM , yM ) :=

4sM
6sM
(x(eB ) xM ) +
(y(eB ) yM ).
x
y

We deduce analytic formulae for the exact positions of x(eB ), y(eB ), xM , and yM depending on 1 and 2 (compare Figure A.3(b)). Evaluating f with the exact coordinates
shows that
5
5sM 6 f (x(eB ), y(eB ), xM , yM ) 6 sM .
3
Therefore, there is no possible configuration of a 5-sided cell such that y Dy >

6sM
y ,

M
x Dx 6 4s
M at eB is still positive. This implies that our
x , and the evaluation of s

assumption was wrong and we conclude y Dy 6

6sM
y .

We use the point e3 to deduce

M
x Dy > 8s
x .

We now evaluate the 4 different cases at all edge midpoints and the boundary edge
midpoint and find ML 6 5sM .
Remark. The focus of this proof is not on computing optimal bounds. We want to
provide a reasonable estimate with reasonable effort.

116

Bibliography
[1] http://people.nas.nasa.gov/ aftosmis/cart3d/.
[2] https://ccse.lbl.gov/Downloads/downloadAmrvis.html.
[3] R. Abgrall. On essentially non-oscillatory schemes on unstructured meshes: analysis and implementation. J. Comput. Phys, 114:4558, 1994.
[4] M. J. Aftosmis, D. Gaitonde, and T. S. Tavares. On the accuracy, stability and
monotonicity of various reconstruction algorithms for unstructured meshes. AIAA94-0415, 1994.
[5] M. J. Aftosmis, M. J. Berger, and J. E. Melton. Robust and efficient Cartesian
mesh generation for component-based geometry. AIAA Journal, 36(6):952960,
1998.
[6] M. J. Aftosmis, M. J. Berger, and G. D. Adomavicius. A parallel multilevel method
for adaptively refined Cartesian grids with embedded boundaries. AIAA-20000808, 2000.
[7] A. S. Almgren, J. B. Bell, and W. G. Szymczak. A numerical method for the
incompressible Navier-Stokes equations based on an approximate projection. SIAM
J. Sci. Comput., 17(2):358369, 1996.
[8] A. S. Almgren, J. B. Bell, P. Colella, and T. Marthaler. A Cartesian grid projection
method for the incompressible Euler equations in complex geometries. SIAM J.
Sci. Comput, 18:12891309, 1997.

117

[9] A. S. Almgren, J. B. Bell, P. Colella, L. H. Howell, and M. L. Welcome. A conservative adaptive projection method for the variable density incompressible NavierStokes equations. J. Comput. Phys., 142:146, 1998.
[10] A. S. Almgren, J. B. Bell, and W. Y. Crutchfield. Approximate projection methods:
Part I. Inviscid analysis. SIAM J. Sci. Comput., 22(4):113959, 2000.
[11] E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz,
A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen. LAPACK Users
Guide. Society for Industrial and Applied Mathematics, Philadelphia, PA, third
edition, 1999.
[12] U. Ascher, S. Ruuth, and R. J. Spitheri. Implicit-explicit Runge-Kutta methods
for time dependent partial differential equations. Appl. Numer. Math, 25:151167,
1997.
[13] M. Barad, P. Colella, D. T. Graves, P. Schwartz, B. van Straalen, and D. Trebotich.
A Cartesian grid embedded boundary method for the incompressible Navier-Stokes
equations. Preprint, 2009.
[14] T. J. Barth. Numerical aspects of computing viscous high Reynolds number flows
on unstructured meshes. AIAA-91-0721, 1991.
[15] T. J. Barth. Numerical methods and error estimation for conservation laws on
structured and unstructured meshes. Van Karman Institute Computational Fluid
Dynamics Lecture Notes, 2003.
[16] T. J. Barth and D. Jespersen. The design and application of upwind schemes on
unstructured meshes. AIAA-89-0366, 1989.
[17] P. Batten, C. Lambert, and D. M. Causon. Positively conservative high-resolution
schemes for unstructured elements. Int. J. Numer. Methods Eng., 39:18211838,
1996.

118

[18] J. B. Bell, P. Colella, and H. M. Glaz. A second-order projection method for


viscous, incompressible flow. AIAA paper 87-1776-CP, 1987.
[19] J. B. Bell, P. Colella, and H. M. Glaz. A second order projection method for the
incompressible Navier-Stokes equations. J. Comput. Phys., 85(2):257283, 1989.
[20] J. B. Bell, P. Colella, and L. H. Howell. An efficient second-order projection method
for viscous incompressible flow. In Proceedings of the Tenth AIAA Computational
Fluid Dynamics Conference, pages 360367. AIAA, 1991.
[21] J. B. Bell, P. Colella, and M. L. Welcome. Conservative front-tracking for inviscid
compressible flow. AIAA Paper 91-1599-CP, 1991.
[22] M. J. Berger. Private communication, 2013.
[23] M. J. Berger and R. LeVeque. An adaptive Cartesian mesh algorithm for the Euler
equations in arbitrary geometries. AIAA Paper 89-1930-CP, 1989.
[24] M. J. Berger and R. LeVeque. Stable boundary conditions for Cartesian grid
calculations. Comput. Systems Engrg., 1:305311, 1990.
[25] M. J. Berger and R. LeVeque. A rotated difference scheme for Cartesian grids in
complex geometries. AIAA Paper CP-91-1602, 1991.
[26] M. J. Berger and J. Melton. An accuracy test of a Cartesian grid method for steady
flow in complex geometry. In Proc. 5th International Conference on Hyperbolic
Problems, Stony Brook, NY, 1994. RIACS Technical Report 95.02.
[27] M. J. Berger, C. Helzel, and R. LeVeque. H-Box method for the approximation of
hyperbolic conservation laws on irregular grids. Technical report, Courant Mathematics and Computing Laboratory, New York University, 2002. Technical Report
02-001.
[28] M. J. Berger, M. J. Aftosmis, and S. M. Murman. Analysis of slope limiters on
irregular grids. AIAA-2005-0490, 2005.

119

[29] P. Birken and A. Jameson. On nonlinear preconditioners in Newton-Krylov methods for unsteady flows. Int. J. Num. Meth. Fluids, 62:565573, 2010.
[30] J. P. Boris and D. L. Book. Flux corrected transport. I. SHASTA, a fluid transport
algorithm that works. J. Comput. Phys., 11:3869, 1973.
[31] T. Buffard and S. Clain. Monoslope and multislope MUSCL methods for unstructured meshes. J. Comput. Phys., 229:37453776, 2010.
[32] D. Calhoun. A Cartesian grid method for solving the streamfunction vorticity equations in irregular geometries. PhD thesis, Department of Applied Mathematics,
University of Washington, 1999.
[33] D. M. Causon, D. M. Ingram, and C. G. Mingham. A Cartesian cut cell method
for shallow water flows with moving boundaries. Advances in Water Resources, 24:
899911, 2001.
[34] I.-L. Chern and P. Colella. A conservative front tracking method for hyperbolic
conservation laws. Technical report, Lawrence Livermore National Laboratory,
Livermore, CA, 1987. Preprint UCRL-97200.
[35] Y.-L. Chiang, B. van Leer, and K. G. Powell. Simulation of unsteady inviscid flow
on an adaptively refined cartesian grid. AIAA paper 92-0443, 1992.
[36] A. J. Chorin. Numerical solution of the Navier-Stokes equations. Math. Comp.,
22:745762, 1968.
[37] A. J. Chorin. On the convergence of discrete approximations to the Navier-Stokes
equations. Math. Comp., 23:341353, 1969.
[38] A. J. Chorin and J. E. Marsden. A Mathematical Introduction to Fluid Dynamics.
Springer, 3rd edition, 2000.
[39] I. Christov and B. Popov. New non-oscillatory central schemes on unstructured
triangulations for hyperbolic systems of conservation laws. J. Comput. Phys., 227:
57365757, 2008.
120

[40] V. Chvatal. Linear Programming. W. H. Freeman and Company, 1983.


[41] D. K. Clarke, M. D. Salas, and H. Hassan. Euler calculations for multielement
airfoils using Cartesian grids. AIAA Journal, 24, 1986.
[42] W. J. Coirier and K. G. Powell. An accuracy assessment of Cartesian mesh approaches for the Euler equations. J. Comput. Phys., 117:121131, 1995.
[43] P. Colella. A direct Eulerian MUSCL scheme for gas dynamics. SIAM J. Sci. Stat.
Comput., 6:104117, 1985.
[44] P. Colella. Multidimensional Upwind Methods for Hyperbolic Conservation Laws.
J. Comput. Phys., 87:171200, 1990.
[45] P. Colella. Volume-of-fluid methods for partial differential equations. In E. F.
Toro, editor, Godunov Methods, pages 161177. Springer US, 2001.
[46] P. Colella, D. T. Graves, B. J. Keen, and D. Modiano. A Cartesian grid embedded
boundary method for hyperbolic conservation laws. Technical report, Lawrence
Berkeley National Laboratory, Berkeley, CA, 2004. LBNL-56420.
[47] P. Colella, D. T. Graves, B. J. Keen, and D. Modiano. A Cartesian grid embedded
boundary method for hyperbolic conservation laws. J. Comput. Phys., 211:347
366, 2006.
[48] D. DeZeeuw and K. Powell. An adaptively refined Cartesian mesh solver for the
Riemann problem for real gases. AIAA Paper 91-1542-CP, 1991.
[49] B. Epstein, A. Luntz, and A. Nachschon. Cartesian Euler method for arbitrary
aircraft configurations. AIAA Journal, 30:679687, 1992.
[50] J.
port,

B.

B.

et

CCSE,

al.
Lawrence

BoxLib

Users

Berkeley

Guide.

National

https://ccse.lbl.gov/BoxLib/BoxLibUsersGuide.pdf.

121

Technical
Laboratory,

re2012.

[51] J. Falcovitz, G. Alfandary, and G. Hanoch. A two-dimensional conservation laws


scheme for compressible flows with moving boundaries. J. Comput. Phys., 138:
83102, 1997.
[52] L. Ferracina and M. N. Spker. An extension and analysis of the Shu-Osher representation of Runge-Kutta methods. Math. Comput., 74(249):201219, 2004.
[53] L. Ferracina and M. N. Spker.

Strong stability of singly-diagonally-implicit

Runge-Kutta methods. Appl. Numer. Math., 58(11):16751686, 2008.


[54] O. Friedrich. Weighted essentially non-oscillatory schemes for the interpolation on
unstructured grids. J. Comput. Phys., 144:194212, 1998.
[55] R. Gaffney, H. Hassan, and M. Salas. Euler calculations for wings using Cartesian
grids. Paper AIAA 87-0356-CP, 1987.
[56] F. Gao, D. M. Ingram, D. M. Causon, and C. G. Mingham. The development of a
Cartesian cut cell method for incompressible viscous flows. Int. J. Numer. Meth.
Fluids, 54:10331053, 2007.
[57] P. E. Gill, W. Murray, and M. H. Wright. Numerical Linear Algebra and Optimization, volume 1. Addison-Wesley Publishing Company, 1991.
[58] S. Gottlieb and C. Shu. Total variation diminishing Runge-Kutta schemes. Math.
Comput., 67:7385, 1998.
[59] S. Gottlieb, C. Shu, and E. Tadmor. Strong stability-preserving high-order time
discretization methods. SIAM Review, 43(1):89112, 2001.
[60] B. Gustafsson. The convergence rate for difference approximations to mixed initial
boundary value problems. Math. Comp., 29:396406, 1975.
[61] E. Hairer and G. Wanner. Solving ordinary differential equations II: Stiff and
differential-algebraic problems. Springer, 2nd edition, 2002.

122

[62] E. Hairer, S. P. Norsett, and G. Wanner. Solving ordinary differential equations:


Nonstiff problems. Springer, 1993.
[63] A. Harten. High resolution schemes for hyperbolic conservation laws. J. Comput.
Phys., 49:357393, 1983.
[64] D. Hartmann, M. Meinke, and W. Schrder. An adaptive multilevel multigrid
formulation for Cartesian hierarchical grid methods. Comput. & Fluids, 37:1103
1125, 2008.
[65] D. Hartmann, M. Meinke, and W. Schrder. A strictly conservative Cartesian cutcell method for compressible viscous flows on adaptive grids. Comput. Methods
Appl. Mech. Engrg., 200:10381052, 2011.
[66] C. Helzel, M. J. Berger, and R. LeVeque. A high-resolution rotated grid method for
conservation laws with embedded geometries. Siam J. Sci. Comput., 26:785809,
2005.
[67] H. Hoteit, P. Ackerer, R. Mose, J. Erhel, and B. Philippe. New two-dimensional
slope limiters for discontinuous Galerkin methods on arbitrary meshes. Internat.
J. Numer. Methods Engrg., 61(14):25662593, 2004.
[68] C. Hu and C.-W. Shu. Weighted essentially non-oscillatory schemes on triangular
meshes. J. Comput. Phys., 150:97127, 1999.
[69] M. E. Hubbard. Multidimensional slope limiters for MUSCL-type finite volume
schemes. Numerical analysis report 2/98, Department of Mathematics, University
of Reading, 1998.
[70] M. E. Hubbard. Multidimensional slope limiters for MUSCL-type finite volume
schemes on unstructured grids. J. Comput. Phys., 155:5474, 1999.
[71] W. Hundsdorfer and J. G. Verwer. Numerical solution of time-dependent advectiondiffusion-reaction equations, volume 33 of Springer Ser. Comput. Math. Springer,
2003.
123

[72] J. D. Hunt. An adaptive 3D Cartesian approach for the parallel computation of


inviscid flow about static and dynamic configurations. PhD thesis, University of
Michigan, 2004.
[73] A. Jameson. Time dependent calculations using multigrid, with applications to
unsteady flows part airfoils and wings. AIAA paper 91-1596, 1991.
[74] A. Jameson and S. Shankaran. An assessment of dual-time stepping, time spectral
and artificial compressibility based numerical algorithms for unsteady flow with
applications to flapping wings. AIAA Paper 2009-4273, 2009.
[75] P. Jawahar and H. Kamath. A high-resolution procedure for Euler and NavierStokes computations on unstructured grids. J. Comput. Phys., 164:165203, 2000.
[76] H. Ji, F.-S. Lien, and E. Yee. An efficient second-order accurate cut-cell method for
solving the variable coefficient Poisson equation with jump conditions on irregular
domains. Intl. J. Num. Methods in Fluids, 52:723748, 2006.
[77] H. Ji, F.-S. Lien, and E. Yee. Numerical simulation of detonation using an adaptive
Cartesian cut-cell method combined with a cell-merging technique. Comput. &
Fluids, 39:10411057, 2010.
[78] H. Johansen and P. Colella. A Cartesian grid embedded boundary method for
Poissons equation on irregular domains. J. Comput. Phys., 147:6085, 1998.
[79] J. V. Kan. A second-order accurate pressure-correction scheme for viscous incompressible flow. SIAM J. Sci. Comput., 7:870891, 1986.
[80] D. I. Ketcheson, C. B. Macdonald, and S. Gottlieb. Optimal implicit strong stability preserving Runge-Kutta methods. Appl. Numer. Math., 59:373392, 2009.
[81] J. Kim and P. Moin. Application of a fractional-step method to incompressible
Navier-Stokes equations. J. Comput. Phys., 59:308323, 1985.
[82] R. J. LeVeque. Finite Volume Methods for Hyperbolic Problems. Cambridge University Press, 2002.
124

[83] R. J. Leveque. Finite Difference Methods for Ordinary and Partial Differential
Equations. siam, 2007.
[84] R. J. Leveque. Numerical methods for conservation laws. Birkhuser, 2nd edition,
2008.
[85] W. Li, Y.-X. Ren, G. Lei, and H. Luo. The multi-dimensional limiters for solving
hyperbolic conservation laws on unstructured grids. J. Comput. Phys., 230:7775
7795, 2011.
[86] K. Lipnikov, G. Manzini, and M. Shashkov. Mimetic finite difference method. J.
Comput. Phys, 2013.
[87] S. May and M. J. Berger. Two-dimensional slope limiters for finite volume schemes
on non-coordinate-aligned meshes. SIAM J. Sci. Comput. to appear.
[88] S. May, A. J. Nonaka, A. S. Almgren, and J. B. Bell. An unsplit, higher order
Godunov method using quadratic reconstruction for advection in two dimensions.
Comm. App. Math. and Comp. Sci., 6:2761, 2011.
[89] M. Meyer, A. Devesa, S. Hickel, X. Y. Hu, and N. A. Adams. A conservative
immersed interface method for large-eddy simulation of incompressible flows. J.
Comput. Phys., 229:63006317, 2010.
[90] G. H. Miller and D. Trebotich. An embedded boundary method for the NavierStokes equations on a time-dependent domain. Comm. App. Math. and Comp.
Sci., 7:132, 2012.
[91] J. Nocedal and S. J. Wright. Numerical Optimization. Springer, 1999.
[92] A. J. Nonaka, S. May, A. S. Almgren, and J. B. Bell. A three-dimensional, unsplit
Godunov method for scalar conservation laws. SIAM J. Sci. Comput., 33:2039
2062, 2011.

125

[93] C. F. Ollivier-Gooch. Quasi-ENO schemes for unstructured meshes based on unlimited data-dependent least-squares reconstruction. J. Comput. Phys., 133:617,
1997.
[94] J. S. Park, S.-H. Yoon, and C. Kim. Multi-dimensional limiting process for hyperbolic conservation laws on unstructured grids. J. Comput. Phys., 229:788812,
2010.
[95] R. Pember, J. B. Bell, P. Colella, W. Crutchfield, and M. L. Welcome. An adaptive
Cartesian grid method for unsteady compressible flow in irregular regions. J.
Comput. Phys., 120:278304, 1995.
[96] S. Popinet. Gerris: a tree-based adaptive solver for incompressible Euler equations
in complex geometries. J. Comput. Phys., 190:572600, 2003.
[97] J. J. Quirk. An alternative to unstructured grids for computing gas dynamic flows
around arbitrarily complex two-dimensional bodies. Comput. & Fluids, 23(1):125
142, 1994.
[98] W. J. Rider. Approximate projection methods for incompressible flows: Implementation, variants and robustness. Technical report, LANL unclassified report
LA-UR-94-2000, Los Alamos National Laboratory, 1995.
[99] J. Saltzman. An unsplit 3D upwind method for hyperbolic conservation laws. J.
Comput. Phys., 115:153168, 1994.
[100] C.-W. Shu. Total-variation-diminishing time discretizations. SIAM J. Sci. Statist.
Comput., 9:10731084, 1988.
[101] C.-W. Shu and S. Osher. Efficient implementation of essentially non-oscillatory
shock-capturing schemes. J. Comput. Phys., 77:439471, 1988.
[102] M. Spker. Contractivity in the numerical solution of initial value problems. Numer. Math., 42:271290, 1983.

126

[103] B. Swartz. Good neighborhoods for multdimensional van Leer limiting. J. Comput.
Phys., 154:237241, 1999.
[104] R. K. Sweby. High resolution schemes using flux limiters for hyperbolic conservation laws. SIAM J. Numer. Anal, 21:9951011, 1984.
[105] E. Y. Tau. A second-order projection method for the incompressible Navier-Stokes
equations in arbitrary domains. J. Comput. Phys., 115:147152, 1994.
[106] E. F. Toro. Riemann Solvers and Numerical Methods for Fluid Dynamics. Springer,
3rd edition, 2009.
[107] S. Tu and A. Aliabadi. A slope limiting procedure in discontinuous Galerkin finite
element method for gasdynamics applications. Int. J. Numer. Anal. Model., 2(2):
163178, 2005.
[108] G. D. van Albada, B. van Leer, and J. W. W. Roberts. A comparative study of
computational methods in cosmic gas dynamics. Astron. Astrophys., 108:7684,
1982.
[109] B. van Leer. Towards the ultimate conservative difference scheme, V. a second
order sequel to Godunovs methods. J. Comput. Phys., 32:101136, 1979.
[110] V. Venkatakrishnan. Convergence to steady state solutions of the Euler equations
on unstructured grids with limiters. J. Comput. Phys., 118:120130, 1995.
[111] VisIt Users Manual. https://wci.llnl.gov/codes/visit/home.html, 2005.
[112] S. Wang, J. Glimm, R. Samulyak, X. Jiao, and C. Diao. The embedded boundary
method for two phase incompressible flow. Preprint, 2013.
[113] B. Wendroff and A. B. White. A supraconvergent scheme for nonlinear hyperbolic
systems. Comput. Math. Appl., 18(8):761767, 1989.
[114] T. Ye, R. Mittal, H. S. Udaykumar, and W. Shyy. An accurate Cartesian grid
method for viscous incompressible flows with complex immersed boundary. J.
Comput. Phys., 156:209240, 1999.
127

[115] S. T. Zalesak. Fully multidimsional flux-corrected transport algorithms for fluids.


J. Comput. Phys., 31:335362, 1979.

128

You might also like