Beruflich Dokumente
Kultur Dokumente
in Complex Geometries
by
Doctor of Philosophy
Department of Mathematics
September 2013
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
iii
Acknowledgements
First and foremost, I would like to thank my advisor Professor Marsha Berger. With-
out her extraordinary insight in a wide range of computational challenges and her contin-
ual 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
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
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
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 never-
ending 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
v
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 second-
order 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
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
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
vi
Contents
Dedication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Introduction 1
Notation 5
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
vii
2.5 Conclusions and future work . . . . . . . . . . . . . . . . . . . . . . . . . 75
3 The LP limiter 77
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Conclusions 105
Bibliography 117
viii
List of Figures
1.4 Two approaches for switching the schemes: cell bounding and flux bounding 15
ix
2.2 Interpolation from cell centroids to edge midpoints . . . . . . . . . . . . . 70
x
List of Tables
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 ge-
ometries. They cut the flow body out of a regular Cartesian grid, as illustrated in Figure
1.
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
1
Cut cells can have irregular shape. In two dimen-
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
Another approach to the small cell problem is to develop algorithms that can han-
dle arbitrarily small cells. The flux redistribution method, originally developed for shock
tracking by Chern & Colella [34], was extended to embedded boundary problems by Pem-
ber et al. [95] and Colella et al. [46, 47]. The method has successfully been used in two-
and 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]
2
guarantees stability on small cut cells by constructing numerical fluxes that possess a
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
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
The dissertation is split in three parts. In each chapter, a more detailed discussion
In Chapter 1, we focus on solving the small cell problem for the linear advection
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 incompress-
ible 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
3
scheme to predict velocities at the next time step neglecting the incompressibility con-
dition. 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
ators. We present preliminary numerical results employing the full projection algorithm
Chapter 3 is devoted to a different aspect of cut cell methods: the limiting of recon-
structed 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].
4
Notation
We begin by introducing some notation that we will use throughout the dissertation.
illustrated in Figure 3. F F F
these are flow cells that are edge neighbors of cut cells,
Figure 3: Three main cell
compare Figure 1.7. This term is not part of the stan-
types introduced by the cut:
dard terminology. We will introduce this cell type to
F denotes a flow cell, C a
refer to the cells on which we switch between the ex-
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 Carte-
sian 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 aver-
age 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
5
the cell centroid. We often say, informally, that qij is located at the cell centroid.
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
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.
6
Chapter 1
1.1 Introduction
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
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
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
7
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
the solution along the boundary is very important. Therefore, a higher order method
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
Our goal is a solution to the small cell problem that is simple enough to be im-
plemented 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
8
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
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 can-
didates 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.
This section provides the theoretical part of the scheme development. Some numerical
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
9
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
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
We describe the version of MUSCL we use. The approximate solution values are
n+1/2 n+1/2
sn+1
i = sni si+1/2 si1/2 .
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
n+1/2,L x n t n
si+1/2 = sni + s + s ,
2 x,i 2 t,i
n+1/2,R x n t n
si+1/2 = sni+1 sx,i+1 + s .
2 2 t,i+1
n+1
sn+1
i1 sn+1
i sn+1
i+1
t
n+1/2,L n+1/2,L n+1/2,L
si1/2 si+1/2 si+3/2
n+1/2,R n+1/2,R n+1/2,R
si3/2 si1/2 si+1/2
tn
sni1 sni sni+1
10
Here, snt,i t s(xi , tn ). We replace the unknown time derivative st by the space derivative
n+1/2,L x n t x
si+1/2 = sni + s u snx,i = sni + (1 )snx,i , (1.3a)
2 x,i 2 2
n+1/2,R x n t x
si+1/2 = sni+1 sx,i+1 u snx,i+1 = sni+1 (1 + )snx,i+1 . (1.3b)
2 2 2
n+1/2
The state si+1/2 is then given by upwinding. Therefore, for our model problem, the
n+1/2,L n+1/2,L
sn+1
i = sni si+1/2 si1/2 . (1.4)
Based on its construction, the MUSCL scheme is second-order accurate for unlimited
slopes.
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.
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
t h i
sn+1
0 = sn0 F1/2 F1/2 .
x
11
x x x x x
tn+1
tn
-2 -1 0 1 2
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
ut
0< <1
x
for stability. Therefore, we would need to choose t based on the size of the small cell.
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.
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
xi+1 xi si+1 si
r= sx,i
xi1 xi si1 si
and find sx,i as the least squares solution to minsx,i krk2 . Some algebra gives
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
For limited slope reconstruction, we use the minmod limiter. This limiter extends
cell centroids and makes sure to not over/undershoot the neighboring cells value. For
sminmod
x,i = minmod (D si , D+ si ) ,
a if |a| < |b| and ab > 0,
minmod(a, b) = b if |b| < |a| and ab > 0, (1.5)
0
if ab 6 0.
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
13
tn+1 updated by
explicit
scheme
tn
-3 -2 -1 0 1 2 3
Figure 1.3: Explicit cells have been updated (empty circles), the neighborhood of the
small cell has not yet been done.
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
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].
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.
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
14
tn+1 impl. scheme
influence of
expl. on impl.
tn
scheme
-3 -2 -1 0 1 2 3
n+1 n+1
(a) Cell bounding: values s2 and s2 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
that is applied on cells 1, 0, and 1. This is shown in Figure 1.4(a). We refer to this
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
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
sn+1 n n n
2 = s2 s2 s3 ,
sn+1
2 = sn2 (sn2 sn1 ) .
sn+1 n n+1 n+1
1 = s1 s1 s2 ,
n+1
sn+1
0 = sn0 s0 sn+1
1 ,
s1n+1 = sn1 sn+1
1 sn+1
0 .
(Note that the volume of the small cell is given by x.) We know sn+1
2 from applying
sn+1
0 , which then is used to compute sn+1
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
step. We focus on the problem between cells 2 and 1. Two possible options to fix
16
compute sn+1 n+1 n+1
1 using the implicit scheme, adjust s2 resulting in s2 , i.e,
sn+1 n n n
2 = s2 s2 s3 , (1.6a)
sn+1 n n+1 n+1
1 = s1 s1 s2 , (1.6b)
sn+1 n n n
2 = s2 s2 s3 , (1.7a)
sn+1 n n+1 n+1
1 = s1 s1 s2 , (1.7b)
We will show that cell bounding with either of these two options might destroy
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
3
sn+1
1 = 1 + > 1,
1+
for > 0. This is outside of the range of values of sni and therefore an overshoot. Also,
We now consider the scheme (1.6), which fixes the explicit cells. This scheme can
17
0 1
-3 -2 -1 0 1 2 3
(a) given data at tn
0 1
-3 -2 -1 0 1 2 3
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
i
51
solution at time tn+1 is not monotone for 2 ,1 . The behavior is illustrated in
1 + 2
sn+1
2 = 1 +
2
and sn+1
1 = .
1+
Therefore,
sn+1 n+1
2 6 s1 2 + 1 6 0.
5+1 51
This is true for > 2 and 6 2 0.62.
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
sn+1 n n n
2 = s2 s2 s3 ,
sn+1
2 = sn2 (sn2 sn1 ) .
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
sn+1 n n+1 n
1 = s1 s1 s2 , (1.8a)
n+1
sn+1
0 = sn
0 s sn+1
1 , (1.8b)
0
sn+1
1 = sn1 sn1 sn+1
0 . (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
is said to be monotone if
H n
(s ; j) > 0, i, j, sn .
sni
Lemma 1.3. Consider explicit Euler time stepping coupled to implicit Euler time step-
ping through flux bounding as described in (1.8). The resulting scheme is monotone for
19
for the implicitly treated cells can be rewritten as
1 n n
sn+1
1 = s1 + s ,
1+ 1 + 2
1 1 1 n n
sn+1 = s n
+
sn+1 = sn +
s + s ,
0 0
1+ 1+ 1
1+ 0
1+
1 + 1 1 + 2
sn+1
1 = (1 ) sn1 + s0n+1 .
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,
are a subclass of monotone schemes and TVD schemes are monotonicity preserving: for
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
T V (sn+1 ) 6 T V (sn )
X
T V (s) = |si si1 |.
i=
The standard way to show that a scheme is TVD is to employ the theorem by Harten
n
[63]. This theorem gives criteria for Ci1/2 n
and Di+1/2 , which are sufficient for a scheme
20
of the form
n
to be TVD. The coefficients Ci1/2 n
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
x x
sn+1
i = sni sni + (1 )snx,i 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
sni + (1 )snx,i x n n x
2 si1 (1 )sx,i1 2
Ci1/2 = ,
sni sni1
snx,i snx,i1
!
x x
= 1+ (1 ) n (1 ) .
2 si sni1 2 sni sni1
x snx,i 1 x snx,i1 1
06 n n 6 , 06 n n 6 .
2 si si1 2 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
sn+1 n n n
3 = s3 s3 + (1 )sx,3 sn4 (1 )snx,4 , (MUSCL)
2 2
x
sn+1
2 = sn2 sn2 sn3 (1 )snx,3 ,
2
h i
sn+1 n n+1 n
1 = s1 s1 s2 ,
h n+1 i
sn+1
0 = sn0 s0 sn+1
1 ,
h i
sn+1
1 = sn1 sn1 sn+1
0 ,
x
sn+1
2 = sn2 sn2 + (1
,)snx,2 sn1
2
n x n x
sn+1
3
n n
= s3 s3 + (1 )sx,3 n
s2 (1 )sx,2 , (MUSCL)
2 2
..
. (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.
n
with suitably defined Ci1/2 n
, 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
|sn+1 n+1
i+1 si
n
| 6 (1 Ci+1/2 )|sni+1 sni | + Ci1/2
n
|sni sni1 |,
|sn+1 n+1
X X
i+1 si |6 |sni+1 sni | C5/2
n
|sn2 sn3 |
i63 i63
and
|sn+1 n+1
X X
i+1 si |6 |sni+1 sni | + C3/2
n
|sn2 sn1 |.
i>2 i>2
For the implicit part we use the convexity of the implicit Euler scheme to estimate
1 n n
sn+1 n+1
s2 sn2 + C5/2
n
sn2 sn3 ,
1 s2 = s1 +
1+ 1+
1
sn1 sn2 + C5/2
n
sn2 sn3 .
=
1+
This implies
1
|sn+1 n+1
1 s2 | 6 |sn sn2 | + C5/2
n
|sn2 sn3 |.
1 + 1
23
We continue with sn+1
0 sn+1 n+1
1 , s1 sn+1
0 , . . . , to get the following estimates
1
|sn+1 n+1
1 s2 | 6 |sn sn2 | + C5/2
n
|sn2 sn3 |,
1 + 1
1 1
|sn+1
0 sn+1
1 | 6 |sn sn1 | +
0
|sn sn2 |,
1 + 1
1+ 1+
|sn+1
1 sn+1
0 | 6 (1 )|sn1 sn0 | + (1 )
|sn0 sn1 |
1+
+ (1 )
|sn sn2 |,
1+
1 + 1
|sn+1
2 sn+1
1
n
| 6 (1 C3/2 )|sn2 sn1 | + |sn1 sn0 |
+
|sn sn1 | +
|sn sn2 |.
1+ 0
1+
1 + 1
|sn+1 n+1
X X
i+1 si |6 |sni+1 sni |.
i i
|sn+1 n+1
|sn+1 n+1
| + |sn+1 n+1 n+1
sn+1
X X
i+1 si |= i+1 si 1 s2 | + |s0 1 |
i i63
|sn+1 n+1
X X X
i+1 si |6 |sni+1 sni | C5/2
n
|sn2 sn3 | + |sni+1 sni | + C3/2
n
|sn2 sn1 |
i i63 i>2
24
into its single terms results in
|sn2 sn3 | : n
C5/2 ,
1 1
|sn1 sn2 | : +
+ (1 )
+
= 1,
1+ 1+
1+ 1+
1+ 1+
1+
1
|sn0 sn1 | :
+ (1 )
+
= 1,
1+ 1+ 1+
|sn1 sn0 | : (1 ) + = 1,
|sn2 sn1 | : n
1 C3/2 .
Therefore,
|sn+1 n+1
X X
i+1 si |6 |sni+1 sni |.
i i
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
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
It is popular to use specific TVD/SSP Runge-Kutta schemes [58, 59, 100, 101] for
there is no second-order implicit scheme that is unconditionally SSP [80, 102]. In fact,
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
Therefore, to guarantee SSP property of the implicit scheme, when using, e.g., a two-
stage 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.
used to solve stiff ODEs [61, 62, 71, 83] fit our purposes. We use two theoretical tests to
26
tn+1
tn
M M M I I M M M
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
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
0 , which depends on (, ),
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
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
Trapezoidal rule
t
un+1 = un + [f (un ) + f (un+1 )] . (1.12)
2
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)
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
28
TR-BDF2
TR-BDF2 (TR stands for Trapezoidal) is L-stable and second-order accurate [83,
p. 175]. It is given by
t
u = un + [f (un ) + f (u )] ,
4
t
un+1 = un + [f (un ) + f (u ) + f (un+1 )] . (1.14)
3
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.
u = un + tf (u ),
with the choice = (2 2)/2. The two values = (2 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
29
Table 1.1: One step error for mixed schemes
Implicit method N L1 order L order
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
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
implicit Euler: the one step error measured in the L norm is of the order O(x);
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
Implicit method N L1 order L 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
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
for trapezoidal rule and SDIRK scheme: the errors caused by the switch and by
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.,
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
In this section we focus on extending the mixed explicit implicit approach presented
Here, s(x, t) denotes a cell centered, advected scalar field and u(x) = (u, v) denotes
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,
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
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
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 x n t n
si+1/2,j = snij + sx,ij + s ,
2 2 t,ij
n+1/2,R x n t n
si+1/2,j = sni+1,j sx,i+1,j + s .
2 2 t,i+1,j
We again use the equation st = usx vsy to replace the time derivative st , but we pay
n+1/2,L x n t
si+1/2,j = snij + sx,ij ui+1/2,j snx,ij + (vs
[ y )ij ,
2 2
n+1/2,R x t
si+1/2,j = sni+1,j snx,i+1,j ui+1/2,j snx,i+1,j + (vs
[ y )i+1,j .
2 2
(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
x t n t [
n+1/2,L
si+1/2,j = snij + ui+1/2,j sx,ij (vsy )ij . (1.18)
2 2 2
33
We evaluate snx,ij , the normal derivative with respect to edge (i + 1/2, j), by slope recon-
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
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
y t n
n+1/2,B
si,j+1/2 = snij + vi,j+1/2 sy,ij , (1.19a)
2 2
y t n
n+1/2,T
si,j+1/2 = sni,j+1 + vi,j+1/2 sy,i,j+1 . (1.19b)
2 2
Then we choose between these states using an upwinding procedure based on vi,j+1/2 to
get
n+1/2,B
si,j+1/2 , if vi,j+1/2 > 0,
n+1/2 n+1/2,T
si,j+1/2 = si,j+1/2 , if vi,j+1/2 < 0, (1.20)
n+1/2,B n+1/2,T
1 s
2 i,j+1/2+ s i,j+1/2 , if vi,j+1/2 = 0.
[ n+1/2 n+1/2 n
(vsy )ij = si,j+1/2 vi,j+1/2 si,j1/2 vi,j1/2 sij vi,j+1/2 vi,j1/2 . (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
ij using the conservative update formula
t h n+1/2 n+1/2
i
sn+1
ij = snij ui+1/2,j si+1/2,j ui1/2,j si1/2,j
x
t h n+1/2 n+1/2
i
vi,j+1/2 si,j+1/2 vi,j1/2 si,j1/2 . (1.22)
y
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
A high level version of the mixed explicit implicit scheme is given in the following.
Given sn ,
1. compute explicit fluxes using the MUSCL scheme (with the adjustments from Sec-
tion 1.3.3),
mula,
3. compute implicit fluxes making use of the explicit fluxes and the updated values
explicit and implicit fluxes, respectively. For details see Section 1.3.4.
35
I I
I I
I I
I I
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.
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 (usx )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 n+1/2,B/T
si+1/2,j and si,j+1/2 to cut cells.
x t n
n+1/2,R
si1/2,j = snij + 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
t n
si1/2,j = snij + xi1/2,j xij snx,ij + yi1/2,j yij sny,ij ui1/2,j 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
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
t
sn+1 = snij u y sn+1 n+1
i+1/2,j ui1/2,j i1/2,j y si1/2,j
ij
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 if ui+1/2,j > 0,
ij
sn+1
i+1/2,j =
sn+1
if ui+1/2,j < 0,
i+1,j
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
t
n+1/2
sn+1
ij = snij 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
sn+1 n+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
For using the trapezoidal rule with slope reconstruction on a cut cell, the update is
given by
t
sn+1 = snij u y (sni+1/2,j + sn+1
i+1/2,j )
ij
2ij xy i+1/2,j i+1/2,j
Here,
sn n n
ij + (xi+1/2,j xij )sx,ij + (yi+1/2,j yij )sy,ij if ui+1/2,j > 0,
sni+1/2,j =
sn
+ (xi+1/2,j xi+1,j )snx,i+1,j + (yi+1/2,j yi+1,j )sny,i+1,j if ui+1/2,j < 0,
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
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
ij numerically
due to the slope reconstruction. In the slope reconstruction, typically slope limiters need
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
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
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
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
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
computes all the geometry information needed for a second-order finite volume algorithm;
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
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
For visualization of the numerical results we use AmrVis [2] and VisIt [111].
We now present numerical results in two dimensions. In all tests we compute the
41
Initializations
..
.
Initialize Cartesian grid
Initialize cut cells:
do n=1, # levels
do k=1, #patches Input: Computational patch
call patchCubes Surface triangulation
end do Output: Cut cell information
.. end do
.
Time stepping patchCubes
..
.
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
1 X
L1 (e) = |eij | |ij |, (1.24)
|| i,j
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
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
1 X
L1bdy (ebdy ) = |ek,bdy | |k |, (1.26)
| | k
L
bdy (ebdy ) = max|ek,bdy |. (1.27)
k
Here, | | denotes the length of the embedded boundary and |k | the boundary segment
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
!
x y
t = min , .
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 non-
trivial. 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.
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 outflow
b.c. 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
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 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
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
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
To better understand the inconsistency between the numerical result and our theo-
retical considerations, we examine the formula for the L1 error for this test problem in
45
detail. Let us denote by |eC F
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
X X
L1 error = |eij |xy + |eij |xy /(1 ),
cut cell flow cell
irrflow cell
y C y
= |eij | + 1 |eFij |.
1 1
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 ,
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
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
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 outflow
b.c. 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
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
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
The results for running to time T = 0.1 are shown in Table 1.5. (The results for the L
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
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
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
Table 1.6 shows the results for using trapezoidal rule everywhere together with un-
limited 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 nu-
merical 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
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
The results are overall similar to the results for using trapezoidal rule with unlimited
Comparing the L1 error for = 5o , we find that the results for using the mixed ex-
plicit 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 approx-
imately 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
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
cells and therefore does not influence the L error. Furthermore, it apparently does not
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].
Norms conv. order for L1 error conv. order for L error
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
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
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
however, has a convergence rate of 1.34; we are not sure what the reason for this
52
Domain
1
10 Boundary
Cut cell
Irrflow cell
Error
2
10
2
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
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.
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 bound-
ary. 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. Addi-
tional 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 trape-
zoidal method caused overshoot for very small values of . We plan to develop an
FCT approach combining the trapezoidal method with implicit Euler time step-
ping to guarantee monotonicity. We would also like to examine the option of using
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 im-
existing methods in the literature, e.g., the h-box method or the flux redistribution
method.
During our scheme development one main design choice has been to ensure straight-
forward extension of the resulting algorithm to three dimensions. The explicit scheme
in three dimensions would be the extension of the two-dimensional MUSCL scheme pre-
sented 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
in two dimensions, and its stencil is larger. In a first approach to extend the method
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
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 three-
dimensional Gaussian and the ramp is constant in the z direction.
57
Chapter 2
2.1 Introduction
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.
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
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 straightfor-
ward extension to three dimensions. Initial numerical results indicate that the approach
is promising but that the desired accuracy has not yet been achieved.
embedded boundary grids have been examined before. Almgren et al. [8] present a pro-
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
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
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.
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
all the main features of a modern projection algorithm but was only first order. Second-
order projection algorithms were developed by Kim & Moin [81], van Kan [79] and Bell,
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
Step 1: The advection equation (2.1a) is solved without strictly enforcing the in-
U Un
+ [(U )U ]n+1/2 + pn1/2 = 0 (2.2)
t
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.
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 , (2.3a)
t t
U Un
pn+1/2 = pn1/2 + (I P) . (2.3b)
t
In the following we will give a short summary of the algorithms used for both steps.
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
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
Then, a MAC projection is applied to enforce that the edge velocities are discretely
divergence-free, i.e.,
More information about the MAC projection is given below. This results in dis-
61
M
vi,j+1/2
uM
i1/2,j uM
i+1/2,j
(u, v)ij
M
vi,j1/2
U Un h M in+1/2
+ (U )U + pn1/2 = 0 (2.4)
t
(2.4) for U is similar to applying the MUSCL scheme to the linear advection
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.
For Step 2, the projection, an approximate projection method is used, i.e., the in-
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 cen-
tered: 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
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
To make the extension to cut cells easier, we write the projection step in a different
given by
Ui+1,j Uij
(Gx U )i+1/2,j x
= .
Ui,j+1 Uij
(Gy U )i,j+1/2 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
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
Applying the projection operator P to a cell centered vector field V , i.e., computing
V proj = PV = I G(DG)1 D V
1. Interpolation: Evaluate V = I1 V .
DG = DV
for . Note that lives at cell centroids and DG maps cell centroids to cell
centroids.
6. Subtraction: Compute
V proj = V G
d
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.
(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 bound-
aries,
(b) apply a MAC projection suitable for embedded boundary grids; (the adjust-
ments to the operators D and G are given in Section 2.3.2 where we extend
U Un h M in+1/2
+ (U )U + pn1/2 = 0
t
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
[
with (vuy )ij referring to a specific evaluation of the transverse derivative term. (For
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
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.
Algorithm 2.1 in Section 2.2.2 summarizes the projection step for a fully Cartesian
66
A popular algorithm for solving the Poisson problem = with inhomogeneous
& 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.
Like Almgren et al. [8], we define the divergence operator on cut cells by
Unlike a Cartesian cell, a cut cell also has a non-Cartesian face, which is part of the
this face. By choosing L = DG, by defining D as given in (2.6), and due to the Neu-
mann boundary conditions used for the Poisson problem, this property will be enforced
67
For projection methods, one typically tries to define G as the skew-adjoint operator of
For a Cartesian grid it is common, see, e.g., Bell et al. [20], to use the inner product
X
(, ) = ij ij h2 .
ij
For cut cells, the situation is more complicated. We define spaces S1 and S2 for cell and
S1 := ij cell centered ,
n o
y
S2 := = ( x , y ) i+1/2,j
x
centered on x edges, i,j+1/2 centered on y edges .
X
(, )S1 = ij ij Vij ,
ij
where Vij denotes the cell volume. It is non-trivial to define an inner product on S2 . We
y
yi,j+1/2 i,j+1/2 ,
X X
x
(, )S2 = i+1/2,j xi+1/2,j i+1/2,j + i,j+1/2
x edges y edges
with
We note that this is a somewhat arbitrary pick and does not correspond to a suitable
i+1,j i,j
Gx i+1/2,j x
= . (2.7)
i,j+1 i,j
Gy i,j+1/2 y
68
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
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
than the currently used G but to be more accurate and to result in a more favorable
matrix DG.
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
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
69
Figure 2.2: The values at the four marked cell centroids are used to fit a bilinear poly-
nomial, 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
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.,
(Gx )i+1/2,j + (Gx )i1/2,j
(I2 Gx )ij = .
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.
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
represents a scalar field. Then we test how well the projection removes the perturbation,
The result is shown in Table 2.1. We observe second order in the L1 norm. The
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
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.
perturbation Grid L1 error order L error order
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
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
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
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].
ut + (uu) + p = 0,
u = 0,
st + (us)x + (vs)y = 0.
cylinder with diameter D = 2.0 is used. There are inflow and outflow boundary condi-
tions 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
73
(a) vorticity (b) passive scalar
74
Figure 2.5 shows the vorticity and the passively advected scalar for a 96288 resolu-
tion 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
free-stream velocity and f being the vortex shedding frequency. We measure a Strouhal
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
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
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
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 solu-
tion 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
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
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/WENO-
type schemes have been developed for unstructured grids [3, 54, 68, 93]. For cut cells,
Here, we present a less diffusive alternative to the scalar limiter, the LP limiter.
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
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 ingre-
dient for several limiters developed for unstructured triangular and quadrangular grids.
Hubbard [69, 70] examines the possibilities of using a projection approach or a quadratic
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 discon-
tinuous Galerkin methods based on solving least squares problems with linear equality
and inequality constraints, and provide a general optimization algorithm for their solu-
tion. 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
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
Park et al. [94] was tested. The LP limiter did well in these tests, and in particular
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
show a non-negativity result for linear advection on cut cells using the LP limiter.
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 mono-
tonicity constraints. We will present details for the two limiters and discuss suitable
monotonicity constraints for cut cells. For concreteness, however, we first describe the
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
x1 xM y1 yM s1 sM
Dx
r = x2 xM y2 yM , (3.1)
s2 sM
Dy
x3 xM y3 yM s3 sM
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)
(xM , yM )
(x1 , y1 ) (x3 , y3 )
(x2 , y2 )
The limited reconstruction using the scalar limiter has the form
Dx x xM
s(x, y) = sM +
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.
The LP limiter uses two different scalars x , y [0, 1] to reduce the numerical
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,
lem: 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 un-
= (1 x )|Dx | + (1 y )|Dy |
81
(x , y ). This results in a problem of the form
x
min |Dx |x |Dy |y subject to A > b, (3.4)
x ,y
y
We now present two sets of monotonicity constraints that are suitable for cut cells:
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
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. (3.5)
(yj yM )Dy y
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 .
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
(xj xM )Dx x
if sM 6 sj : > (sj sM ), (3.6a)
(yj yM )Dy y
(xj xM )Dx x
> 0, (3.6b)
(yj yM )Dy y
(xj xM )Dx x
if sM > sj : > 0, (3.6c)
(yj yM )Dy y
(xj xM )Dx x
> sj sM . (3.6d)
(yj yM )Dy y
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)
dimension of A and b in (3.4) depends on the number of constraints one wants to enforce.
Relaxed constraints
83
with this line, the value at the edge midpoint will be a relative extremum and the limiting
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 linearity-
preserving 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.
boring centroids but limit using the min and max over all neighboring cells. The con-
(xj xM )Dx x
min(sM , s1 , ... . . . , sN ) 6 sM + 6 max(sM , s1 , . . . , sN ) (3.7)
(yj yM )Dy y
for j = 1, . . . , N .
We note that for both the standard and relaxed constraints, the resulting LP limiter
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
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
(xB xM )Dx x
sM + > 0, (3.8)
(yB yM )Dy y
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
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.
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].
Both the standard and the relaxed constraints only limit the reconstruction evaluated
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
85
(a) convex hull for cut (b) convex hull for Carte-
cell sian neighbor of cut cell
Figure 3.3: For a cut cell, all edge midpoints are contained in the convex hull of neigh-
boring 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
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
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
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
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 M 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
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.
An alternative to using the LP limiter is the recentering approach [28, 76]. In re-
centering, 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
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
and between M and Ecen differ). One possibility is to use the minmod limiter (recall
87
(1.5)) resulting in the x slope
sM sW sEcen sM
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
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.
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.
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.
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
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
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
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
needs to be solved only a few times. We need to solve tiny LPs, but we need to solve
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. .
case n=2 and m is typically 1015. The Simplex method is an iterative algorithm with
xk+1 = xk + k pk . (3.9)
90
In each iteration, the step length k and the descent direction pk need to be determined.
Working set Wk : Set of (exactly) n indices, each of which is the index of a constraint
that is active at xk .
T
a1 b1
. .
Ak = .. , and bk = .. ,
aTn bn
Set of decreasing constraints: For a given descent direction pk , the set of decreasing
constraints Dk is defined by
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,
Algorithm 3.1. Let xk be a vertex of the feasible set satisfying Axk > b and let Wk be
91
2. Examine the Lagrange multipliers k :
Otherwise select q such that (k )q < 0. This constraint will be removed from
(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
(c) For all i Dk calculate the maximum step length i that can be taken before
violating constraint i:
aTi xk bi
i .
aTi pk
(d) Calculate the largest step length possible that does not violate any constraints
as
k min (i ).
iDk
5. Update
92
i. Determine the set of blocking constraints Sk which contains all indices i
such that i = k .
vertex, Sk only contains one index. Details on which t to choose for our
(c) the working set matrix: Ak+1 Ak with row t replacing row q of A,
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.
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.
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.
(xj xM )Dx x
> 0 (3.10)
(yj yM )Dy y
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
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
Numerical issues
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
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.
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
we count one iteration of the all-inequality Simplex method as roughly equivalent to the
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.
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 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
For the LP limiter, we also include a positivity constraint at the boundary segment.
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
1
10
3
10
2
10
Error
Error
4
10
Unlimited Unlimited
Scstd Scstd
5 Screl 3 Screl
10 10
LPstd LPstd
LPrel LPrel
2 2
10 10
mesh width mesh width
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 lim-
iters, 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 er-
rors bounce between the two arcs. However, the error for the scalar limiter is significantly
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.
98
(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
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
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 E
B
QL
C
M
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
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
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
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
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
Therefore, we add monotonicity constraints to the LP at triangular cut cells for any
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
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
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
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.
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
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 one-
dimensional 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
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 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 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
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
In two dimensions, a geometric analysis showed that for planar geometry, the recon-
structed 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 us-
ing 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 ap-
proach 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
Theoretical considerations in one dimension show that flux bounding is more favor-
able 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
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
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
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
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
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
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
st + usx + vsy = 0.
neighboring centroids (not edge midpoints) using either the standard or the
(ii) on neighboring cells a limiting equivalent to (i) is used, which guarantees non-
107
(v) the time step satisfies the CFL-like condition
VM
t 6 , (A.1)
j:unj >0 u nj ej
P
6
where VM denotes the volume of cell M , nj denotes the unit normal vector of the
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
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
k
t X
sn+1 n
M = sM 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
sL u nj ej if u nj > 0,
Fj (sL , sR ) =
s u n e
otherwise.
R j j
k
t X
sn+1 n
M > sM Fj (sM (mj ), 0)
VM j=1
t X
= snM sM (mj ) u nj ej
VM j:unj >0
t X
> snM ML u nj ej
VM j:unj >0
t X
> snM 1 6 u nj ej .
VM j:unj >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
VM
t 6 . (A.4)
3 maxj |u nj ej |
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 .)
109
D E C
D E C
y J I
A B G
(0, 0) A B G
F (0, 0)
1
L x
(a) 4-sided cell (b) 5-sided cell
Before showing Lemma A.2, we provide some basic results about the centroid loca-
Lemma A.3. Consider the 4-sided cut cell in Figure A.1(a). For varying between 0
1 1 1 2
L 6 xC 6 L, y 6 yC 6 y.
3 2 2 3
Consider the 5-sided cut cell in Figure A.1(b). For 1 varying between 0 and x and 2
1 1 1 2
x 6 xC 6 x, y 6 yC 6 y.
3 2 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
ABCD xdx F CD xdx F BA xdx
xC = R =
ABCD 1dx AABCD
R R
AF CD F CD xdx/AF CD AF BA F BA xdx/AF BA
=
AABCD
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
ABCD xdx AGCD xdx BGC xdx
xC = R =
ABCD 1dx AABCD
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
of the centroid of cell ABED, we have yC (ABED) = 12 y. For yC (BCE) there holds
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
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
111
z2
c z3 (0, 0) e2
2 e3
z1 M e1
1 eB
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
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 mid-
points e1 and e2 and the boundary edge midpoint eB of the triangle cell. Furthermore,
1 1
Z
(sM (e1 ) + sM (e2 ) + sM (eB )) = sM (x)dx = sM ,
3 VM M
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
is that for centroid z1 , there holds x(z1 ) 6 x
2 and y(z1 ) > 2 . Using that sM
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 1 1
x 6 xM 6 x, 1 6 yM 6 1 .
3 2 2 3
sM 3sM
sM + (0 xM )x Dx + (yM yM )y Dy > 0 x Dx 6 6 .
xM x
Similarly, using that (xM , 0) also lies on the light blue line, we get
3sM
y Dy > .
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 )
there holds
As x(eB ) xM > 0, we make the right hand side as negative as possible by using the
1 3sM 3
(y(eB ) yM )y Dy > sM x = sM .
6 x 2
113
This implies
3
2 sM 9sM
y Dy 6 6 .
yM y(eB ) 1
1 9sM
(x(e3 ) xM )x Dx > sM 1 = 4sM .
3 1
8sM
x Dx > .
x
Using the upper and lower bounds for x Dx and y Dy for evaluating sM at the edge
5-sided cell: The situation of the 5-sided cell is shown in Figure A.3. For the location
1 1 1 2
x 6 xM 6 x, y 6 yM 6 y.
3 2 2 3
e2
e3 2
e1
(0, 0) e4 1
eB
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
3sM 3sM
x Dx 6 , y Dy > .
x y
deduce x Dx > 2s M
x . Now we are left with the tricky case.
8sM 6sM
x Dy > , y Dy 6 .
x y
6sM
We assume y Dy > y . Using the point e4 , there holds
Based on the assumptions and the geometry of the cell x Dx (x(e4 ) xM ) > 0 and
make sure that the overall sum is still positive. This implies
6sM 1
x Dx (x(e4 ) xM ) > sM y Dy (y(e4 ) yM ) > sM + y = 2sM .
y 2
As xM x(e4 ) 6 12 x, we deduce
4sM
x Dx 6
x
115
6sM
as a consequence of assuming y Dy > y .
Using the upper bound for x Dx and the lower bound for y Dy , we define
4sM 6sM
f (x(eB ), y(eB ), xM , yM ) := (x(eB ) xM ) + (y(eB ) yM ).
x y
We deduce analytic formulae for the exact positions of x(eB ), y(eB ), xM , and yM de-
pending 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
6sM
Therefore, there is no possible configuration of a 5-sided cell such that y Dy > y ,
x Dx 6 4s
x , and the evaluation of sM at eB is still positive. This implies that our
M
6sM
assumption was wrong and we conclude y Dy 6 y . We use the point e3 to deduce
x Dy > 8s M
x .
We now evaluate the 4 different cases at all edge midpoints and the boundary edge
Remark. The focus of this proof is not on computing optimal bounds. We want to
116
Bibliography
[2] https://ccse.lbl.gov/Downloads/downloadAmrvis.html.
117
[9] A. S. Almgren, J. B. Bell, P. Colella, L. H. Howell, and M. L. Welcome. A conser-
vative adaptive projection method for the variable density incompressible Navier-
Stokes equations. J. Comput. Phys., 142:146, 1998.
[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.
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.
[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 Mathe-
matics and Computing Laboratory, New York University, 2002. Technical Report
02-001.
119
[29] P. Birken and A. Jameson. On nonlinear preconditioners in Newton-Krylov meth-
ods 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 unstruc-
tured meshes. J. Comput. Phys., 229:37453776, 2010.
[32] D. Calhoun. A Cartesian grid method for solving the streamfunction vorticity equa-
tions in irregular geometries. PhD thesis, Department of Applied Mathematics,
University of Washington, 1999.
[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.
120
[40] V. Chvatal. Linear Programming. W. H. Freeman and Company, 1983.
[43] P. Colella. A direct Eulerian MUSCL scheme for gas dynamics. SIAM J. Sci. Stat.
Comput., 6:104117, 1985.
[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.
121
[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 rep-
resentation of Runge-Kutta methods. Math. Comput., 74(249):201219, 2004.
[55] R. Gaffney, H. Hassan, and M. Salas. Euler calculations for wings using Cartesian
grids. Paper AIAA 87-0356-CP, 1987.
[57] P. E. Gill, W. Murray, and M. H. Wright. Numerical Linear Algebra and Opti-
mization, volume 1. Addison-Wesley Publishing Company, 1991.
[58] S. Gottlieb and C. Shu. Total variation diminishing Runge-Kutta schemes. Math.
Comput., 67:7385, 1998.
[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.
[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.
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.
[75] P. Jawahar and H. Kamath. A high-resolution procedure for Euler and Navier-
Stokes 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.
[82] R. J. LeVeque. Finite Volume Methods for Hyperbolic Problems. Cambridge Uni-
versity 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.
[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.
[90] G. H. Miller and D. Trebotich. An embedded boundary method for the Navier-
Stokes equations on a time-dependent domain. Comm. App. Math. and Comp.
Sci., 7:132, 2012.
125
[93] C. F. Ollivier-Gooch. Quasi-ENO schemes for unstructured meshes based on un-
limited 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 hy-
perbolic conservation laws on unstructured grids. J. Comput. Phys., 229:788812,
2010.
[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.
[102] M. Spker. Contractivity in the numerical solution of initial value problems. Nu-
mer. 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 conserva-
tion laws. SIAM J. Numer. Anal, 21:9951011, 1984.
[106] E. F. Toro. Riemann Solvers and Numerical Methods for Fluid Dynamics. Springer,
3rd edition, 2009.
[109] B. van Leer. Towards the ultimate conservative difference scheme, V. a second
order sequel to Godunovs methods. J. Comput. Phys., 32:101136, 1979.
[112] S. Wang, J. Glimm, R. Samulyak, X. Jiao, and C. Diao. The embedded boundary
method for two phase incompressible flow. Preprint, 2013.
127
[115] S. T. Zalesak. Fully multidimsional flux-corrected transport algorithms for fluids.
J. Comput. Phys., 31:335362, 1979.
128