Академический Документы
Профессиональный Документы
Культура Документы
in Complex Geometries
by
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
Dedication
iii
Acknowledgements
First and foremost, I would like to thank my advisor Professor Marsha Berger. Without her extraordinary insight in a wide range of computational challenges and her continual support and enthusiasm, this work would not have been possible. I am also grateful
for her help during my postdoc applications and my summer internships at Lawrence
Berkeley National Laboratory (LBNL). But above all, I appreciate the fact that her door
was always open for me, no matter when, no matter what.
Another big thank you goes to my collaborators at the Center for Computational
Sciences and Engineering at LBNL, in particular to John Bell, Ann Almgren, and Andy
Nonaka. I had two wonderful and productive summers in Berkeley, both of which became
very valuable parts of my PhD.
I am also grateful to all the professors at Courant that I have met, taken courses
from, and have collaborated with on research. It has been a pleasure to study at a place
with such a distinguished, broad, and vibrant numerical community. I would especially
like to thank Professor Olof Widlund for being an additional mentor throughout my
PhD. I would also like to thank Professor Margaret Wright for her help with the LP
limiter. Another thank you goes to the members of my thesis committee for their help
and feedback: Professors Marsha Berger, Aleksandar Donev, Jonathan Goodman, Leslie
Greengard, and Olof Widlund. Furthermore, I would also like to thank my former advisor
Professor Rolf Rannacher from the University of Heidelberg for his scientific advice over
the years and for providing me with a thorough foundation in numerical analysis.
A special thank you goes to all my wonderful friends at Courant, who have not only
been scientific peers but who have also encouraged me to take breaks and have enriched
my cultural understanding. In particular, Dharshi Devendran, Ken Ho, Tim Mitchell,
Andras Pataki, Jim Portegies, Adam Stinchcombe, Giulio Trigila, and Irena Vankova, as
well as the Machu-Picchu-travelers and my Volleyball teammates, thank you all. And
for her reliable support through times of minor and major crises, I would like to thank
iv
Tamar Arnon.
Finally, I would like to thank my family, particularly my parents, for their neverending support throughout my life and especially in the past five years, when my studies
have taken me far from home. And the very last thank you is for Ulli for being
an essential part of my life, for providing constant encouragement and advice, and for
making me laugh like no one else can.
Abstract
In this dissertation, we develop Cartesian embedded boundary methods for flow around
bodies with complicated geometries. These methods, also referred to as cut cell methods,
cut the body out of a regular Cartesian grid. As a result, most of the grid is regular but
special methods must be developed for the cut cells that intersect the solid boundary.
The dissertation is divided in three parts. The first part describes a mixed explicit
implicit scheme for solving the linear advection equation. It couples an explicit finite
volume scheme to an implicit scheme on only the cut cells. This approach avoids the
small cell problem that standard explicit finite volume methods are not stable on
arbitrarily small cut cells. We examine two different ways of handling the coupling. We
refer to them as cell bounding and flux bounding, depending on the kind of information
that is used as input for the implicit scheme. For using flux bounding on our model
problem, we prove a TVD result. We also examine different candidates for the implicit
scheme. Numerical results in two dimensions for the resulting scheme indicate secondorder accuracy in the L1 norm and between first- and second-order accuracy in the L
norm.
The second part describes the extension of an existing projection algorithm for the
incompressible Euler equations from Cartesian to Cartesian embedded boundary grids.
The mixed explicit implicit scheme is the main ingredient for extending the advection
step to cut cells. We also adjust all operators used in the projection step. We present
initial results in two dimensions for a full projection algorithm.
In the third part of this work we present a new slope limiter designed for cut cells.
Standard slope limiters do not easily apply to cut cells. Most practitioners use a scalar
limiter, where all components of a gradient are limited by the same scalar. We develop
a new limiter based on solving a tiny linear program for each cut cell, which separately
limits the x and y slope in a linearity preserving way. We present computational results
in two dimensions showing significantly improved accuracy.
vi
Contents
Dedication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iii
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ix
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xi
Introduction
Notation
1.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
1.3
Two-dimensional generalization . . . . . . . . . . . . . . . . . . . . . . . . 32
1.4
Numerical results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.5
. . . . . . . . . . . . . . . . . . . . . . . . . 54
58
2.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.2
2.3
2.4
Numerical results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
vii
. . . . . . . . . . . . . . . . . . . 64
2.5
. . . . . . . . . . . . . . . . . . . . . . . . . 75
3 The LP limiter
77
3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.2
Description of LP limiter
3.3
3.4
Numerical results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.5
. . . . . . . . . . . . . . . . . . . . . . . . . . . 79
. . . . . . . . . . . . . . . . . . . . . . . . . 103
Conclusions
105
107
Bibliography
117
viii
List of Figures
1
. . . . . . . . . . . . . . . . . .
1.1
1.2
1.3
1.4
Two approaches for switching the schemes: cell bounding and flux bounding 15
1.5
1.6
1.7
1.8
1.9
ix
2.2
2.3
2.4
2.5
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
. . . . . . . . . . . . . . . . . . . 100
List of Tables
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
2.1
xi
Introduction
Cartesian embedded boundary methods, also referred to as cut cell methods, were
developed in recent years for computing fluid flow around bodies with complicated geometries. They cut the flow body out of a regular Cartesian grid, as illustrated in Figure
1.
(b) Three-dimensional
burner
example:
Cut cells can have irregular shape. In two dimensions, the boundary segment of the body is typically
replaced by a line segment. The resulting cut cells are
three, four or five sided cells. The size of neighboring cells might differ by several orders of magnitude as
shown in Figure 2. In particular, cut cells can be arbiFigure 2: Close-up of the em-
trarily small.
The irregular geometry of cut cells causes various
bedded boundary.
numerical problems; e.g., special methods for slope reconstruction and limiting must
be developed. The biggest challenge for cut cell methods is the small cell problem for
hyperbolic problems: explicit finite volume methods using a time step constraint coupled
to the size of regular Cartesian cells are not stable on the arbitrarily small cut cells.
This is not an issue for steady-state problems since local time stepping can be used, and
explains the early popularity of cut cell methods for this problem type [41, 48, 49, 55].
For unsteady flow the small cell problem must be overcome. One common approach is
cell merging. There, cut cells that are too small are merged with neighboring cells. Then,
standard methods that are adjusted to the irregular geometry of cut cells can be used.
Different versions have been developed by, e.g., Chiang et al. [35], Quirk [97], Falcovitz
et al. [51], Causon et al. [33], Hunt [72], Ji et al. [77], and Hartmann et al. [64, 65]. While
the idea of cell merging is very simple, the practical implementation, in particular in
three dimensions, is very complicated.
Another approach to the small cell problem is to develop algorithms that can handle arbitrarily small cells. The flux redistribution method, originally developed for shock
tracking by Chern & Colella [34], was extended to embedded boundary problems by Pember et al. [95] and Colella et al. [46, 47]. The method has successfully been used in twoand three-dimensional simulations, but it is only first order accurate at the embedded
boundary. The h-box method developed by Berger, Helzel, and LeVeque [2325, 27, 66]
guarantees stability on small cut cells by constructing numerical fluxes that possess a
suitable cancellation property. This two-dimensional method is second-order accurate
along the boundary, but there does not exist a three-dimensional implementation due to
its complexity.
In this dissertation, we do not use cell merging but develop specialized methods for
potentially very small cut cells. One major goal of our work has been to develop a
solution to the small cell problem that is second order at the embedded boundary but
sufficiently simple to be used in three dimensions.
In the following, we assume that the reader is familiar with finite volume methods
on Cartesian grids [82, 106]. To make second-order accuracy possible, we treat the cell
values of conserved quantities (density, etc.) as point values at the center of mass of a
cell. For cut cells, the center of mass must be calculated as part of the grid generation
process. We focus on cut cell methods in two dimensions throughout this work, but for
all our methods the possibility of straightforward extension to three dimensions has been
one of our main design criteria.
The dissertation is split in three parts. In each chapter, a more detailed discussion
of the relevant literature will be given.
In Chapter 1, we focus on solving the small cell problem for the linear advection
equation. We couple an explicit scheme that is used on most Cartesian cells to an
implicit scheme on cut cells only. We examine various ways of handling the coupling
and various implicit candidates for the one-dimensional problem. The most promising
version is then extended to two dimensions. Numerical results imply that our resulting
scheme is second order in the L1 norm and between first and second order in the L
norm.
The mixed explicit implicit scheme is then used in Chapter 2 to solve the incompressible Euler equations. We extend an existing projection method by Bell et al. [7, 9, 19, 20]
from Cartesian meshes to embedded boundary meshes. This method uses an explicit
scheme to predict velocities at the next time step neglecting the incompressibility condition. The mixed explicit implicit scheme is the main ingredient for extending this
part of the projection algorithm to cut cells. We also adjust the projection operator to
embedded boundaries by defining suitable interpolation, divergence, and gradient operators. We present preliminary numerical results employing the full projection algorithm
on embedded boundary grids in two dimensions.
Chapter 3 is devoted to a different aspect of cut cell methods: the limiting of reconstructed slopes on cut cells. Standard slope limiters cannot easily be used on cut cells
as their centroids do not align with neighboring cell centroids. Most practitioners use a
scalar limiter that limits the x and y slope with the same scalar . We use two different
scalars x and y for the two gradient components. We formulate the limiting as a
tiny linear program (LP) and suggest a very efficient method to solve these problems.
Numerical results show a significantly improved accuracy for the LP limiter compared
to the scalar limiter. This work has been published by May & Berger [87].
We conclude this dissertation with thoughts about future directions.
Notation
We begin by introducing some notation that we will use throughout the dissertation.
By cutting the object out of the Cartesian background grid, we introduce three main cell types: flow
cells, cut cells, and solid cells. The latter refers to cells
that are fully covered by the body. The three types are
C
F
F
illustrated in Figure 3.
S
C
C
F
C
F
Figure 3:
the cell centroid. We often say, informally, that qij is located at the cell centroid.
We denote edge centered quantities by
qi+1/2,j and qi,j+1/2 , respectively. Typically,
qi,j+1/2
qi+1/2,j
qij
qi,j1/2
at Lawrence Berkeley National Laboratory (LBNL); they interpret the value qij for a
cut cell (i, j) as the value at the Cartesian center of the corresponding uncut cell.
By i+1/2,j , i,j+1/2 [0, 1] we refer to the area fractions of a cut cell of edges (i +
1/2, j) and (i, j + 1/2), respectively, compared to a Cartesian cell. The case i+1/2,j = 0
corresponds to a non-existing edge. The volume fraction, defined as the volume of a cut
cell divided by the volume of a Cartesian cell, is denoted by ij (0, 1]. (For our model
problem in one dimension in Chapter 1, we will use to denote the volume fraction of
the only small cell.)
Finally, we try to reserve the letter U for velocity; not always successfully though.
In two dimensions, capital U or bold u refer to the two velocity components (u, v),
whereas little u and little v refer to the velocity in the x and y direction only.
Chapter 1
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
velocity field with no flow boundary conditions on the embedded boundary.
The main issue in solving the linear advection equation on a cut cell grid is the so
called small cell problem: for most (explicit) finite volume schemes, the time step t is
coupled to the size of a cell by means of the CFL condition. Cut cells can be arbitrarily
small. We want to use a scheme for which t is chosen according to the size of regular
Cartesian cells, but which is also stable on cut cells.
Two well known methods that have this stability property are the flux redistribution
method [46, 47, 95] and the h-box method [27, 66]. The flux redistribution method
redistributes fluxes from small cut cells to neighboring cells in a volume-weighted way.
It has successfully been used in two- and three-dimensional simulations. However, the
redistribution leads to a loss of accuracy around the boundary of the object. The resulting
scheme is second order globally in L1 but only first order in L . In many interesting
applications, such as fluid-structure interaction problems or aerodynamic applications,
the solution along the boundary is very important. Therefore, a higher order method
along the boundary is desirable.
The h-box method extends the domain of dependence of a cut cell to guarantee
stability. To do so, h-boxes in various directions are constructed and rotated stencils are
used. This works very well in two dimensions. The method is second-order accurate in
both L1 and L . However, so far an extension to three dimensions is not known due to
the complexity of the scheme.
Our goal is a solution to the small cell problem that is simple enough to be implemented in both two and three dimensions and that results in second-order accuracy
at the boundary. Our approach is the following: we will use an implicit time stepping
scheme on cut cells to guarantee stability. Away from the cut cells we will use an explicit
scheme to avoid excessive cost. This necessitates switching between two different time
stepping schemes. The goal of this chapter is to find a good way to switch. Examining
efficient ways to solve the resulting implicit systems will be future work.
This approach is different from using IMEX (implicit - explicit) Runge-Kutta schemes
as, e.g., described by Ascher et al. [12]. In such a scheme, an equation of the form
ut + f (u) + g(u) = 0 is solved and an explicit scheme is used for the operator f and
an implicit scheme is used for the operator g. One common instance is the solution of
advection-diffusion equations, for which one often treats the diffusion term implicitly
and the advection term explicitly. In the scheme described in this chapter we solve an
equation of the form ut + f (u) = 0 and treat f explicitly in one part of the grid and
implicitly in another part of the grid.
1.2
st + usx = 0,
u > 0 constant,
(1.1)
ut
.
x
(1.2)
This section provides the theoretical part of the scheme development. Some numerical
results in one dimension are shown to support the presented theory.
1.2.1
As explicit scheme in our mixed explicit implicit method, we use the MUSCL scheme
(Monotonic Upwind Scheme for Conservation Laws). The MUSCL scheme was originally
introduced by van Leer [109] and extended by Colella [43]. It has been used in many
scientific codes.
Our main reason for using the MUSCL scheme, besides it being a good scheme, is the
following: The mixed scheme developed for linear advection equation in this chapter will
be used as part of a projection method in Chapter 2. There, we will extend an existing
projection method for Cartesian grids to Cartesian embedded boundary grids. The use
of the MUSCL scheme allows us to easily use the incompressible flow algorithms and
software developed by Bells group at LBNL, see Chapter 2.
We describe the version of MUSCL we use. The approximate solution values are
sni s(xi , tn ). A time step takes the form
n+1/2
n+1/2
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
and si+1/2
si+1/2
n+1/2,R
si+1/2
t n
x n
s +
s ,
2 x,i
2 t,i
x n
t n
= sni+1
sx,i+1 +
s
.
2
2 t,i+1
= sni +
sn+1
i1
n+1
sn+1
i
n+1/2,L
n+1/2,L
si1/2
n+1/2,R
si3/2
sn+1
i+1
n+1/2,L
si+1/2
n+1/2,R
si1/2
si+3/2
n+1/2,R
si+1/2
tn
sni1
sni
sni+1
10
Here, snt,i t s(xi , tn ). We replace the unknown time derivative st by the space derivative
sx using the differential equation: st = usx . This results in
n+1/2,L
si+1/2
n+1/2,R
si+1/2
t
x
x n
s u snx,i = sni + (1 )snx,i
,
2 x,i
2
2
x n
t
x
= sni+1
sx,i+1 u snx,i+1 = sni+1 (1 + )snx,i+1
.
2
2
2
= sni +
(1.3a)
(1.3b)
n+1/2
The state si+1/2 is then given by upwinding. Therefore, for our model problem, the
MUSCL scheme has the form
n+1/2,L
sn+1
= sni si+1/2
i
n+1/2,L
si1/2
(1.4)
Based on its construction, the MUSCL scheme is second-order accurate for unlimited
slopes.
We calculate unlimited slopes using a central difference quotient. For limiting we
can choose any of the classical one-dimensional limiters [82, 104] as the MUSCL scheme
is used on the equidistant part of the grid. Typically, we use the monotonized central
difference (MC) limiter [109]. We note that in the case of piecewise constant data, i.e.,
n+1/2,L
with the classical upwind method/with using explicit Euler time stepping.
1.2.2
To study the small cell problem, we consider the model problem shown in Figure 1.2:
We assume an equidistant grid of width x except for cell 0, which has length x,
(0, 1]. The factor denotes the volume fraction (compared to a regular cell).
Using a conservative update formula, the update on the small cell takes the form
sn+1
= sn0
0
i
t h
F1/2 F1/2 .
x
11
tn+1
-2
-1
tn
Figure 1.2: 1d model problem: Equidistant grid with one small cell of length x labeled
as cell 0.
Many standard finite volume schemes, such as the upwind scheme and MUSCL with
unlimited slope reconstruction, require
0<
ut
<1
x
for stability. Therefore, we would need to choose t based on the size of the small cell.
Instead, we like to choose t based on x, i.e., such that
ut
< 1.
x
In that case, the value on the small cell may blow up for small, provided fluxes are
computed by a standard explicit finite volume scheme. The idea of the h-box method is
to construct special fluxes such that F1/2 F1/2 = O() to avoid this.
Our approach to overcome the small cell problem is to treat the small cell implicitly.
On normal-sized Cartesian cells, we use a standard explicit scheme. As a result, there is
a transition zone on both sides of the small cell.
1.2.3
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
si+1 si
xi+1 xi
r=
sx,i
si1 si
xi1 xi
and find sx,i as the least squares solution to minsx,i krk2 . Some algebra gives
sx,i =
(xi+1 xi )2
(xi xi1 )2
D
s
+
D si ,
+
i
(xi+1 xi )2 + (xi xi1 )2
(xi+1 xi )2 + (xi xi1 )2
with D+ si = (si+1 si )/(xi+1 xi ) and D si = (si si1 )/(xi xi1 ). The least squares
gradient is linearity preserving, i.e., exact for a linear function. On a uniform grid, it
simplifies to the central difference quotient.
For limited slope reconstruction, we use the minmod limiter. This limiter extends
in a straightforward way to a non-uniform grid. It reconstructs to both neighboring
cell centroids and makes sure to not over/undershoot the neighboring cells value. For
non-uniform grid, the minmod limiter is given by
sminmod
= minmod (D si , D+ si ) ,
x,i
minmod(a, b) =
1.2.4
(1.5)
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
1. to ensure conservation of mass,
13
tn+1
updated by
explicit
scheme
tn
-3
-2
-1
Figure 1.3: Explicit cells have been updated (empty circles), the neighborhood of the
small cell has not yet been done.
2. to guarantee monotonicity properties,
3. to minimize the loss of accuracy when switching between the explicit and implicit
scheme,
4. to keep the number of cells treated implicitly as small as possible in order to keep
the cost small.
We will consider the third point in more detail in Section 1.2.5, where we will discuss
suitable implicit schemes to use. For now, we focus on the other three criteria.
For the discussion in this subsection we will focus on using implicit Euler as the
implicit scheme. This scheme is unconditionally SSP (strong stability preserving) [59,
Lemma 6.1]. There does not exist a second-order scheme with this property [80, 102].
Therefore, if a specific way of switching violates monotonicity properties for implicit
Euler, it probably will also cause problems when combined with a higher-order implicit
scheme. For the explicit scheme, we will use the MUSCL scheme or explicit Euler time
stepping.
1.2.4.1
We first update the explicit cells and then update the implicitly treated cells. We
consider two different approaches, which we call cell bounding and flux bounding. We
will show that a mixed scheme using flux bounding has better stability and monotonicity
properties than a mixed scheme using cell bounding.
14
tn+1
impl. scheme
influence of
expl. on impl.
scheme
tn
-3
-2
-1
1
2
3
0
n+1
n+1
(a) Cell bounding: values s2 and s2 are input for implicit scheme.
tn+1
impl. scheme
influence of
expl. on impl.
scheme
tn
-3
-2
-1
1
2
3
0
(b) Flux bounding: fluxes F3/2 and F3/2 are input for implicit scheme.
Figure 1.4: Two approaches for switching the schemes: cell bounding and flux bounding.
Before examining the two options in detail, we give the main ideas. Consider Figure
1.3. Here, all cells except for cells 1, 0, and 1 have been updated to time tn+1 using an
explicit scheme. One possibility is to use the value sn+1
2 as input for the implicit scheme
that is applied on cells 1, 0, and 1. This is shown in Figure 1.4(a). We refer to this
way as cell bounding.
Another possibility is to employ the fluxes of the explicit scheme: in order to update
cell 2, we assumed a certain flux F3/2 (given by the explicit scheme). We can consider
this flux as given. The same holds true for F3/2 . This is shown in Figure 1.4(b). In this
case, we only compute fluxes F1/2 and F1/2 using the implicit scheme. We refer to this
way of switching the scheme as flux bounding.
The next sections describe the options in more detail.
15
1.2.4.2
Cell bounding
Here, we use the first-order upwind scheme as the explicit scheme. We first update
all cells except for cells 1, 0, and 1 using the upwind scheme. In particular this implies
n
n
n
sn+1
2 = s2 s2 s3 ,
sn+1
= sn2 (sn2 sn1 ) .
2
We want to use implicit Euler on cells 1, 0, and 1 given by
n+1
n+1
n
sn+1
,
1 = s1 s1 s2
sn+1
= sn0
0
n+1
s0 sn+1
,
1
sn+1
, which then is used to compute sn+1
.
0
1
This scheme however is not conservative. When updating cell 2 using the explicit
scheme, we assumed that the flux usn2 is leaving cell 2. But when we updated cell 1
using the implicit scheme, we assumed that the flux usn+1
2 is entering cell 1. There is
a similar problem for the flux between cells 1 and 2.
To ensure mass conservation, we need to add a conservation fix in a post processing
step. We focus on the problem between cells 2 and 1. Two possible options to fix
this issue are:
1. Fix explicit cell 2: Compute preliminary state sn+1
2 using the explicit scheme,
16
n+1
compute sn+1
n+1
1 using the implicit scheme, adjust s
2 resulting in s2 , i.e,
n
n
n
sn+1
2 = s2 s2 s3 ,
(1.6a)
n+1
n
sn+1
n+1
,
1 = s1 s1 s
2
(1.6b)
n
sn+1
n+1
sn+1
2 = s
2 + s2
2 .
(1.6c)
n
n
n
sn+1
2 = s2 s2 s3 ,
(1.7a)
n+1
n
sn+1
n+1
,
1 = s1 s
1 s2
(1.7b)
n+1
n
sn+1
n+1
1 = s
1 + s2 s2 .
(1.7c)
3
> 1,
1+
for > 0. This is outside of the range of values of sni and therefore an overshoot. Also,
monotonicity will not be preserved as sn+1
= 1 for i > 3.
i
We now consider the scheme (1.6), which fixes the explicit cells. This scheme can
cause oscillations. (For a definition of TVD see Definition 1.2.)
Lemma 1.2. The scheme (1.6) is not monotonicity preserving or TVD for
17
51
2 ,1
-3
-2
-1
0
1
(a) given data at tn
-3
-2
-1
0
1
n+1
(b) computed solution at t
Figure 1.5: Data at tn and computed solution for explicit Euler and implicit Euler time
stepping and fixing explicit cells -2 and 2 for = 0.9 and = 1. (Even though we use
= 1 for simplicity we still apply the mixed explicit implicit scheme (1.6).)
Proof. Consider again sni = 0 for i 6 3 and sni = 1 for i > 2. We show that the
solution at time tn+1 is not monotone for
51
2 ,1
2
sn+1
2 = 1 +
and
sn+1
1 =
1 + 2
.
1+
Therefore,
n+1
sn+1
2 6 s1
1.2.4.3
5+1
2
and 6
51
2
2 + 1 6 0.
0.62.
Flux bounding
The idea of flux bounding is shown in Figure 1.4(b). We first update all cells except
for cells 1, 0, and 1 using explicit Euler time stepping. For cells 2 and 2 this implies
n
n
n
sn+1
2 = s2 s2 s3 ,
sn+1
= sn2 (sn2 sn1 ) .
2
18
Therefore, the fluxes F3/2 = usn2 and F3/2 = usn1 are already determined from the
explicit scheme. We want to use the implicit Euler scheme on the small cell 0. This
implies the following formulae for cells 1, 0, and 1:
n+1
n
n
sn+1
1 = s1 s1 s2 ,
n+1
n+1
n
s
s
,
sn+1
=
s
0
1
0
0
sn+1
= sn1 sn1 sn+1
.
1
0
(1.8a)
(1.8b)
(1.8c)
Note that both cells 1 and 1 are transition cells with one flux computed explicitly and
the other one implicitly. We refer to these cells as irrflow cells: they are full Cartesian
(flow) cells that are treated in an irregular manner.
Remark. This mixed scheme is conservative by construction.
We now examine the monotonicity properties of flux bounding.
= H(sn ; j)
Definition 1.1 (Monotone Scheme). A differentiable scheme of the form sn+1
j
is said to be monotone if
H n
(s ; j) > 0,
sni
i, j, sn .
Lemma 1.3. Consider explicit Euler time stepping coupled to implicit Euler time stepping through flux bounding as described in (1.8). The resulting scheme is monotone for
the linear advection equation (1.1) under the condition 0 6 6 1.
Proof. The explicit part of the scheme is given by
sn+1
= sni sni sni1 = (1 ) sni + sni1 ,
i
19
1
1
n
=
s
+
sn+1 =
0
1
1+
1+
1+
sn+1
1 =
sn+1
0
sn +
0
1+
1 n
n
s +
s
,
1 + 1 1 + 2
sn+1
= (1 ) sn1 + s0n+1 .
1
n+1
Therefore, all of sn+1
, and sn+1
can be written as convex combinations of data at
1 , s0
1
T V (s) =
|si si1 |.
i=
The standard way to show that a scheme is TVD is to employ the theorem by Harten
n
n
[63]. This theorem gives criteria for Ci1/2
and Di+1/2
, which are sufficient for a scheme
20
of the form
n
n
sn+1
= sni Ci1/2
sni sni1 + Di+1/2
sni+1 sni
i
(1.9)
n
n
to be TVD. The coefficients Ci1/2
and Di+1/2
are often functions of the solution sni .
Using Hartens theorem, see [63, 82, 106], it is straightforward to show the following
lemma.
Lemma 1.4. The MUSCL scheme with minmod limiter is TVD for the linear advection
equation (1.1) on a uniform grid under the time step constraint 0 6 6 1.
Proof. The scheme is given by
sn+1
= sni sni + (1 )snx,i
i
x
x
sni1 (1 )snx,i1
.
2
2
n
Comparing with the form (1.9) in Hartens theorem, we set Di+1/2
= 0 and define
n
Ci1/2
=
x
n
n
sni + (1 )snx,i x
2 si1 (1 )sx,i1 2
,
sni sni1
snx,i
snx,i1
x
x
= 1+
(1 ) n
(1
)
2
si sni1
2
sni sni1
06
1
x snx,i
6 ,
n
n
2 si si1
2
06
x snx,i1
1
6 .
n
n
2 si si1
2
Therefore,
1
1
n
1 (1 ) 6 Ci1/2
6 1 + (1 ) .
2
2
n
For 0 6 6 1, this implies 0 6 Ci1/2
6 1. This concludes the proof.
We now consider the mixed scheme using MUSCL as explicit scheme and implicit
Euler without slope reconstruction as implicit scheme, applied to our model problem,
21
i.e.,
..
.
x
x
,
sn4 (1 )snx,4
2
2
x
= sn2 sn2 sn3 (1 )snx,3
,
2
n
n
n
sn+1
3 = s3 s3 + (1 )sx,3
sn+1
2
(MUSCL)
n+1
n
n
sn+1
1 = s1 s1 s2 ,
sn+1
= sn0
0
i
h n+1
s0 sn+1
,
1
,
sn+1
= sn1 sn1 sn+1
1
0
sn+1
2
sn+1
3
sn2
sn2
+ (1
x
)snx,2
sn1
,
2
n
n x
n
n
n x
s2 (1 )sx,2
,
= s3 s3 + (1 )sx,3
2
2
..
.
=
(MUSCL)
(1.10)
(Note that we dropped slopes for fluxes F3/2 and F3/2 .) We cannot directly use Hartens
theorem to show that this scheme is TVD, but we can reuse the idea of its proof.
Theorem 1.1. The scheme (1.10) is TVD for 0 6 6 1.
Sketch of proof of Theorem 1.1. The proof is split in three parts.
Part 1: Explicit part of scheme
The MUSCL scheme can be written as
n
sn+1
= sni Ci1/2
sni sni1
i
n
n
with suitably defined Ci1/2
, which fulfill 0 6 Ci1/2
6 1. This relation holds on all cells
i 6 3 and all cells i > 3 as well as on cells 2 and 2 (where we drop the slopes on one
22
n+1
|sn+1
|6
i+1 si
i63
n
|sni+1 sni | C5/2
|sn2 sn3 |
i63
and
n+1
|sn+1
|6
i+1 si
i>2
i>2
n
|sni+1 sni | + C3/2
|sn2 sn1 |.
1 n
n
n
sn2 sn3 ,
s1 +
s2 sn2 + C5/2
1+
1+
1
n
=
sn1 sn2 + C5/2
sn2 sn3 .
1+
n+1
sn+1
1 s2 =
This implies
n+1
|sn+1
1 s2 | 6
1
n
|sn sn2 | + C5/2
|sn2 sn3 |.
1 + 1
23
n+1
We continue with sn+1
sn+1
sn+1
, . . . , to get the following estimates
0
1 , s1
0
1
n
|sn sn2 | + C5/2
|sn2 sn3 |,
1 + 1
1
1
|sn sn1 | +
|sn+1
sn+1
|sn sn2 |,
0
1 | 6
0
1 + 1
1+
1+
n+1
|sn+1
1 s2 | 6
|sn+1
sn+1
| 6 (1 )|sn1 sn0 | + (1 )
1
0
+ (1 )
1+
1+
|sn0 sn1 |
|sn sn2 |,
1 + 1
n
|sn+1
sn+1
| 6 (1 C3/2
)|sn2 sn1 | + |sn1 sn0 |
2
1
1+
|sn sn1 | +
0
1+
|sn sn2 |.
1 + 1
n+1
|sn+1
|6
i+1 si
|sni+1 sni |.
n+1
|sn+1
|=
i+1 si
n+1
n+1
n+1
|sn+1
| + |sn+1
sn+1
1 s2 | + |s0
1 |
i+1 si
i63
+ |sn+1
sn+1
| + |sn+1
sn+1
|+
1
0
2
1
n+1
|sn+1
|
i+1 si
X
i>2
X
i
n+1
|sn+1
|6
i+1 si
n
|sni+1 sni | C5/2
|sn2 sn3 | +
i63
n
|sni+1 sni | + C3/2
|sn2 sn1 |
i>2
n+1
n+1
n+1
sn+1
|. (1.11)
sn+1
sn+1
| + |sn+1
+ |sn+1
1 | + |s1
0
2
1
1 s2 | + |s0
n+1
n+1
n+1
|sn+1
sn+1
sn+1
| + |sn+1
sn+1
|
1 s2 | + |s0
1 | + |s1
0
2
1
24
|sn2 sn3 | :
n
C5/2
,
|sn1 sn2 | :
1
1
+
1+ 1+
|sn0
1
1+
sn1 |
+ (1 )
1+
1+
+ (1 )
|sn1 sn0 | :
(1 ) + = 1,
|sn2 sn1 | :
n
1 C3/2
.
1+
1+
+
1+
1+
= 1,
1+
= 1,
Therefore,
n+1
n+1
n+1
|sn+1
sn+1
sn+1
| + |sn+1
sn+1
|
1 s2 | + |s0
1 | + |s1
0
2
1
n
n
6 C5/2
|sn2 sn3 | + |sn1 sn2 | + |sn0 sn1 | + |sn1 sn0 | + (1 C3/2
)|sn2 sn1 |.
n+1
|6
|sn+1
i+1 si
|sni+1 sni |.
1.2.4.4
We have examined both the possibility of using cell bounding and of using flux
bounding. For cell bounding, we observe oscillations or overshoot that are caused by
the conservation fix. For flux bounding, we have shown a TVD result for using MUSCL
with implicit Euler (with piecewise constant data). Therefore, we will use flux bounding
for the remainder of this work.
25
1.2.5
In our considerations so far, we have used implicit Euler as implicit time stepping
scheme. This scheme has very good stability properties, in particular it is unconditionally
SSP, but it is only first-order accurate. Our goal, however, is to develop a second-order
mixed explicit implicit scheme. We are looking for a second-order scheme with good
stability properties that matches well with the MUSCL scheme.
1.2.5.1
SSP schemes
It is popular to use specific TVD/SSP Runge-Kutta schemes [58, 59, 100, 101] for
time stepping as these schemes possess guaranteed stability properties. Unfortunately,
there is no second-order implicit scheme that is unconditionally SSP [80, 102]. In fact,
there is no second-order scheme that is close to that.
Denote by 0 the maximum step size for which the explicit Euler scheme is strongly
stable for a given spatial discretization. By c we denote the largest step size, such that
a second-order implicit time stepping scheme is strongly stable for 0 < t 6 c 0 . The
optimal one-stage method (optimal with respect to c) is the midpoint rule with c = 2
[53]. The factor c scales with the number of stages: for a scheme with s stages, it is
c = 2s. For more information see [52, 53, 80].
Therefore, to guarantee SSP property of the implicit scheme, when using, e.g., a twostage method, we could only increase the allowed time step by a factor of 4 compared to
the Euler time step constraint. Cut cells however can be arbitrarily small and we want
to choose the time step based on the size of regular Cartesian cells. Therefore, we cannot
hope to find a second-order scheme that is strongly stable on cut cells for our approach.
1.2.5.2
26
tn+1
tn
Figure 1.6: Sketch of scheme: mix MUSCL flux (M) and flux from implicit scheme (I).
assess the accuracy and stability properties of the resulting mixed scheme.
Test 1: (Accuracy) We apply the mixed scheme sketched in Figure 1.6 to a linear
test function and take one time step. The mixed scheme uses MUSCL as explicit
scheme and the respective implicit scheme with slope reconstruction as implicit
scheme. The connection is done by flux bounding. For simplicity, we replace all
slopes in our theoretical considerations by the true slope of the given linear test
function. This corresponds to assuming that slope reconstruction for slopes at tn
and tn+1 is exact.
Test 2: (Stability) We use discontinuous data sni = 1 for i 6 1 and sni = 0 for
i > 0. We take one time step and examine the value sn+1
, which depends on (, ),
0
for 0.
We note that the main purpose of Test 1 is not to assess the accuracy of the implicit
scheme but its compatibility with MUSCL. On the irrflow cells 1 and 1, which use fluxes
from both the explicit and implicit scheme, errors occur if the fluxes do not match. BDF2
(backward differentiation formula), for example, evaluates the flux at time tn+1 , whereas
MUSCL evaluates the flux at time tn+1/2 . We observe an O(x) error on cells 1 and 1
in Test 1. The same holds true for combining implicit Euler time stepping with MUSCL;
i.e., the mixed scheme consisting of MUSCL and implicit Euler with unlimited slopes is
not exact for linear functions.
In the following we present three implicit schemes. All of these schemes passed Test
1, i.e., did not show errors on cells 1, 0, and 1 when used in the mixed scheme. We
give the definition of the schemes based on their application to the ODE ut = f (u) and
27
focus on their behavior in Test 2. We note that all second-order candidates produce
some overshoot in this test.
Trapezoidal rule
The trapezoidal rule is given by
un+1 = un +
t
[f (un ) + f (un+1 )] .
2
(1.12)
For the linear advection equation, it is similar to the implicit midpoint rule
1
u = un + tf (u ),
2
un+1 = un + tf (u ).
(1.13)
2
.
+1
28
TR-BDF2
TR-BDF2 (TR stands for Trapezoidal) is L-stable and second-order accurate [83,
p. 175]. It is given by
t
[f (un ) + f (u )] ,
4
t
= un +
[f (un ) + f (u ) + f (un+1 )] .
3
u = un +
un+1
(1.14)
u = un + tf (u ),
un+1 = un + t [(1 )f (u ) + f (un+1 )] ,
(1.15)
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
29
1.2.5.3
L1
order
order
80
160
320
1.94e-04
4.70e-05
1.16e-05
2.05
2.02
9.60e-03
5.14e-03
2.65e-03
0.90
0.95
Trapezoidal
80
160
320
2.39e-05
2.95e-06
3.65e-07
3.02
3.01
2.28e-03
5.52e-04
1.36e-04
2.04
2.02
SDIRK
80
160
320
2.59e-05
3.18e-06
3.94e-07
3.02
3.01
9.48e-04
2.31e-04
5.70e-05
2.04
2.02
Implicit method
Implicit Euler
We now test the mixed scheme sketched in Figure 1.6 numerically. For the implicit
part we use the trapezoidal rule, the SDIRK scheme (1.15) or implicit Euler, all combined
with unlimited slope reconstruction. As the implicit time stepping scheme is only used
for two fluxes, F1/2 and F1/2 , we expect the behavior of the MUSCL scheme, which is
used on most of the grid, to dominate the L1 error.
We discretize the interval [0, 1 + x] to have N equal cells of length x and one
small cell in the middle of length x, = 104 . We use initial data sin
2x
1+x
periodic boundary conditions, and solve st + 2sx = 0 with CFL number = 0.8.
Table 1.1 shows the result for taking one time step. (We use the notation in [83]. By
one step error we refer to the error caused by taking one time step, i.e., s(t1 ) s1 ; the
one step error for the MUSCL scheme is of third order on a regular grid.) We observe
for the mixed scheme using
implicit Euler: the one step error measured in the L norm is of the order O(x);
measured in the L1 norm, it is of second order.
trapezoidal rule or SDIRK scheme: the one step error measured in the L norm is
of the order O(x2 ). Due to the third-order one step error of the MUSCL scheme,
30
order
order
80
160
320
1.22e-03
3.16e-04
8.21e-05
1.95
1.95
1.38e-02
6.66e-03
3.30e-03
1.05
1.01
Trapezoidal
80
160
320
2.10e-04
5.68e-05
1.48e-05
1.89
1.94
1.58e-03
3.51e-04
7.41e-05
2.17
2.24
SDIRK
80
160
320
2.04e-04
5.59e-05
1.47e-05
1.87
1.93
1.10e-03
2.82e-04
7.20e-05
1.96
1.97
Implicit method
Implicit Euler
31
not accumulate. This behavior of the one step error accumulating in an unusual way is
an often observed phenomenon when working with non-uniform/cut cell grids, see, e.g.,
Wendroff & White [113].
1.2.5.4
Summary
Based on the numerical test, both the trapezoidal rule and the SDIRK scheme (1.15)
with = (2 2)/2 are good candidates for the implicit scheme. In the theoretical
discontinuity test, the SDIRK scheme causes less overshoot than the trapezoidal rule,
but does not completely avoid it. The SDIRK scheme uses two stages and is therefore
twice as expensive as applying the trapezoidal rule. We will use the trapezoidal rule as
the implicit scheme in two dimensions.
1.3
Two-dimensional generalization
In this section we focus on extending the mixed explicit implicit approach presented
in Section 1.2 to two dimensions. We solve the linear advection equation
st + (us)x + (vs)y = 0.
(1.16)
Here, s(x, t) denotes a cell centered, advected scalar field and u(x) = (u, v) denotes
a divergence-free velocity field that is constant in time. Furthermore, we use no flow
boundary conditions on the embedded boundary imposed by
u n = 0 on .
(1.17)
Therefore, only an initial condition s(x, 0) = s0 (x) (and a given velocity field) is required
for a well-posed problem. We assume that the velocities are given at the edge midpoints,
i.e., the velocities are given as ui+1/2,j and vi,j+1/2 .
As we said, small cut cells can cause stability problems. We explore solving this
32
small cell stability issue using mixed explicit implicit schemes that are implicit only near
the boundary. This will result in a layer of transition cells next to cut cells, which are
updated with both explicitly and implicitly computed fluxes.
In the following, we first present the MUSCL scheme in two dimensions. Then, we
describe how we generalize the switch between the explicit and implicit scheme from
one to two dimensions. We conclude this section by giving formulae for computing the
implicit fluxes in two dimensions using slope reconstruction.
1.3.1
As in one dimension, we use the MUSCL scheme as an explicit scheme. This version
of the scheme mostly coincides with the one used by Almgren et al. [7]. The main idea
is the same as in one dimension, which was described in Section 1.2.1. Taylor expansion
in time and space to determine the left and right edge states gives
n+1/2,L
t n
x n
sx,ij +
s ,
2
2 t,ij
x n
t n
= sni+1,j
sx,i+1,j +
s
.
2
2 t,i+1,j
si+1/2,j = snij +
n+1/2,R
si+1/2,j
We again use the equation st = usx vsy to replace the time derivative st , but we pay
particular attention to where we evaluate the terms. We use
n+1/2,L
x n
t
[
sx,ij
ui+1/2,j snx,ij + (vs
y )ij ,
2
2
x
t
[
= sni+1,j
snx,i+1,j
ui+1/2,j snx,i+1,j + (vs
y )i+1,j .
2
2
si+1/2,j = snij +
n+1/2,R
si+1/2,j
(The b symbol is used for easy recognizability of the term (vsy )ij , which will be evaluated
n+1/2,L
snij
x
t n
t [
ui+1/2,j
sx,ij
(vsy )ij .
2
2
2
33
(1.18)
We evaluate snx,ij , the normal derivative with respect to edge (i + 1/2, j), by slope reconstruction. As the algorithm is used on a Cartesian grid, we use one-dimensional slope
reconstruction and slope limiting in the x direction: we use central difference quotients
for the unlimited gradient and the MC limiter for limited gradients. (For more detailed
information see LeVeque [82, Ch. 6].)
[
The evaluation of the transverse derivative term (vs
y )ij is more complicated. We first
use extrapolation from above and below to construct edge states using normal derivatives
n+1/2,B
n+1/2,T
only; for edge (i, j + 1/2) we compute edge states si,j+1/2 and si,j+1/2 as
n+1/2,B
t n
y
sy,ij ,
vi,j+1/2
2
2
y
t n
= sni,j+1
+ vi,j+1/2
sy,i,j+1 .
2
2
si,j+1/2 = snij +
n+1/2,T
si,j+1/2
(1.19a)
(1.19b)
Then we choose between these states using an upwinding procedure based on vi,j+1/2 to
get
n+1/2
si,j+1/2 =
n+1/2,B
si,j+1/2 ,
if vi,j+1/2 > 0,
n+1/2,T
si,j+1/2 ,
n+1/2,B
n+1/2,T
1 s
+ s
,
2
i,j+1/2
i,j+1/2
(1.20)
if vi,j+1/2 < 0,
if vi,j+1/2 = 0.
n+1/2
n+1/2
[
(vs
i,j+1/2 vi,j+1/2 si,j1/2 vi,j1/2 snij vi,j+1/2 vi,j1/2 .
y )ij = s
(1.21)
n+1/2,L
This concludes our description of the evaluation of si+1/2,j . We now use upwinding
n+1/2,L
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
sn+1
= snij
ij
1.3.2
i
t h
n+1/2
n+1/2
ui+1/2,j si+1/2,j ui1/2,j si1/2,j
x
i
t h
n+1/2
n+1/2
Based on the results in one dimension, we use flux bounding in two dimensions to
connect the explicit MUSCL scheme with the implicit scheme. To minimize work, we
want to use the implicit time stepping for as few cells as possible. Therefore, as in one
dimension, we only treat cut cells in a fully implicit manner. By irrflow cells, we denote
the cells on which we switch the scheme. These are flow cells that are edge neighbors of
cut cells. They correspond to cells -1 and 1 from our one-dimensional considerations.
We use explicit fluxes on edges between irrflow cells and flow cells, and on edges between
irrflow cells. Implicit fluxes are used on edges between irrflow and cut cells, and on edges
between cut cells. This is illustrated in Figure 1.7.
A high level version of the mixed explicit implicit scheme is given in the following.
Algorithm 1.1. Mixed explicit implicit scheme in two dimensions
Given sn ,
1. compute explicit fluxes using the MUSCL scheme (with the adjustments from Section 1.3.3),
2. update all flow cells to sn+1
using explicit fluxes and the conservative update forij
mula,
3. compute implicit fluxes making use of the explicit fluxes and the updated values
of the explicitly treated cells,
4. update cut cells and irrflow cells to sn+1
using implicit fluxes and a mixture of
ij
explicit and implicit fluxes, respectively. For details see Section 1.3.4.
35
I
I
I
I
Figure 1.7: Switching the scheme in two dimensions: The domain used in the simulation
corresponds to the interior of the circle. Irrflow cells (marked with I) are flow cells
that are edge neighbors of a cut cell. Cut cells are marked with the rose color. Implicit
fluxes are marked by a bold, light blue line. The remaining fluxes are explicit. We note
that there is no flow through the embedded boundary. (In each cut cell, the boundary
arc is replaced by a straight line.) Unmarked white cells are standard flow cells. The
light gray parts are the parts of cut cells that lie outside the fluid domain. Dark gray
color marks solid cells.
36
1.3.3
The MUSCL scheme is only used to compute fluxes between any two Cartesian cells
both flow and irrflow. However, the computation of the MUSCL flux between two irrflow
cells could involve a cut cell in the evaluation of the transverse derivative term. (One
[
example is the computation of the transverse derivative term (us
x )ij on the Cartesian
cell in Figure 1.8 assuming u < 0.) Therefore, we need to extend the computation of
n+1/2,L/R
si+1/2,j
n+1/2,B/T
and si,j+1/2
to cut cells.
snij
x
t n
+ ui1/2,j
sx,ij .
2
2
For a cut cell, the edge midpoint and the cell centroid are not aligned, i.e., they do
not have the same y component. This is shown in Figure 1.8. Denoting by (xij , yij ) the
coordinates of the centroid of cut cell (i, j) and by (xi1/2,j , yi1/2,j ) the coordinates of
37
t n
s .
2 x,ij
Note that this formula reduces to the equation above in the case of a regular cell. The
slopes snx,ij and sny,ij are both computed by a least squares approach and limited using
the LP limiter, as described in Chapter 3.
1.3.4
As implicit second-order scheme we use the trapezoidal rule with slope reconstruction.
For slope reconstruction on cut cells and irrflow cells, see Chapter 3. We also test implicit
Euler with piecewise constant data.
on a cut cell
Using implicit Euler time stepping without slope reconstruction, sn+1
ij
is updated by (compare the section Notation for definition of ij and i+1/2,j )
sn+1
= snij
ij
t
n+1
u
y sn+1
i+1/2,j ui1/2,j i1/2,j y si1/2,j
ij xy i+1/2,j i+1/2,j
+ vi,j+1/2 i,j+1/2 x
sn+1
i,j+1/2
vi,j1/2 i,j1/2 x
sn+1
i,j1/2
Here,
sn+1
i+1/2,j =
sn+1
ij
if ui+1/2,j > 0,
sn+1
if ui+1/2,j < 0,
i+1,j
n+1
and sn+1
i1/2,j as well as si,j1/2 are computed analogously. (Note that for a non-existing
face = 0.)
On irrflow cells, we use both explicit and implicit fluxes. Assume that cell (i, j) is an
irrflow cell, cells (i 1, j) and (i, j 1) are cut cells, and that cells (i + 1, j) and (i, j + 1)
are either flow or irrflow cells. Then, for mixing implicit Euler with the MUSCL scheme,
38
sn+1
ij
snij
t
n+1/2
ui+1/2,j y si+1/2,j ui1/2,j y sn+1
i1/2,j
xy
n+1/2
n+1/2
with si+1/2,j and si,j+1/2 representing the MUSCL fluxes described in Section 1.3.1 and
n+1
sn+1
i1/2,j and si,j1/2 being the implicit Euler fluxes described above.
This can be formulated as a linear system. The variables are the values on the cut
cells and the irrflow cells. As the update on each irrflow cell uses at least one implicit
flux, the new value on an irrflow cell needs to be integrated in this system. Therefore,
the size of the system is N N with N being roughly twice the number of cut cells.
The explicit fluxes from the MUSCL scheme, used in the update of irrflow cells, enter
the right hand side of the linear system.
For using the trapezoidal rule with slope reconstruction on a cut cell, the update is
given by
sn+1
ij
snij
y (sni+1/2,j + sn+1
i+1/2,j )
2ij xy i+1/2,j i+1/2,j
(sni,j1/2
sn+1
i,j1/2 )
(1.23)
Here,
sni+1/2,j =
n
n
sn
ij + (xi+1/2,j xij )sx,ij + (yi+1/2,j yij )sy,ij
if ui+1/2,j > 0,
sn
if ui+1/2,j < 0,
i+1,j
where (xi+1/2,j , yi+1/2,j ) denotes the location of the edge midpoint of face (i + 1/2, j),
39
(xij , yij ) denotes the centroid of cut cell (i, j), and sx,ij and sy,ij refer to the reconstructed
x and y slopes respectively in cell (i, j).
Even though the update formula for using trapezoidal rule with slope reconstruction
looks similar to the one for implicit Euler, it is more difficult to solve for sn+1
numerically
ij
due to the slope reconstruction. In the slope reconstruction, typically slope limiters need
to be used to avoid overshoot or oscillations. Slope limiters are nonlinear operators. In
addition, slope limiters on cut cells, both the standard scalar limiter and our newly
developed LP limiter (see Chapter 3), are non-smooth. Therefore, unlike the situation
for implicit Euler with piecewise constant data, here we must solve a system of nonlinear
equations involving non-smooth functions.
In the present work, we have used a direct solver from LAPACK [11] to solve the
linear system for implicit Euler time stepping at each time step. For the implicit scheme
consisting of the trapezoidal rule with limited slope reconstruction, we have used a pseudo
time stepping method [29, 73, 74]. We also experimented with a Quasi-Newton method,
which, for the second-order implicit scheme, uses a first-order space discretization for
the Jacobian. Exploring this approach as well as other possibilities further will be future
work. We note that even though solving an implicit system is generally not cheap, the
size of the implicit system will be roughly one dimension less than the overall number of
grid cells used in the simulation.
1.4
1.4.1
Numerical results
Implementation aspects
The software used for our tests in two (and three dimensions) is based on BoxLib
[50]. This is an open-source software library developed by the Center for Computational
Sciences and Engineering (CCSE) at Lawrence Berkeley National Laboratory (LBNL).
It contains all the functionality for massively parallel, block-structured adaptive mesh
40
refinement (AMR) applications. The user must provide the finite volume scheme used
for the simulation.
The package does not provide support for embedded boundaries. To generate cut
cell information we use patchCubes, a derivative of cubes, the mesh generation part of
Cart3D [1, 5, 6]. The input for patchCubes consists of the bounding box of the domain/a
computational patch and a surface triangulation of the embedded boundary. It then
computes all the geometry information needed for a second-order finite volume algorithm;
the location of the cut cells centroid and volume,
the location of each face centroid and the face length/area,
the location of the boundary edge midpoint and the length/area of the boundary
segment.
The combination of these two packages, BoxLib and patchCubes, forms the basis of our
software. This is illustrated in Figure 1.9.
BoxLib provides general functionality for high performance programming. The actual
time stepping algorithms for the Cartesian part of the grid were taken from existing
solvers of the CCSE group. We wrote most of the algorithms used for tests in this chapter
from scratch, partly following the structure of existing solvers used by the CCSE group.
Routines provided by BoxLib, like the setting of boundary conditions and the plotting
routines, needed to be adjusted to the presence of cut cells. During all these tasks and
the fusion of the two software packages we were actively supported by members of the
CCSE group. All code is written in Fortran 90.
For visualization of the numerical results we use AmrVis [2] and VisIt [111].
1.4.2
We now present numerical results in two dimensions. In all tests we compute the
true solution by either tracing back characteristics or by comparing to initial data. To
41
Initializations
..
.
patchCubes
Time stepping
..
.
AMR
..
.
If new grids
Software based
on BoxLib
Figure 1.9: Sketch of the software setup used for our numerical tests.
measure the error e we define the classical L1 and L norm for the computational domain
L1 (e) =
1 X
|eij | |ij |,
|| i,j
L (e) = max|eij |,
i,j
(1.24)
(1.25)
where |ij | denotes the area of cell (i, j). If the error on the cells close to the embedded
boundary converges with at least first order, we expect the L1 error to converge with
second order as the MUSCL scheme is a second-order scheme and the cells close to the
embedded boundary have a lower dimensionality. (For L1 this follows from a counting
argument. An analog theorem for L2 was proven by Gustafsson [60].) The L error will
most likely be dominated by the error on the cut cells.
To measure the error along the embedded boundary separately, we also introduce
42
L1bdy (ebdy ) =
1 X
|ek,bdy | |k |,
| | k
L
bdy (ebdy ) = max|ek,bdy |.
(1.26)
(1.27)
Here, | | denotes the length of the embedded boundary and |k | the boundary segment
length of cut cell k.
We compute errors for taking one time step and for simulating until time T . For the
definition of one step error we follow LeVeque [83] who distinguishes between truncation
and one step error. A second-order method on a regular grid typically has a third-order
one step error.
We compute the time step based on the CFL number as
!
t = min
y
x
,
.
maxij |uij | maxij |vij |
We use = 0.8 for all tests presented in this section to fulfill the time step restriction
for the MUSCL scheme. We choose x = y in our tests but this is not a requirement.
Finally we note that determining the exact accuracy of a cut cell scheme is nontrivial. Cut cells do not allow for a smooth error expansion. As a result, convergence
plots usually do not correspond to a smooth line but to a zig-zag line instead.
1.4.2.1
Our first test is advection parallel to the x axis. The setup is shown in Figure 1.10.
We cut the Cartesian grid parallel to the x axis, leading to (regular) cut cells at the
43
inflow
b.c.
outflow
b.c.
Figure 1.10: Setup for advection parallel to the x axis: cut cells (marked in rose) are
at the bottom of the grid. Light blue lines indicate implicit flux. The black thick line
indicates that there is no flux between cut cells and irrflow cells.
bottom of the grid. We choose u = 2 and v = 0, i.e., the velocity field is parallel to the
embedded boundary. The inflow is given by evaluating the flux on the low x edge based
on the true solution. We do not prescribe the outflow as it is determined by the finite
volume scheme on the last column of cells.
For this test, the cut cells do not need to be treated in a special way as they have
regular length in x direction and v = 0. (The face fraction with respect to the y direction
cancels with the volume fraction.) However, this test is very helpful to (a) find bugs in
the code and to (b) confirm some basic properties of the schemes. We note that for this
test, there is no interaction between the cut cells and the irrflow cells due to v = 0. This
is indicated by the thick black line in Figure 1.10. Consequently, our method reduces to
the standard MUSCL scheme on irrflow cells.
The original (uncut) problem domain is [0, 1]2 and the embedded boundary has height
0.1. We initialize the grid cells with the one-dimensional test function
s(x, y, 0) = sin(2x)
44
Table 1.3: Results for the mixed scheme for the domain norms L1 and L for advection
parallel to the x axis.
Implicit scheme
N2
L1 error
order
L error
order
min
Implicit Euler
642
1282
2562
5122
7682
3.57e-04
4.12e-05
1.59e-05
6.78e-06
9.08e-07
3.11
1.38
1.23
4.96
4.83e-02
2.44e-02
1.23e-02
6.15e-03
4.10e-03
0.99
0.99
1.00
1.00
0.59
0.19
0.37
0.74
0.12
Trapezoidal
642
1282
2562
8.15e-05
1.92e-05
4.74e-06
2.09
2.02
1.12e-03
2.78e-04
7.01e-05
2.02
1.99
0.59
0.19
0.37
Table 1.4: Results for the mixed scheme for the boundary norms L1bdy and L
bdy for
advection parallel to the x axis.
Implicit scheme
N2
L1bdy error
order
L
bdy error
order
min
Implicit Euler
642
1282
2562
3.72e-02
1.59e-02
8.79e-03
1.23
0.85
6.62e-02
2.82e-02
1.56e-02
1.23
0.86
0.59
0.19
0.37
Trapezoidal
642
1282
2562
8.15e-05
1.92e-05
4.74e-06
2.09
2.02
1.12e-03
2.78e-04
7.01e-05
2.02
1.99
0.59
0.19
0.37
45
F
detail. Let us denote by |eC
ij | the average error on a cut cells and by |eij | the average
error on an irrflow or flow cell. (Note that the standard MUSCL scheme is used on
irrflow cells in this test.) Then
L1 error =
|eij |xy +
flow cell
irrflow cell
cut cell
y C
y
|eij | + 1
1
1
|eFij |.
1.4.2.2
Next, we test advection along a ramp with angle 0 < < 90 . The test is illustrated
in Figure 1.11. We choose the velocity field (u, v)T = (2, 2 tan ) to be parallel to the
embedded boundary. Unlike our first test, there is interaction between the irrflow and
46
outflow b.c.
inflow
b.c.
outflow
b.c.
inflow b.c.
Figure 1.11: Setup for advection along a ramp: cut cells are marked in rose. Light blue
lines indicate implicit flux.
cut cells. Our test functions are one-dimensional quadratic functions with respect to a
line () that is perpendicular to the ramp and whose slope therefore depends on the
ramp angle . Since the MUSCL scheme has a third-order one step error, the error on
the domain should be negligible and the error at the boundary should dominate. We
advect until T = 0.1. For this test, we do not show the result for implicit Euler but focus
only on the trapezoidal rule.
47
Table 1.5: Results for advection along a ramp, using trapezoidal rule with analytic slopes
everywhere.
Grid
L1 error
order
L1bdy error
order
L
bdy error
order
5o
322
642
1282
2562
1.28e-05
3.22e-06
8.09e-07
2.02e-07
1.99
2.00
2.00
3.67e-05
1.36e-05
4.95e-06
1.80e-06
1.43
1.47
1.46
1.70e-04
5.30e-05
1.67e-05
4.70e-06
1.68
1.66
1.83
20o
322
642
1282
2562
1.26e-05
3.15e-06
7.89e-07
1.97e-07
2.00
2.00
2.00
6.18e-05
2.15e-05
7.55e-06
2.64e-06
1.52
1.51
1.52
1.80e-04
5.47e-05
1.60e-05
5.07e-06
1.72
1.77
1.66
30o
322
642
1282
2562
1.24e-05
3.11e-06
7.79e-07
1.95e-07
1.99
2.00
2.00
5.47e-05
1.83e-05
6.26e-06
2.15e-06
1.58
1.55
1.54
1.56e-04
4.67e-05
1.40e-05
4.24e-06
1.74
1.74
1.72
40o
322
642
1282
2562
1.04e-05
2.60e-06
6.52e-07
1.63e-07
2.00
2.00
2.00
3.18e-05
9.77e-06
2.97e-06
9.57e-07
1.70
1.72
1.64
1.15e-04
3.39e-05
9.72e-06
2.76e-06
1.77
1.80
1.82
The results for running to time T = 0.1 are shown in Table 1.5. (The results for the L
error are very similar to the L
bdy error and therefore are not shown here.) We observe
for the L1 error: second-order convergence,
for the L1bdy error: convergence rates around 1.5 to 1.6,
for the L and L
bdy error: convergence rates around 1.7 to 1.8.
The convergence rates vary a bit between the angles. We would need to run more tests,
for which we keep the angle but shift the ramp slightly to the left or right, to reliably
identify the reason. There might be a dependency on the angles, but it might also be
accident caused by the random cut cell sizes and geometries.
We note that we do not observe full second-order convergence for the maximum error,
most likely due to the irregularity of the cut cells. More surprisingly, the convergence
rates for the L1bdy error are worse than the convergence rates for the L
bdy error for the
48
Table 1.6: Results for advection along a ramp, using trapezoidal rule with unlimited
slope reconstruction everywhere.
Grid
L1 error
order
L1bdy error
order
L
bdy error
order
5o
322
642
1282
2562
1.88e-05
4.02e-06
9.17e-07
2.18e-07
2.23
2.13
2.07
5.56e-05
2.25e-05
9.62e-06
4.03e-06
1.30
1.23
1.25
2.62e-04
8.62e-05
3.02e-05
9.11e-06
1.60
1.51
1.73
20o
322
642
1282
2562
1.87e-05
4.09e-06
9.43e-07
2.27e-07
2.34
2.20
2.12
2.05
1.88e-04
7.43e-05
2.93e-05
1.22e-05
1.38
1.35
1.34
1.26
4.22e-04
1.45e-04
4.84e-05
1.84e-05
1.61
1.54
1.59
1.39
30o
322
642
1282
2562
2.04e-05
4.49e-06
1.04e-06
2.50e-07
2.18
2.11
2.06
2.68e-04
1.00e-04
3.87e-05
1.53e-05
1.42
1.37
1.33
4.79e-04
1.64e-04
5.73e-05
2.09e-05
1.54
1.52
1.46
40o
322
642
1282
2562
1.95e-05
4.24e-06
9.59e-07
2.24e-07
2.21
2.14
2.09
2.65e-04
9.61e-05
3.47e-05
1.27e-05
1.47
1.47
1.44
4.39e-04
1.45e-04
4.93e-05
1.71e-05
1.59
1.57
1.53
grids given here. In terms of absolute errors, the L1bdy errors are smaller though. (Note
that the one step error only converged with second order in the L1bdy norm.)
The results just presented are an upper bound to what we can expect from the
mixed explicit implicit scheme at least with respect to the L error, the L1bdy error,
and the L
bdy error. Compared to the mixed scheme, we eliminated two error sources:
the switch and the inaccuracy in the slope reconstruction. The purpose of the next test
is to quantify the effect of the latter one.
Table 1.6 shows the results for using trapezoidal rule everywhere together with unlimited least squares slope reconstruction. On flow cells away from the boundary this
reduces to standard second-order central difference quotients. But for cut cells these
slopes are only a first-order approximation and could cause a loss of accuracy. The numerical results show that the L1 error is very similar to using analytic slopes, both in
terms of convergence rates and absolute numbers. For the L1bdy and the L
bdy error, the
49
convergence rates drop by about 0.1 to 0.2 compared to using analytic slopes. Also, the
absolute error is significantly larger.
50
Table 1.7: Results for advection along a ramp, using the mixed explicit implicit scheme
with trapezoidal rule and unlimited slope reconstruction.
Grid
L1 error
order
L1bdy error
order
L
bdy error
order
5o
322
642
1282
2562
1.24e-06
2.60e-07
6.03e-08
1.62e-08
2.26
2.11
1.89
5.03e-05
1.74e-05
6.92e-06
2.87e-06
1.53
1.34
1.27
2.62e-04
8.20e-05
2.74e-05
7.91e-06
1.68
1.58
1.80
20o
322
642
1282
2562
3.32e-06
9.10e-07
2.36e-07
6.30e-08
1.87
1.94
1.91
1.75e-04
7.06e-05
2.87e-05
1.24e-05
1.32
1.30
1.21
4.10e-04
1.41e-04
4.78e-05
1.88e-05
1.54
1.56
1.35
30o
322
642
1282
2562
7.18e-06
1.83e-06
4.75e-07
1.24e-07
1.97
1.95
1.93
2.69e-04
1.04e-04
4.28e-05
1.80e-05
1.36
1.29
1.25
4.83e-04
1.71e-04
6.22e-05
2.40e-05
1.50
1.46
1.37
40o
322
642
1282
2562
1.07e-05
2.56e-06
6.23e-07
1.54e-07
2.07
2.04
2.01
2.51e-04
9.36e-05
3.53e-05
1.38e-05
1.42
1.41
1.35
4.36e-04
1.46e-04
5.09e-05
1.85e-05
1.58
1.52
1.46
cells and therefore does not influence the L error. Furthermore, it apparently does not
cause additional errors along the embedded boundary.
1.4.2.3
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
We choose T = , at which time the solution is identical to its initial value. We use the
full explicit implicit scheme. As implicit scheme we use the trapezoidal rule. Unlimited
slopes are employed for both the explicit and implicit scheme. We run simulations for
16 different meshes with the width x varying between 0.003 and 0.010. The error is
51
Table 1.8: Results for advection in the interior of a circle. Convergence orders correspond
to a least squares fit based on 16 runs with grid width x [0.003, 0.010].
conv. order for L1 error
Domain norm
2.09
2.22
Boundary norm
1.06
1.00
1.34
1.87
Norms
resulting in the L
c and the Lirr norm, respectively.
Figure 1.12 shows the convergence in the four variants of the maximum norm. The
error plots show the zig-zag behavior, which is characteristic for cut cell methods.
The straight lines indicate the convergence rates computed by a least squares fit. The
corresponding rates are listed in Table 1.8. In this table, we also list the convergence
rates for the L1 and the L1bdy norm.
We observe the following:
both the L1 and L error measured over the whole domain converge with second
order; the former was expected, the latter implies that the maximum error is
probably caused by the peak of the Gaussian test function; Figure 1.12 shows that
for most grids, the L error is bigger than the maximum error measured over only
cut cells and irrflow cells; this confirms the suspicion;
the maximum error measured over only irrflow cells converges with close to second
order; i.e., we do not observe accumulation of the transition error in this test;
the error measured at the boundary edge midpoints converges only with first order
however, has a convergence rate of 1.34; we are not sure what the reason for this
52
Domain
Boundary
Cut cell
Irrflow cell
Error
10
10
10
Mesh width
Figure 1.12: Results for advection in the interior of a circle. The error is measured in
the L norm over various sets: all grid cells (Domain), all boundary edge midpoints
(Boundary reconstruction was used to evaluate the error), only cut cells (Cut cells),
and only irrflow cells (Irrflow cell). The x axis corresponds to the mesh width x of
the underlying Cartesian grid and the y axis to the error measured in the corresponding
L norm. The straight lines correspond to the least squares fits with the convergence
orders given in Table 1.8.
53
(a) time t = 0
(b) time t = T =
Figure 1.13: Results for advection in the interior of a circle using x = 0.0059. Both
pictures use the scale implied by the data at the initial time. The computational domain
is split in four equal patches.
difference in convergence is; one possibility is that unlike our previous tests a
curved boundary is used here.
Finally, in Figure 1.13 we show the results for x = 0.0059 (which corresponds to
1922 grid cells to discretize the bounding box) at its initial and its final time. The shape
of the Gaussian has been well preserved and we do not observe excessive smearing along
the boundary.
1.5
In this chapter we have presented a new explicit implicit time stepping scheme for
solving the linear advection equation in two dimensions. The scheme uses a standard
explicit scheme, the MUSCL scheme, on Cartesian cells away from the embedded boundary. On cut cells we use an implicit time stepping scheme, the trapezoidal rule. The
switch is done on the Cartesian cells next to the cut cells using flux bounding.
The numerical results are promising. The convergence rates along the embedded
boundary varied between 1.0 and 2.0, typically lying somewhere in the middle. Additional tests will be needed to explore the properties of the scheme further.
54
1.5.1
Some open issues in two dimensions that need to be examined more closely are:
Robustness of the scheme: In the discontinuity test in one dimension, the trapezoidal method caused overshoot for very small values of . We plan to develop an
FCT approach combining the trapezoidal method with implicit Euler time stepping to guarantee monotonicity. We would also like to examine the option of using
the SDIRK scheme (1.15) instead of the trapezoidal rule.
Solving the implicit system more efficiently: The focus of the work was on the
method development and we did not have time to investigate a way to efficiently
solve the resulting implicit systems. This is necessary though for a practical implementation of the method.
Comparison to literature: It would be nice to directly compare to results from
existing methods in the literature, e.g., the h-box method or the flux redistribution
method.
1.5.2
During our scheme development one main design choice has been to ensure straightforward extension of the resulting algorithm to three dimensions. The explicit scheme
in three dimensions would be the extension of the two-dimensional MUSCL scheme presented in Section 1.3.1 and would contain corner-coupling. In an unsplit finite volume
scheme in two dimensions, diagonal neighbors, i.e., cells that differ by one in both the
i and j index, are used in the flux computation of cell (i, j) for a second-order accurate
and stable method [44]. In three dimensions, this extends to cells that differ by one
in all three coordinate directions [99]. A nice description of these issues is contained
in [88] and [92]. There, customized advection schemes in two and three dimensions are
developed that are based on tracing characteristics. As a side product, explanations are
55
provided concerning which neighboring cells need to be taken into account to advect a
reconstructed polynomial exactly over one time step.
As a consequence, the MUSCL scheme in three dimensions is more complicated than
in two dimensions, and its stencil is larger. In a first approach to extend the method
described in this chapter to three dimensions, we therefore extended the definition of
irrflow cells from edge neighbors in two dimensions to face and edge neighbors in three
dimensions. We also simplified the MUSCL scheme on irrflow cells to neglect corner
correction terms. Everything else was relatively straightforward and first results using
implicit Euler time stepping have been produced, see Figure 1.14. We conclude that our
method extends to three dimensions in a straightforward way, but that additional work
is necessary to fix all the (important) details.
56
Figure 1.14: Initial results for the advection scheme in three dimensions using implicit
Euler time stepping. This test is a generalization of Test 2; the test function is a threedimensional Gaussian and the ramp is constant in the z direction.
57
Chapter 2
Introduction
ut + (uu) + p = 0,
(2.1a)
u = 0.
(2.1b)
Our starting point is a well-established projection algorithm for Cartesian grids [7, 9,
19, 20] and the corresponding high performance implementation provided by the CCSE
(Center for Computational Sciences and Engineering) at LBNL. Our goal is to extend
both the algorithm and the implementation to Cartesian embedded boundary grids,
using the mixed explicit implicit time stepping scheme developed in Chapter 1.
Projection algorithms, also referred to as fractional step methods, were introduced by
Chorin [36, 37]. The method typically consists of two main steps:
58
regular Cartesian grids. Then, we discuss adjustments to Step 1 and Step 2 of the
algorithm to account for the embedded boundary. In Section 2.4 we present initial
numerical results for flow past a half-cylinder. We conclude this chapter with a discussion
of open problems.
2.2
(2.2)
is solved for U . The pressure gradient is evaluated at tn1/2 and is treated as a source
term. The nonlinear term [(U )U ]n+1/2 is approximated at tn+1/2 to second order in
space and time using an explicit predictor corrector scheme based on a MUSCL approach.
Lagging of the pressure gradient results in a failure of incompressibility, which will be
corrected in the next step.
Step 2: In the projection step, U is decomposed into a discrete gradient of a scalar
60
potential and a discretely divergence-free vector field. The former is used in the pressure
update, the latter in the update of the velocity field. Denoting the projection by P, one
obtains
U n+1 U n
U Un
,
=P
t
t
pn+1/2 = pn1/2 + (I P)
(2.3a)
U Un
(2.3b)
In the following we will give a short summary of the algorithms used for both steps.
2.2.1
The details of the advection step overall coincide with the descriptions given by Bell
et al. [19, 20] and Almgren et al. [7]. The main complication in computing U in (2.2) is
caused by the term [(U )U ]n+1/2 . The variable U n is cell centered but this non-linear
term needs to be evaluated on the edges with second-order accuracy in time. To deal
with this problem, a predictor corrector approach is used:
n+1/2
n+1/2
(i) Predictor: Velocities ui+1/2,j and vi,j+1/2 are predicted on the x edges and y
edges, respectively. The details of this step are described in [7]. Essentially, a
MUSCL scheme similar to the one described in Section 1.3.1 is used.
Then, a MAC projection is applied to enforce that the edge velocities are discretely
divergence-free, i.e.,
n+1/2
n+1/2
(ui+1/2,j , vi,j+1/2 )
MAC projection
M
(uM
i+1/2,j , vi,j+1/2 ).
More information about the MAC projection is given below. This results in disM
cretely divergence-free velocity components uM
i+1/2,j on the x edges and vi,j+1/2 on
61
M
vi,j+1/2
uM
i1/2,j
uM
i+1/2,j
(u, v)ij
M
vi,j1/2
(2.4)
DG = DU n+1/2
n+1/2
n+1/2
with U n+1/2 = (ui+1/2,j , vi,j+1/2 ) is solved for . Here, D and G denote discretizations
of the divergence and gradient operators; details are given in Section 2.2.2. Then, U M =
U n+1/2 G. We note that this enforces the incompressibility of the MAC velocities up
to machine precision with respect to the chosen D, i.e., the MAC projection is an exact
projection.
2.2.2
For Step 2, the projection, an approximate projection method is used, i.e., the incompressibility is only enforced up to second order. Approximate projection methods
62
were introduced by Almgren et al. [7] as a response to the problems caused by exact
projections for the case that both the velocity and the pressure variables are cell centered: Discretizing the divergence operator D and the gradient operator G with standard
second-order difference quotients leads to an extended five point stencil for DG. As a
result, the stencil locally decouples and standard solvers like multigrid for the Poisson
equation cannot easily be used. For more information about approximate projections
see Almgren et al. [10] and Rider [98].
The projection operator is defined as
P = I GL1 D.
For an exact projection, there holds L = DG. We use the standard approach of employing
cell centered second-order difference quotients for D and G and defining L as the standard
five point Laplacian stencil; this results in an approximate projection.
To make the extension to cut cells easier, we write the projection step in a different
form. We define D : edge midpoints cell centroid by
(DU )ij =
vi,j+1/2 vi,j1/2
ui+1/2,j ui1/2,j
+
.
x
y
(Gx U )i+1/2,j
Ui+1,j Uij
(Gy U )i,j+1/2
Ui,j+1 Uij
y
(These are the definitions of D and G used in the MAC projection.) Note that for D
and G defined this way, there holds L = DG. We also define interpolation operators
63
Using averaging for both interpolation operators, which is second-order accurate for
Cartesian grids, makes this approach equivalent to using cell centered divergence and
gradient operators without the interpolation steps.
Applying the projection operator P to a cell centered vector field V , i.e., computing
V proj = PV = I G(DG)1 D V
6. Subtraction: Compute
d
V proj = V G
2.3
In this section, we focus on extending the projection algorithm to cut cells. We first
discuss the extension of Step 1, the advection step, to Cartesian embedded boundary
grids. Afterwards, we discuss necessary changes for the projection step. We present
64
extensions of D, G, I1 , and I2 suitable for cut cells and show numerical results for the
projection step.
Step 1: Computation of U
2.3.1
n+1/2
(a) predict ui+1/2,j and vi,j+1/2 on the edges in the presence of embedded boundaries,
(b) apply a MAC projection suitable for embedded boundary grids; (the adjustments to the operators D and G are given in Section 2.3.2 where we extend
Step 2 to embedded boundary grids;)
(ii) solve the equation
in+1/2
U Un h M
+ pn1/2 = 0
+ (U )U
t
Even though the irregularity of cut cells complicates the prediction of ui+1/2,j and
n+1/2
vi,j+1/2 on the edges, the first part of Step (i) avoids the biggest problem related to cut
cells, the small cell problem. In this step we only predict to edges and do not divide
by the volume of potentially very small cut cells. For a Cartesian grid, the edge state
n+1/2,L
ui+1/2,j is given by
n+1/2,L
ui+1/2,j
unij
x max(uij , 0)t
t [
t n1/2
unx,ij
(vuy )ij
p
,
2
2
2
2 x,ij
[
with (vu
y )ij referring to a specific evaluation of the transverse derivative term. (For
more details see Almgren et al. [7].)
65
Two main changes were necessary to extend the algorithm from Cartesian cells to
cut cells. First, for a cut cell, cell centroid and edge midpoint are typically not aligned.
For spatial reconstruction from the cell centroid to the edge centers both the x and the
y slope of a variable are needed. We discussed this adjustment in Section 1.3.3.
[
Second, on a Cartesian grid, the transverse derivative term (vu
y )ij is evaluated by
n+1/2
n+1/2
st + (us) = 0.
2.3.2
Algorithm 2.1 in Section 2.2.2 summarizes the projection step for a fully Cartesian
grid. Following this approach we need to define
1. divergence operator D : edge midpoints (cut) cell centroids,
2. gradient operator G : (cut) cell centroids edge midpoints,
3. interpolation operator I1 : (cut) cell centroids edge midpoints,
4. interpolation operator I2 : edge midpoints (cut) cell centroids.
This will be done in this order.
66
2.3.2.1
Divergence operator D
(DU )ij =
vi,j+1/2 vi,j1/2
ui+1/2,j ui1/2,j
+
.
x
y
(2.5)
Like Almgren et al. [8], we define the divergence operator on cut cells by
1 ui+1/2,j i+1/2,j ui1/2,j i1/2,j
(DU )ij =
ij
x
vi,j+1/2 i,j+1/2 vi,j1/2 i,j1/2
+
. (2.6)
y
Unlike a Cartesian cell, a cut cell also has a non-Cartesian face, which is part of the
embedded boundary. The projection should enforce u n = 0 at the edge midpoint of
this face. By choosing L = DG, by defining D as given in (2.6), and due to the Neumann boundary conditions used for the Poisson problem, this property will be enforced
automatically (up to the order of the projection step).
2.3.2.2
Gradient operator G
67
For projection methods, one typically tries to define G as the skew-adjoint operator of
D with respect to a suitable inner product.
For a Cartesian grid it is common, see, e.g., Bell et al. [20], to use the inner product
(, ) =
ij ij h2 .
ij
For cut cells, the situation is more complicated. We define spaces S1 and S2 for cell and
edge centered variables as
S1 := ij cell centered ,
n
y
x
centered on y edges .
S2 := = ( x , y ) i+1/2,j
centered on x edges, i,j+1/2
(, )S1 =
ij ij Vij ,
ij
where Vij denotes the cell volume. It is non-trivial to define an inner product on S2 . We
use the bilinear form
(, )S2 =
x
i+1/2,j
xi+1/2,j i+1/2,j +
x edges
y
yi,j+1/2 i,j+1/2 ,
i,j+1/2
y edges
with
i+1/2,j = i+1/2,j xy,
We note that this is a somewhat arbitrary pick and does not correspond to a suitable
inner product on S2 . This definition results in the gradient being given by
i+1,j i,j
Gx i+1/2,j
Gy i,j+1/2
68
i,j+1 i,j
y
(2.7)
This operator G is not useful as a gradient operator. For a cut cell, the y coordinates
of the centroids of cells (i + 1, j) and (i, j) typically differ, which is not captured by
Gx i+1/2,j . But it works well when used in the projection. This gradient operator was
also used by Almgren et al. [8] in the MAC projection. (For the cell centered projection
a finite element approach was employed.)
Recently, we were made aware of the work by Lipnikov et al. [86]. Among other
things, the authors deduce a gradient operator, which is the skew-adjoint operator of
the divergence, on general polyhedral meshes. In the future, we plan to apply the very
general definition given in this work to the case of a cut cell and to test the resulting
operator numerically. We expect the resulting gradient operator to be more complicated
than the currently used G but to be more accurate and to result in a more favorable
matrix DG.
2.3.2.3
For the projection algorithm on Cartesian grids, simple averaging is used. On edges away
from the embedded boundary, i.e., for an edge between two Cartesian cells, we keep this
operation. For edges between cut cells or between a cut and an irrflow cell, averaging is
not accurate enough. Instead we fit a bilinear polynomial
p(x) = a + bx + cy + dxy
through the centroids of four cells and evaluate the polynomial at the appropriate edge
midpoints. This is illustrated in Figure 2.2, which shows the four cells used in the
polynomial fit to interpolate to the edge marked in red.
69
Figure 2.2: The values at the four marked cell centroids are used to fit a bilinear polynomial, which is evaluated at the edge midpoint marked with a red bar.
In the case of all four cells being uncut Cartesian cells, this procedure reduces to
averaging the lower two cell values. Therefore, this approach for interpolation on cut
cells is consistent with the averaging used on Cartesian cells.
The interpolation operator I2 is defined as map
This interpolation operator will be used to interpolate the gradient components from
the x and y edges to the cell centroids. For Cartesian cells (also for irrflow cells) we use
averaging, e.g.,
(I2 Gx )ij =
On cut cells we again have the problem that this is not accurate enough. Instead we use
polynomial interpolation.
The implementation details for this interpolation operator are more complicated than
for I1 . Figure 2.3 shows three possible situations. The goal is to interpolate values from
the center of x edges to the centroid marked with a gray circle. To do so, we use the
values at the x edges marked with a red bar. Depending on whether we have four or
three values available in the close neighborhood of the cell with the marked centroid, we
70
(a) bilinear
(b) bilinear
(c) linear
Figure 2.3: Illustration of the interpolation operator I2 : the values at the edge midpoints
marked with red bars are used to determine a polynomial, which is then evaluated at
the cell centroid marked with the gray circle. In situations (a) and (b) we use a bilinear
polynomial, for (c) a linear polynomial is used.
either fit a bilinear polynomial a + bx + cy + dxy or a linear polynomial a + bx + cy.
2.3.2.4
We now test the accuracy of the projection using the adjustments on cut cells we
just described. As test problem we use the interior of a circle (compare Figure 1.7). For
this geometry, one possible incompressible velocity field with the appropriate boundary
conditions is given by u = (2y, 2x)T . We disturb this velocity field to u + , where
represents a scalar field. Then we test how well the projection removes the perturbation,
i.e., we compare the projected velocity field with u = (2y, 2x)T .
The result is shown in Table 2.1. We observe second order in the L1 norm. The
convergence rates in the L norm seem to depend on whether the perturbation is of
the form f1 (x) + f2 (y) or whether there is more interaction between the x and y terms.
In the first case, we observe second-order convergence in the L norm in this simple
test, in the latter case, first-order convergence.
71
Table 2.1: Accuracy of the projected velocity field compared to u = (2y, 2x)T . The
errors for u and v are the same.
2.4
2.4.1
L error
perturbation
Grid
L1 error
1 + 0.8x + 0.1y
322
642
1282
2562
0
0
0
0
322
642
1282
2562
4.98e-04
1.69e-04
4.32e-05
1.16e-05
1.56
1.96
1.90
1.50e-02
7.72e-03
3.71e-03
2.00e-03
0.96
1.06
0.89
sin(x) + sin(y)
322
642
1282
2562
2.48e-03
6.34e-04
1.60e-04
4.03e-05
1.96
1.98
1.99
3.07e-03
7.67e-04
1.96e-04
4.89e-05
2.00
1.97
2.00
sin(x) sin(y)
322
642
1282
2562
1.48e-03
4.55e-04
1.19e-04
3.14e-05
1.70
1.94
1.92
2.03e-02
1.04e-02
5.03e-03
2.66e-03
0.96
1.05
0.92
order
order
0
0
0
0
Numerical results
Implementation aspects
For testing the full projection algorithm we use the same software setup as described
in Section 1.4.1. The main work for the advection step had already been implemented for
our tests in Chapter 1. We extended the existing algorithms by a routine that predicts
the velocities on the edges.
For the cell centered projection and the MAC projection we started with a working
projection for Cartesian grids provided by the CCSE group. It uses a multigrid (MG)
solver to solve the corresponding Poisson problem. To make the projection work on cut
cells, we implemented the interpolation operators presented in Section 2.3.2.3 and the
divergence and gradient operators presented in Sections 2.3.2.1 and 2.3.2.2. During these
tasks, we were supported by members of the CCSE group.
We only use cut cell geometry on the finest MG level. On coarser levels, cut cell
72
geometry can lead to split cells, which causes additional problems. In our initial tests,
this approach overall worked well. But it might be necessary in the future to adjust the
MG solver on all levels to the geometry of the embedded boundary.
In our numerical test, the initial velocity field is computed by an initial cell-centered
projection. To determine a suitable pressure gradient, initial pressure iterations are used.
Here, several iterations of our 2-step algorithm are taken (consisting of advancing the
velocity field and applying the projection). Afterwards, the velocity field is reset to the
initial data. For theoretical justification see Bell et al. [18, 20].
2.4.2
ut + (uu) + p = 0,
u = 0,
st + (us)x + (vs)y = 0.
Flow past a
73
(a) vorticity
74
Figure 2.5 shows the vorticity and the passively advected scalar for a 96288 resolution at time T . The final time T was chosen such that the flow is periodic but before the
errors arising at the high y outflow boundary dominate. (To be able to run to a later
time T , we actually use the test domain [0, 8] [0, 48] and run with six patches of the
size 962 in parallel.)
In [8], the Strouhal number given by Df /U is calculated with U = 1 denoting the
free-stream velocity and f being the vortex shedding frequency. We measure a Strouhal
number of 0.29, which is very similar to the 0.31 measured in [8].
2.5
We have presented initial results for extending a projection algorithm from Cartesian
grids to embedded boundary grids. Here, we relied on the mixed explicit implicit time
stepping scheme developed in Chapter 1.
First numerical results are promising but there are still many open questions. Initial
numerical tests and theoretical considerations indicate that the discretization of the
nonlinear velocity term (uu) is only first-order accurate for cut cells. For this term,
boundary integrals over the cell edges are evaluated using the midpoint rule. Then, these
terms are summed up and the sum is divided by the cell volume. Due to this division,
accuracy is lost. On Cartesian cells, this is not an issue as error cancellation is more
favorable. For cut cells, one solution might be to use a higher order quadrature rule, such
as the two point Gaussian quadrature rule. Additional work will be needed to examine
this possibility more closely.
Also, further tests for the projection step and the development of a fully second-order
projection (with respect to both the L1 and L norm) are probably necessary. We did
initial tests replacing G = DT by a more accurate gradient operator, which however
does not correspond to the skew-adjoint of D. Another approach is to follow Lipnikov et
al. [86]. Further tests will be needed to assess whether one of these two approaches will
75
lead to a more suitable definition of G than the currently used one, but it seems likely.
A distant future goal is to extend this algorithm to three dimensions and to the solution of the Navier-Stokes equations. So far, we only used algorithms that extend to three
dimensions in a straightforward way. This will also be a main design criteria for future
algorithm improvements. For the extension to Navier-Stokes equations, we additionally
need to solve an elliptic problem in each time step. We already solve an elliptic equation
in each iteration (for the projection), but with a different type of boundary conditions.
Future research will be necessary to assess the possibilities of extending the approach
taken in the projection step appropriately.
76
Chapter 3
The LP limiter
3.1
Introduction
In this chapter we focus on slope reconstruction and limiting for embedded boundary
grids in two dimensions. On flow cells standard one-dimensional limiters [82, 104] can
be applied to the x and y direction separately. This is not the case for cut cells, since
the centroids are typically not coordinate-aligned and therefore the x and y direction do
not decouple.
Typically a scalar limiter is used on cut cells. This limiter multiplies both the x and
y slope with the same scalar factor . It was introduced for unstructured triangle grids
by Barth & Jespersen [16], with less diffusive versions of the scalar limiter developed in
[17, 94]. More multi-dimensional limiter versions, partly tailored to the special structure
of a triangle, have been proposed in [39, 70, 75, 85, 107]. Additionally, ENO/WENOtype schemes have been developed for unstructured grids [3, 54, 68, 93]. For cut cells,
however, we are not aware of a limiter of this type.
Here, we present a less diffusive alternative to the scalar limiter, the LP limiter.
This new limiter is linearity-preserving and inherently two-dimensional. It limits the x
and y slope separately by using two different scalar factors x and y . Due to the non-
77
coordinate-aligned geometry of cut cell centroids, x and y do not decouple but need
to be determined together. The limiting is formulated as a tiny linear program (LP) as
suggested by Berger et al. [28]. Such an LP needs to be solved on every cut cell in every
time step. To do that efficiently we use the all-inequality Simplex method, introduced to
us by Margaret Wright.
The idea of formulating a limiter as an optimization problem is also the main ingredient for several limiters developed for unstructured triangular and quadrangular grids.
Hubbard [69, 70] examines the possibilities of using a projection approach or a quadratic
programming (QP) problem to enforce the reconstruction to stay within a designated
maximum principle region. Both Hubbard and Buffard & Clain [31], who propose a new
slope reconstruction method for the MUSCL scheme based on a minimization procedure,
do not provide a general optimization method but use a customized solution strategy for
the respective optimization problems. In [67], Hoteit et al. develop a limiter for discontinuous Galerkin methods based on solving least squares problems with linear equality
and inequality constraints, and provide a general optimization algorithm for their solution. However, the solution of a constrained least squares problem is significantly more
expensive than the solution of our specific LPs by means of the all-inequality Simplex
method.
The LP limiter presented here is actually more a limiter framework than a specific
limiter. The choice of the monotonicity constraints influence the accuracy and robustness
of the limiter. In the following we will examine various formulations to determine suitable
monotonicity constraints on cut cells, both theoretically and numerically.
Much of this chapter has been published in a modified form by May & Berger [87].
That paper also includes results using the LP limiter on unstructured, triangular grids
using a variety of monotonicity constraints. In addition, the recent MLP-u1 limiter by
Park et al. [94] was tested. The LP limiter did well in these tests, and in particular
confirmed its second-order accuracy for smooth test problems.
78
This chapter is structured as follows. In Section 3.2 we introduce the idea of the LP
limiter and discuss the suitability of various monotonicity constraints for cut cells. In
Section 3.3, we compare optimization algorithms for solving linear programs and provide
details for our method of choice, the all-inequality Simplex method. Numerical results for
the LP limiter on embedded boundary meshes are presented in Section 3.4. We conclude
with thoughts about extending the LP limiter to three dimensions. In Appendix A we
show a non-negativity result for linear advection on cut cells using the LP limiter.
3.2
Description of LP limiter
3.2.1
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
y1 yM
s1 sM
Dx
y2 yM
s2 sM
Dy
x1 xM
r = x2 xM
x3 xM
(3.1)
s3 sM
y3 yM
and find (Dx , Dy ) as the least squares solution of minDx ,Dy krk2 . This approach is exact
for linear functions. When formulating suitable monotonicity constraints we will focus
on preserving this property in the limiting step. On distorted meshes, the least squares
approach is somewhat more accurate than the Green-Gauss approach [4, 14].
For the gradient estimation, only edge neighbors of a cut cell are used, except for a
triangular cut cell. Since the latter has only two edge neighbors, the diagonal neighbor
is included. This ensures that we always use at least three pieces of information in (3.1)
for the two-dimensional case.
(xM , yM )
(x1 , y1 )
(x3 , y3 )
(x2 , y2 )
3.2.2
The limited reconstruction using the scalar limiter has the form
s(x, y) = sM
Dx x xM
+
Dy
y yM
80
with [0, 1]. For each of the given monotonicity constraints (discussed in Section
3.2.4), a value i [0, 1] is determined such that the constraint is fulfilled. Then =
mini i . The possibility of sequentially enforcing the monotonicity constraints makes the
implementation of the scalar limiter very easy. The price is unnecessary diffusion.
3.2.3
The LP limiter
The LP limiter uses two different scalars x , y [0, 1] to reduce the numerical
diffusion. This results in a reconstruction of the form
s(x, y) = sM
x Dx x xM
+
.
y yM
y Dy
(3.2)
For a coordinate-aligned mesh, x and y decouple. This is not the case for a cut cell. We
cannot sequentially enforce the monotonicity constraints as done with the scalar limiter.
The reason is that the scalar limiter only changes the length of the initial gradient,
whereas the use of (x , y ) rotates the gradient.
Instead, following [28], the limiter is formulated as a constrained optimization problem: retain as much of the unlimited gradient as possible while fulfilling the monotonicity
conditions. We use the l1 -norm to measure the difference between the limited and unlimited gradient. The objective function is given by
x ,y
= (1 x )|Dx | + (1 y )|Dy |
= |Dx |x |Dy |y + constant term,
(3.3)
81
x ,y
subject to
> b,
(3.4)
3.2.4
Monotonicity constraints
We now present two sets of monotonicity constraints that are suitable for cut cells:
the more strict standard constraints and the relaxed constraints.
Standard constraints
In one space dimension, the minmod slope limiter reconstructs to the two neighboring
centroids and makes sure to not over- or undershoot the neighboring value. The standard
constraints are a two-dimensional generalization of this idea.
For concreteness, let j = 1, . . . , N denote the cells where a monotonicity constraint
should be enforced. Typically, these are the edge neighbors of cell M . The constraints
are given by
(xj xM )Dx x
min(sM , sj ) 6 sM +
6 max(sM , sj ), for j = 1, . . . , N.
(yj yM )Dy
y
(3.5)
In words, we reconstruct to the centroid of a cell j and make sure to not exceed the
minimum and maximum value taken over the value of cell j and the value of cell M .
This is illustrated in Figure 3.1.
To use the LP formulation for limiting, we need to rewrite the constraints as linear
inequalities. For this purpose, we distinguish the cases sM 6 sj and sM > sj and
82
if sM 6 sj :
(xj xM )Dx x
> (sj sM ),
y
(yj yM )Dy
(xj xM )Dx x
> 0,
(yj yM )Dy
if sM > sj :
(xj xM )Dx x
> 0,
y
(yj yM )Dy
(3.6b)
(3.6a)
(3.6c)
(xj xM )Dx x
> sj sM .
y
(yj yM )Dy
(3.6d)
For each cell neighbor j we determine whether sM 6 sj . If this is the case, we add
inequalities (3.6a) and (3.6b) to the LP. Otherwise, we add constraints (3.6c) and (3.6d)
to the LP. In addition, A and b also contain the constraints 0 6 x , y 6 1. The
dimension of A and b in (3.4) depends on the number of constraints one wants to enforce.
Typically, k is on the order of 10 to 15.
Relaxed constraints
A less strict alternative to the standard constraints, which is especially popular on triangular
meshes, is to reconstruct to the edge midpoint instead of to the neighboring centroid. In one dimension this corresponds to using the MC limiter instead
of the minmod limiter. For cut cells, however, this
approach might limit even a linear function, since
typically the edge midpoint does not lie on the line
connecting the cell centroids as pictured in Figure
3.2. If the level lines of a linear function are aligned
83
with this line, the value at the edge midpoint will be a relative extremum and the limiting
will become active.
To mitigate this problem, some approaches reconstruct to the edge midpoints but
limit using the min and max over all neighboring cells [16]. Geometrically it corresponds
to extending the convex hull depicted in Figure 3.2 as a line to a polygon spanned by the
centroids of all cells used in the min/max computation. This approach will be linearitypreserving if and only if the edge midpoints lie in this extended convex hull, compare
Swartz [103]. This is not true, however, for a cut cell with triangular shape. Consider
for example Figure 3.2 and assume that only the left edge neighbor and the (not drawn)
upper edge neighbor are used for limiting. Then, the edge midpoint marked with a
square does not lie in the convex hull spanned by these two centroids and the triangular
cells centroid.
In our definition of relaxed constraints, we therefore keep reconstructing to the neighboring centroids but limit using the min and max over all neighboring cells. The constraints are then given by
(xj xM )Dx x
min(sM , s1 , ... . . . , sN ) 6 sM +
6 max(sM , s1 , . . . , sN )
(yj yM )Dy
y
(3.7)
for j = 1, . . . , N .
We note that for both the standard and relaxed constraints, the resulting LP limiter
will be linearity-preserving. The accuracy of these two formulations will be compared
numerically later in this chapter.
84
is necessary to ensure non-negativity. For example when simulating the Euler equations
pressure and density should not become negative. To address this issue, we add the
constraint
sM
(xB xM )Dx x
+
> 0,
y
(yB yM )Dy
(3.8)
where (xB , yB ) denotes the boundary edge midpoint. The non-negativity result presented
in Section 3.2.6 and the result in Appendix A include the addition of this constraint.
This concludes the discussion of the specific LPs used for limiting. We will either
use the standard constraints (3.6) or the relaxed constraints (3.7) in the LP of the form
(3.4). In addition, 0 6 x , y 6 1 is enforced and the non-negativity constraint at the
boundary edge midpoint (3.8) might be used.
3.2.5
All our constraints are formulated such that (x , y ) = (0, 0) is a feasible point.
The point (0, 0) corresponds to the zero gradient, i.e., to not reconstructing a slope.
Therefore, there exists at least one feasible point. Furthermore, since 0 6 x , y 6 1,
the feasible set is bounded. These two facts imply that there must exist a bounded
optimal solution for each LP on every cut cell by the Fundamental Theorem of Linear
Programming [91].
3.2.6
Both the standard and the relaxed constraints only limit the reconstruction evaluated
at the neighboring centroids. It might be possible that the reconstruction evaluated at
the edge midpoints, which is used in the flux computation, is a relative extremum and
might become negative. For planar geometry, a straightforward but tedious geometry
analysis (not included here) shows the following Lemma.
85
Figure 3.3: For a cut cell, all edge midpoints are contained in the convex hull of neighboring centroids and the boundary edge midpoint. For a Cartesian neighbor, this might
not be the case for the respective convex hull.
Lemma 3.1. All edge midpoints of a cut cell lie in the convex hull spanned by the
neighboring centroids and the cut cells boundary edge midpoint.
This is illustrated in Figure 3.3(a). We note that the convex hull here includes the
boundary edge midpoint. Therefore, this convex hull is different from the one considered
in the discussion of the relaxed constraints.
A linear function evaluated over a convex hull attains the maximum and minimum
values at the corners of the convex hull. Consequently, Lemma 3.1 implies that the
reconstruction evaluated at the edge midpoints is bounded by the max and min over
the centroid values and the value at the boundary edge midpoint. Assuming that all
neighboring cells values are non-negative and that the boundary constraint (3.8) is
included, non-negativity at the edge midpoints is guaranteed.
In Appendix A, the boundary constraint (3.8) and Lemma 3.1 will be used to prove
that for the linear advection equation and non-negative data at tn , the value on a cut
cell at time tn+1 will also be non-negative under certain conditions.
The Cartesian neighbor of a cut cell also has an irregular stencil and needs special
treatment. (In Chapter 1 we referred to these cells as irrflow cells.) One possibility
86
E
W
Ecen
Figure 3.4: Idea of recentering: instead of E, Ecen is used to determine the x slope.
is to use the LP limiter on these cells as well. Analogous to Lemma 3.1, we examined
whether the four edge midpoints are contained in the convex hull of the four neighboring
cells centroids. Unfortunately, this is not true in general. An example of this is shown
in Figure 3.3(b). Additional constraints would be necessary to guarantee positivity in
these cases. Though additional constraints can easily be included in the LP framework,
there is a cheaper option for this relatively regular cell which is presented next.
3.2.7
A recentering approach
An alternative to using the LP limiter is the recentering approach [28, 76]. In recentering, the location of the point where the limiter is applied is altered, so that a
one-dimensional limiter can be applied. To do so, one makes use of the fully limited
gradient on cut cells, which is computed first.
The main idea in recentering is illustrated in Figure 3.4. We focus on reconstructing
a limited x slope, since in the situation shown, a standard one-dimensional limiter can
be used for the y slope. The problem is that the cell centroids W , M , and E do not
have the same y coordinate. Instead of E, we use the point Ecen for limiting, which
does have the same y coordinate as W and M . This reduces the limiting problem to
a one-dimensional problem on a non-uniform grid (as the distances between W and M
and between M and Ecen differ). One possibility is to use the minmod limiter (recall
87
To obtain a value at Ecen , we use the fully limited gradient on the cut cell E and
evaluate the linear reconstruction of cell E at Ecen . We note that even in the case of
the slimmest triangle, the point Ecen lies within the cell and in particular within the
convex hull guaranteeing non-negativity. This in turn guarantees non-negativity of the
reconstruction on cell M at the edge midpoint that lies on the line connecting M and
Ecen (assuming non-negative cell values). Also, this procedure is linearity preserving.
3.3
In this section we focus on the efficient solution of the LPs in our limiter. We first
compare standard optimization algorithms used to solve linear programs and then present
the scheme that is most suitable for our purposes, the all-inequality Simplex method.
3.3.1
min cT x,
x
subject to Ax > b,
with c, x R2 , A Rk2 , b Rk , and k depends on the geometry of the cut cell and the
constraints chosen, but is typically between 10 and 15. Such a problem must be solved on
every cut cell in every time step, or several times per time step for a multi-stage method.
Therefore, an efficient solution algorithm is crucial for the limiter to be practical.
The two standard methods for solving LPs are the Simplex method and the Interior
Point method, see, e.g., Nocedal & Wright [91]. The Simplex method starts at a corner of
88
the feasible set and then moves (along the edges) from corner to corner until it reaches
an optimal vertex. The Interior Point method starts with a strictly interior point of
the feasible set, computes iterates that lie strictly in the interior, and only approaches
the boundary in the limit of approaching the optimal point. We tried both methods
and concluded that the Simplex method is much more suitable for our specific problems
due to the choice of the starting point and the cost of the algorithm determined by the
number of iterations and the expense of each iteration.
It is usually non-trivial to find a suitable starting point for the Simplex method. One
common way is to solve a Phase-I problem [91] in addition to solving the actual LP.
The solution of the additional problem is roughly as expensive, which doubles the cost.
In our case, we have a starting point free of charge. The point (0, 0), corresponding to
the zero-gradient, is a vertex of the feasible set and therefore a suitable starting point. It
is non-trivial, however, for our LPs to find a strictly interior point to be used as starting
point for the Interior Point method.
Once a starting point is found, the cost of the algorithm is determined by the number
of iterations needed and the cost of each iteration. In terms of the latter, the Interior
Point method is more expensive than the Simplex method as the matrix that needs to
be inverted in each iteration is significantly larger. The number of iterations needed for
both methods was roughly the same in our tests.
Typically, the Simplex method is presented for an LP of the form
min dT x,
subject to F x = g, x > 0.
89
LPs during the course of a simulation. This situation is to some extent contrary to the
classical LP situation, where a very large LP with hundred of thousands of variables
needs to be solved only a few times. We need to solve tiny LPs, but we need to solve
them very often.
For our situation, the all-inequality Simplex method, introduced to us by Margaret
Wright, is much more suitable. The idea is the same as for the standard Simplex method:
the algorithm moves along the boundary of the feasible set from corner to corner. The
mathematical details differ as the algorithm is based on the all-inequality standard form.
As a consequence, the two linear systems that need to be inverted in each iteration are
only 2 2 systems (for our case of A Rk2 ). This makes each iteration significantly
cheaper than for the standard Simplex method, while the number of iterations stayed
the same. Therefore, the all-inequality Simplex method is our method of choice for these
specific LPs.
The all-inequality Simplex method is not widely known. The only description we
know of is by Gill et al. [57]. Since this book is out of print, the algorithm is included
in the Appendix of [87] and will be presented here as well. We follow the description by
Gill et al. .
3.3.2
min cT x
x
subject to
Ax > b.
xk+1 = xk + k pk .
90
(3.9)
In each iteration, the step length k and the descent direction pk need to be determined.
We use the following notation:
Working set Wk : Set of (exactly) n indices, each of which is the index of a constraint
that is active at xk .
Working set matrix Ak : n n matrix consisting of rows numbered 1 , . . . , n of
A, where Wk = {1 , . . . , n }. We denote this
T
a1
.
Ak = .. ,
and
aTn
b1
.
bk = .. ,
bn
91
aTi xk bi
.
aTi pk
(d) Calculate the largest step length possible that does not violate any constraints
as
k min (i ).
iDk
5. Update
(a) the variable x: xk+1 xk + k pk ,
(b) the working set:
92
3.3.3
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.
93
(xj xM )Dx x
> 0
(yj yM )Dy
(3.10)
will be active at the starting point, but not be part of the working set. Therefore, the
LP is degenerate.
The main problem with degenerate LPs is that they could encounter cycling: The
search direction is computed such that it does not violate any of the constraints in the
working set Wk \ q. If a constraint j is active but not in the working set (as, e.g., for
the starting point), one can end up with a search direction violating that constraint.
Therefore, the step length k will be determined to be zero, j will be added to the
working set and one index will be removed. In other words, the algorithm does not move
along the boundary of the feasible set in this step, but just replaces the indices in the
working set. This can lead to a cycle in which the algorithm changes the working set in
each iteration but does not move.
We did not encounter this issue in any of our numerical tests in two dimensions,
during which we solved a very high number of LPs coming from cut cells with differing
geometry and different data.
Numerical issues
In Step 3 of Algorithm 3.1, the search direction pk is determined by solving Ak pk = eq .
If we solved that system exactly, then aTi pk = 0 for i Wk , i 6= q, i.e., for all indices in the
working set, which are supposed to stay in the working set in this iteration. Therefore,
none of these indices should qualify for the set of decreasing constraints Dk , out of which
94
the index is determined that will enter the working set Wk+1 in exchange for q.
Numerically, however, we found that aTi pk = with small but not identically zero.
This led initially to the problem that sometimes a constraint ended up twice in the
working set: in addition to staying in the working set, the constraint also entered the
set of blocking constraints and was chosen as the new constraint to enter Wk+1 . To
avoid this case (which would not occur in exact computations), we do not check whether
aTi pk < 0 but whether aTi pk < 1011 in the computation of Dk in Step 4. This worked
well in all our two-dimensional tests.
3.3.4
The cost of the LP limiter essentially depends on the number of iterations in the
Simplex algorithm. In all our two-dimensional tests, the average number of iterations
was between 2 and 3.5, and 2.5 iterations was typical. The maximum was always 6 or
less.
Each iteration of the all-inequality Simplex method is very cheap. It consists of
solving two two-by-two systems and checking each constraint for a possible violation
by the proposed step. This corresponds to more floating point operations than the
scalar limiter, but it is approximately equivalent in terms of data motion. Therefore,
we count one iteration of the all-inequality Simplex method as roughly equivalent to the
computational cost of the scalar limiter.
For both the scalar and LP limiter one first computes a least squares gradient, so
this part of the work is identical. In sum, we estimate the cost of slope reconstruction
using the LP limiter to be about 2.5 times the cost of slope reconstruction using the
scalar limiter. We also like to note that the LP limiter is embarrassingly parallel.
95
3.4
Numerical results
Here we present numerical results comparing the LP limiter with the scalar limiter.
We first show results for a smooth steady-state test problem. Then we present results
for the time-dependent simulation of shocked flow diffracting around a cylinder. The
numerical methods used for time stepping are described in the respective sections.
3.4.1
We consider the case of inviscid, isentropic, supersonic flow between concentric arcs
as presented in Aftosmis et al. [4]. Since the flow is shock free, a limiter is not needed for
this test problem. But this way we can compare the unlimited solution to the solution
using the two different limiters. Also, there exists an analytic solution for this test
problem.
As this is a steady-state problem, we can use local time stepping and avoid the small
cell problem. We use the second-order TVD Runge-Kutta method due to Gottlieb &
Shu [58]. To solve ut = f (u), this two stage method is given by:
u = un + tf (un ),
1
1
un+1 = un + (u + tf (u )) .
2
2
The limiting is performed on the primitive variables, not the conserved variables, and
the van Leer flux function is used.
The grid for the simulation is shown in Figure 3.5. The cells are initialized with the
exact solution and the simulations are run to steady state. We use the same parameters
as [4], Mi = 2.25, inner radius 1.0, outer radius 1.43, and CFL number .9.
In our test, we only limit at the cut cells. If limiting was used on all cells the interior
error would dominate, and we would not be able to see the effect of using different
limiters in the cut cells as clearly. For the unlimited slope reconstruction on Cartesian
96
Figure 3.5: Only slopes on the marked cut cells are limited, using either scalar or LP
limiting.
cells, we use standard central difference quotients on flow cells, and the least squares
formulation on irrflow cells. Also, to minimize the error at the inflow, we specify the
exact fluxes into the first column of cells, and do not limit these cells either.
For the shaded cut cells of Figure 3.5 we use either the scalar or LP limiter, and
compare to the unlimited results and the exact solution. For both the scalar and LP
limiter we use both sets of constraints:
the standard formulation, defined by (3.5), and
the relaxed formulation, defined by (3.7).
For the LP limiter, we also include a positivity constraint at the boundary segment.
Thus, each LP has 4 + 2N + p constraints, where N is the number of neighboring cells
used for limiting and p is 1 for density and pressure and 0 for the velocity variables.
Figure 3.6 shows the error in the L1 norm and L norm for various scenarios. The
solid lines correspond to a least squares fit, the symbols to the measured errors. For a
given set of constraints, the LP limiter leads to significantly more accurate results than
the scalar limiter. For the standard constraints, the LP limiter is about 4-5 times more
accurate in both the L1 and L norm. For the relaxed constraints, the results with the
LP limiter are about twice as accurate in the L1 norm and a factor of 4 better in the
L norm. Note that the LP-relaxed version yields results that are very close to the
unlimited case.
97
10
3
Error
Error
10
10
10
Unlimited
Unlimited
Scstd
Scstd
Screl
10
Screl
10
LPstd
LPstd
LPrel
LPrel
10
mesh width
10
mesh width
(a) L1 error
(b) L error
Figure 3.6: Error in density over the domain for standard and relaxed monotonicity
constraints. The mesh width h on the horizontal axis denotes the length/height of a
Cartesian cell. The unlimited results show second-order convergence in L1 , and h3/2 in
the L norm. The solid lines are the result of a least squares fit, the symbols mark the
measured errors.
As typical for embedded boundaries, the error plots show a zig-zag-behavior, which
is significantly more pronounced for the L error than for the L1 error. Also, for the
unlimited case in the L norm, the error does not converge with full second order but
instead converges like h3/2 . Similar behavior has been observed by other authors before
[26, 42].
Figure 3.7 shows the actual error distribution for density for the scalar and LP limiters, both using the standard formulation. Red represents overshoot, blue undershoot,
and green is negligible error. Both pictures use the same scale. For both limiters, the errors bounce between the two arcs. However, the error for the scalar limiter is significantly
bigger than for the LP limiter.
A common problem when simulating steady-state problems with limiters is limiter
chatter. The convergence stalls due to the activity of the limiter. For both the scalar
and LP limiter we observe this issue, but for the LP limiter it kicks in later.
Venkatakrishnan [110] attributes limiter chatter to a conflict between monotonicity
and convergence to a steady-state. This is consistent with our observations. We ex98
(b) LP limiter
Figure 3.7: Error in density using the scalar limiter (a) and LP limiter (b) and standard
monotonicity constraints. The grid uses h = (1.43/244) 0.0059. Red represents
overshoot, blue undershoot, and green negligible error.
amined some cells in the inflow area more closely. The values on these cells along the
boundary are slightly increasing with some minor oscillations. However, due to these
minor differences the limiter becomes active for a few cells to guarantee monotonicity. As
a result, the flux to the neighboring cells is reduced (or increased) by a bit. Over several
iterations, the cell value at the neighboring cell becomes smaller (or bigger), changing
the balance, which leads to other limiters becoming active.
Common approaches to reduce limiter chatter are to use a smooth limiter and/or to
avoid clipping smooth extrema, i.e., to not strictly enforce monotonicity [75, 108, 110].
As it is non-trivial to transform the LP limiter into a smooth limiter, we tried the latter
approach and allowed some relative overshoot of the order of 103 . As a result, the
limiter chatter significantly improved, but at the price of allowing overshoot.
3.4.2
Here we test the behavior of the LP limiter with standard monotonicity constraints
(3.5) on a time-dependent problem with a shock to assess its robustness. This implies
that we need to use a time stepping method that can deal with the small cell problem.
We choose the h-box method [27, 66] for this purpose. For the h-box method and the
99
A
QL
C
M
D
Figure 3.8: Due to the enlarged stencil of the h-box method, the gradient on cell M is
used in the flux computation for the edge marked with the blue square.
LP limiter we need to use more monotonicity constraints than usual for triangular cells.
This is made precise in Section 3.4.2.1. In Section 3.4.2.2, we present numerical results
for a shock reflection from a cylinder.
3.4.2.1
The h-box method solves the small cell problem by essentially enlarging the domain of
dependence of cut cells in a way that enforces a cancellation property that gives stability.
By increasing the stencil, however, a cut cell can be used in the flux computation for
another cut cell that is not an edge neighbor but a diagonal neighbor (with respect to
the underlying Cartesian grid). We enlarge the monotonicity constraints to include these
diagonal neighbors in the limiting process too.
In more detail, for triangular cells it can happen that the slope on the cut cell has
not been sufficiently limited in the direction of that diagonal neighbor. This is shown in
Figure 3.8. The edge between cells A and E, marked with a blue square, uses the h-box
state QL
in solving the Riemann problem to compute the flux. This state is computed
from a linear combination of the solution on the underlying Cartesian grid, in this case
from cells A and M . The gradient QL
is also determined from a linear combination of
the gradients in A and M . The problem is that the gradient in cell M might not have
been limited strongly enough to be used this way. Cell M only has one x face (shared
100
with cell C) in the negative x direction. The other edge neighbor, cell A, has a centroid
for which the difference in the y component, compared to cell M s centroid, is much
bigger than the difference in the x component. As a consequence, the x slope on cell M
might not have been limited strongly enough, and might cause a loss of positivity at the
edge between cells A and E.
This did not cause issues when using the h-box method with the more diffusive scalar
limiter and standard monotonicity constraints. But when using the LP limiter with the
h-box method, in some of our tests we lost positivity.
Therefore, we add monotonicity constraints to the LP at triangular cut cells for any
cell in the 3 by 3 neighborhood of cells surrounding cell M . In our example, monotonicity
equations for cells B, D, and E are added to the LP for determining the gradient on cell
M . Without this, only constraints for A and C would have been used. The additional
equations are of the same form as the standard monotonicity constraints (3.5). (We note
that cells D and E do not participate in the initial computation of the least squares
gradient.) It was very easy to adjust the LPs in this way and we did not observe further
issues for this modified limiting approach.
3.4.2.2
We again solve the two-dimensional Euler equations for this test. We consider shock
reflection from a cylinder using the same setup as Helzel et al. [66]. The domain is [0, 1]2 ,
the cylinder has a radius of r = 0.15 and is centered at (0.5, 0.5). A Mach 2 shock starts
at x = 0.2. The state in front of the shock is given by = 1.4, u = v = 0, p = 1. The
mesh for this computation is 302302. This results in 364 cut cells around the cylinder.
As this problem involves a shock, all cells must be limited. We use the MC limiter
for regular Cartesian cells. For cut cells, we use either the scalar or the LP limiter with
standard monotonicity constraints. For the LP limiter, we add the positivity constraint
at the boundary edge midpoint for the density and pressure variables.
101
Simulation of shock
102
3.5
In this chapter, we have presented a limiter that limits the x and y slope of the
gradient independently and that is suitable for the complicated geometry of a cut cell.
It is based on solving a tiny LP in every cell, which we solve very efficiently by means of
the all-inequality Simplex method.
The standard limiter for cut cells, the scalar limiter, limits both slopes with the same
scalar factor . For this approach the constraints can be enforced one after the other,
which is not possible for limiting x and y slope independently. As a consequence, the LP
limiter is roughly 2-3 times as expensive as the scalar limiter, despite its very efficient
setup. In terms of accuracy, the results using the LP limiter are a factor of 2-5 more
accurate depending on the monotonicity constraints, which compensates for the higher
cost.
The LP limiter is really a limiter framework, accompanied by a general algorithm for
the solution of the LPs. Thus, it is easy to modify the constraints for special situations.
This was demonstrated by our modifications for the h-box method no changes besides
103
104
Conclusions
We have developed new methods for simulating flow in complicated geometries using Cartesian embedded boundary grids. The dissertation is organized along the three
aspects that we have considered: In Chapter 1 we have presented a new method to solve
the small cell problem for the linear advection equation in two dimensions. The main
criteria for the scheme development has been to guarantee easy extensibility to three
dimensions and to achieve second-order accuracy at the embedded boundary. Our approach is to use an implicit time stepping scheme on the cut cells for stability and an
explicit scheme on cells away from the boundary to avoid excessive cost. The goal of
Chapter 1 has been to find a suitable way to do that.
Theoretical considerations in one dimension show that flux bounding is more favorable than cell bounding. As implicit time stepping scheme we use the trapezoidal rule,
which is a good match with our explicit scheme, the MUSCL scheme. Numerical tests
in two dimensions indicate that the resulting scheme is second order in L1 and between
first and second order along the embedded boundary.
In Chapter 2 we have presented first results for extending an existing projection
method for the incompressible Euler equations from Cartesian to Cartesian embedded
boundary grids. In the first step of the projection algorithm, the velocity field at the
new time is computed without enforcing the incompressibility condition. We have relied
on the algorithm from Chapter 1 to extend this part to cut cells. For the second step of
the algorithm, we have adjusted the operators involved in the projection to embedded
105
boundary grids. We have presented first results using the full projection algorithm for
Cartesian embedded boundary grids.
In Chapter 3 we have developed a new slope limiter for cut cells. Due to the irregular
geometry of a cut cell, standard slope limiters for Cartesian or triangular grids cannot
easily be used. Usually, the scalar limiter is applied, which limits the x and y slope with
the same scalar factor . We have developed a new limiter, the LP limiter, which limits
the x and y slope separately using two scalars (x , y ). The limiter is formulated as
a tiny LP. We use the very effective all-inequality Simplex method to solve the specific
LPs. The LP limiter is somewhat more expensive than the scalar limiter but significantly
more accurate.
We have described plans for future work in the conclusions of each chapter. One
main goal is the extension of the algorithm developed in Chapter 1 and of the LP limiter
to three dimensions. Both schemes have been set up to easily extend to three dimensions
and preliminary three-dimensional versions have been implemented by us.
For the projection algorithm presented in Chapter 2, we need to continue developing
the two-dimensional algorithm before extending it to three dimensions. We have already
identified problems caused by our approach and have ideas how to fix them. We are very
hopeful that this will lead to a higher-order algorithm for solving the incompressible
Euler equations on Cartesian embedded boundary grids.
Another goal for future work is a high performance implementation of our algorithms
for embedded boundary grids. Our software is based on BoxLib [50], which provides
functionality for massively parallel, block-structured AMR applications for Cartesian
grids. Our tests currently run in parallel on desktop computers (with four cores). Taking
care of AMR related aspects along the embedded boundary and running big simulations
on supercomputers will be future work.
106
Appendix A
A non-negativity result
Batten et al. [17] show a non-negativity result for linear advection on triangle grids.
Following their approach, we show a non-negativity result for linear advection on cut
cells when using the LP limiter for slope reconstruction.
Lemma A.1. Consider the two-dimensional linear advection equation
st + usx + vsy = 0.
t 6
VM
,
j:unj >0 u nj ej
(A.1)
where VM denotes the volume of cell M , nj denotes the unit normal vector of the
j-th edge of cell M , and ej the length of that edge.
If the data at time tn are non-negative, i.e. sni > 0 i, then sn+1
M > 0.
For the proof of the Lemma A.1 we need information that is provided by the following
Lemma. We will first prove Lemma A.1, assuming Lemma A.2 holds true, and then show
Lemma A.2.
Lemma A.2. Let the assumptions of Lemma A.1 hold and define the linear, LP limited
reconstruction as
sM (x, y) = snM + (x xM )x Dx + (y yM )y Dy .
(A.2)
i = 1, . . . , k,
(A.3)
where mi is the midpoint of the ith edge of cell M , and cell M has k edges including the
boundary edge.
Proof of Lemma A.1. We assume that Lemma A.2 is true. The standard finite volume
update for scalar advection on cell M is
n
sn+1
M = sM
k
t X
Fj (
sM (mj ), sj (mj ))
VM j=1
where sM and sj denote the limited reconstruction on cell M and the neighboring cell
108
j, respectively, and
Fj (sL , sR ) =
sL u nj ej
if u nj > 0,
s u n e
j
j
R
otherwise.
n
sn+1
M > sM
k
t X
Fj (
sM (mj ), 0)
VM j=1
t
VM
= snM
> snM ML
sM (mj ) u nj ej
j:unj >0
t
VM
u nj ej
j:unj >0
t
> snM 1 6
VM
u nj ej .
j:unj >0
t 6
VM
.
3 maxj |u nj ej |
(A.4)
109
j:unj >0 u
C
2
I
y
A
(0, 0)
F
A
(0, 0)
1
B
x
(b) 5-sided cell
1
2
y 6 yC 6 y.
2
3
Consider the 5-sided cut cell in Figure A.1(b). For 1 varying between 0 and x and 2
varying between 0 and y, there holds
1
1
x 6 xC 6 x,
3
2
1
2
y 6 yC 6 y.
2
3
Proof. Let us start with the 4-sided cell. We first prove the lower bound for xC . We use
that the 4-sided cell ABCD corresponds to cutting the small triangle F BA out of the
110
=
=
AF CD
AABCD
1dx
R
F CD
xdx/AF CD AF BA
AABCD
F BA xdx/AF BA
AF CD 13 L AF BA 31
AF CD 13 L AF BA 13 L
1
>
= L.
AABCD
AABCD
3
For the upper bound we describe the cell as quadrilateral AGCD minus triangle BGC
to get
R
R
R
xdx BGC xdx
xdx
AGCD
ABCD
=
xC = R
ABCD
AABCD
1dx
AAGCD 12 L ABGC 21 L
1
= L.
AABCD
2
Here, we used that xC (BGC) > 23 L > 12 L. To determine yC , we interpret the 4-sided
cell as the sum of the quadrilateral ABED and the triangle BCE. Then, yC is a
convex combination of yC (ABED) and yC (BCE). For yC (ABED), the y coordinate
of the centroid of cell ABED, we have yC (ABED) = 12 y. For yC (BCE) there holds
yC (BCE) = 32 y. This implies the bounds for the 4 sided cell.
To determine the location of xC of the 5-sided cell, we represent xC as a convex
combinations of the x coordinate of the centroids of quadrilateral JICD and the 4-sided
cell ABIJ. Using the results for the 4-sided cell, this implies the claim for xC . For yC
we split into ABED and BICE.
With this information we now prove Lemma A.2. The proof relies on Lemma 3.1.
The LP limiting itself only ensures that the reconstruction evaluated at the neighboring
centroids does not overshoot. This implies non-negativity of the reconstruction sM at
111
z2
c
(0, 0)
z3
e3
2
z1
e2
e1
eB
sM (x)dx = sM ,
M
112
(In the following we assume WLOG 1 > 2 .) The point c, which coincides with the
origin, lies in the convex hull of the neighbors as shown in Figure A.2(a). The reason
y
M
is that for centroid z1 , there holds x(z1 ) 6 x
2 and y(z1 ) > 2 . Using that s
has non-negative values at the neighboring centroids due to limiting, it must also be
non-negative at c.
This in turn implies that sM is non-negative on the line marked in light blue in Figure
A.2(b). Denoting the location of the centroid of cell M by (xM , yM ) there holds
1
1
x 6 xM 6 x,
3
2
1
1
1 6 yM 6 1 .
2
3
sM + (0 xM )x Dx + (yM yM )y Dy > 0
x Dx 6
3sM
sM
6
.
xM
x
Similarly, using that (xM , 0) also lies on the light blue line, we get
y Dy >
3sM
.
1
We now need a lower bound for x Dx and an upper bound for y Dy . Consider the
distance between the centroid and the boundary midpoint eB . There holds 0 6 x(eB )
xM 6 16 x. A short calculation shows 12 1 6 y(eB ) yM 6 61 1 . Using sM (eB ) > 0,
there holds
(y(eB ) yM )y Dy > sM (x(eB ) xM )x Dx .
As x(eB ) xM > 0, we make the right hand side as negative as possible by using the
upper bounds for x(eB ) xM and x Dx and get
3sM
3
1
= sM .
(y(eB ) yM )y Dy > sM x
6
x
2
113
This implies
y Dy 6
3
2 sM
yM y(eB )
9sM
.
1
8sM
.
x
Using the upper and lower bounds for x Dx and y Dy for evaluating sM at the edge
midpoints and the boundary edge midpoint implies ML 6 6sM .
5-sided cell: The situation of the 5-sided cell is shown in Figure A.3. For the location
of the centroid, there holds
1
1
x 6 xM 6 x,
3
2
1
2
y 6 yM 6 y.
2
3
e2
e3
e1
(0, 0) e4
2
1
eB
114
The upper right corner of the cell lies on the line connecting the centroid of the upper
neighbor with the centroid of the left neighbor. Therefore, sM is non-negative at that
point and consequently non-negative on the light blue line. We use the light blue line in
the same way as for the 4-sided cell to deduce the bounds
x Dx 6
3sM
,
x
y Dy >
3sM
.
y
2sM
y .
x Dy >
We assume y Dy >
6sM
y .
8sM
,
x
y Dy 6
6sM
.
y
{z
>0
{z
60
Based on the assumptions and the geometry of the cell x Dx (x(e4 ) xM ) > 0 and
y Dy (y(e4 ) yM ) 6 0. Therefore, for y Dy big, x Dx (x(e4 ) xM ) must also be big to
make sure that the overall sum is still positive. This implies
115
4sM
x
6sM 1
y = 2sM .
y 2
6sM
y .
{z
60
{z
60
Using the upper bound for x Dx and the lower bound for y Dy , we define
f (x(eB ), y(eB ), xM , yM ) :=
4sM
6sM
(x(eB ) xM ) +
(y(eB ) yM ).
x
y
We deduce analytic formulae for the exact positions of x(eB ), y(eB ), xM , and yM depending on 1 and 2 (compare Figure A.3(b)). Evaluating f with the exact coordinates
shows that
5
5sM 6 f (x(eB ), y(eB ), xM , yM ) 6 sM .
3
Therefore, there is no possible configuration of a 5-sided cell such that y Dy >
6sM
y ,
M
x Dx 6 4s
M at eB is still positive. This implies that our
x , and the evaluation of s
6sM
y .
M
x Dy > 8s
x .
We now evaluate the 4 different cases at all edge midpoints and the boundary edge
midpoint and find ML 6 5sM .
Remark. The focus of this proof is not on computing optimal bounds. We want to
provide a reasonable estimate with reasonable effort.
116
Bibliography
[1] http://people.nas.nasa.gov/ aftosmis/cart3d/.
[2] https://ccse.lbl.gov/Downloads/downloadAmrvis.html.
[3] R. Abgrall. On essentially non-oscillatory schemes on unstructured meshes: analysis and implementation. J. Comput. Phys, 114:4558, 1994.
[4] M. J. Aftosmis, D. Gaitonde, and T. S. Tavares. On the accuracy, stability and
monotonicity of various reconstruction algorithms for unstructured meshes. AIAA94-0415, 1994.
[5] M. J. Aftosmis, M. J. Berger, and J. E. Melton. Robust and efficient Cartesian
mesh generation for component-based geometry. AIAA Journal, 36(6):952960,
1998.
[6] M. J. Aftosmis, M. J. Berger, and G. D. Adomavicius. A parallel multilevel method
for adaptively refined Cartesian grids with embedded boundaries. AIAA-20000808, 2000.
[7] A. S. Almgren, J. B. Bell, and W. G. Szymczak. A numerical method for the
incompressible Navier-Stokes equations based on an approximate projection. SIAM
J. Sci. Comput., 17(2):358369, 1996.
[8] A. S. Almgren, J. B. Bell, P. Colella, and T. Marthaler. A Cartesian grid projection
method for the incompressible Euler equations in complex geometries. SIAM J.
Sci. Comput, 18:12891309, 1997.
117
[9] A. S. Almgren, J. B. Bell, P. Colella, L. H. Howell, and M. L. Welcome. A conservative adaptive projection method for the variable density incompressible NavierStokes equations. J. Comput. Phys., 142:146, 1998.
[10] A. S. Almgren, J. B. Bell, and W. Y. Crutchfield. Approximate projection methods:
Part I. Inviscid analysis. SIAM J. Sci. Comput., 22(4):113959, 2000.
[11] E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz,
A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen. LAPACK Users
Guide. Society for Industrial and Applied Mathematics, Philadelphia, PA, third
edition, 1999.
[12] U. Ascher, S. Ruuth, and R. J. Spitheri. Implicit-explicit Runge-Kutta methods
for time dependent partial differential equations. Appl. Numer. Math, 25:151167,
1997.
[13] M. Barad, P. Colella, D. T. Graves, P. Schwartz, B. van Straalen, and D. Trebotich.
A Cartesian grid embedded boundary method for the incompressible Navier-Stokes
equations. Preprint, 2009.
[14] T. J. Barth. Numerical aspects of computing viscous high Reynolds number flows
on unstructured meshes. AIAA-91-0721, 1991.
[15] T. J. Barth. Numerical methods and error estimation for conservation laws on
structured and unstructured meshes. Van Karman Institute Computational Fluid
Dynamics Lecture Notes, 2003.
[16] T. J. Barth and D. Jespersen. The design and application of upwind schemes on
unstructured meshes. AIAA-89-0366, 1989.
[17] P. Batten, C. Lambert, and D. M. Causon. Positively conservative high-resolution
schemes for unstructured elements. Int. J. Numer. Methods Eng., 39:18211838,
1996.
118
119
[29] P. Birken and A. Jameson. On nonlinear preconditioners in Newton-Krylov methods for unsteady flows. Int. J. Num. Meth. Fluids, 62:565573, 2010.
[30] J. P. Boris and D. L. Book. Flux corrected transport. I. SHASTA, a fluid transport
algorithm that works. J. Comput. Phys., 11:3869, 1973.
[31] T. Buffard and S. Clain. Monoslope and multislope MUSCL methods for unstructured meshes. J. Comput. Phys., 229:37453776, 2010.
[32] D. Calhoun. A Cartesian grid method for solving the streamfunction vorticity equations in irregular geometries. PhD thesis, Department of Applied Mathematics,
University of Washington, 1999.
[33] D. M. Causon, D. M. Ingram, and C. G. Mingham. A Cartesian cut cell method
for shallow water flows with moving boundaries. Advances in Water Resources, 24:
899911, 2001.
[34] I.-L. Chern and P. Colella. A conservative front tracking method for hyperbolic
conservation laws. Technical report, Lawrence Livermore National Laboratory,
Livermore, CA, 1987. Preprint UCRL-97200.
[35] Y.-L. Chiang, B. van Leer, and K. G. Powell. Simulation of unsteady inviscid flow
on an adaptively refined cartesian grid. AIAA paper 92-0443, 1992.
[36] A. J. Chorin. Numerical solution of the Navier-Stokes equations. Math. Comp.,
22:745762, 1968.
[37] A. J. Chorin. On the convergence of discrete approximations to the Navier-Stokes
equations. Math. Comp., 23:341353, 1969.
[38] A. J. Chorin and J. E. Marsden. A Mathematical Introduction to Fluid Dynamics.
Springer, 3rd edition, 2000.
[39] I. Christov and B. Popov. New non-oscillatory central schemes on unstructured
triangulations for hyperbolic systems of conservation laws. J. Comput. Phys., 227:
57365757, 2008.
120
B.
B.
et
CCSE,
al.
Lawrence
BoxLib
Users
Berkeley
Guide.
National
https://ccse.lbl.gov/BoxLib/BoxLibUsersGuide.pdf.
121
Technical
Laboratory,
re2012.
122
[83] R. J. Leveque. Finite Difference Methods for Ordinary and Partial Differential
Equations. siam, 2007.
[84] R. J. Leveque. Numerical methods for conservation laws. Birkhuser, 2nd edition,
2008.
[85] W. Li, Y.-X. Ren, G. Lei, and H. Luo. The multi-dimensional limiters for solving
hyperbolic conservation laws on unstructured grids. J. Comput. Phys., 230:7775
7795, 2011.
[86] K. Lipnikov, G. Manzini, and M. Shashkov. Mimetic finite difference method. J.
Comput. Phys, 2013.
[87] S. May and M. J. Berger. Two-dimensional slope limiters for finite volume schemes
on non-coordinate-aligned meshes. SIAM J. Sci. Comput. to appear.
[88] S. May, A. J. Nonaka, A. S. Almgren, and J. B. Bell. An unsplit, higher order
Godunov method using quadratic reconstruction for advection in two dimensions.
Comm. App. Math. and Comp. Sci., 6:2761, 2011.
[89] M. Meyer, A. Devesa, S. Hickel, X. Y. Hu, and N. A. Adams. A conservative
immersed interface method for large-eddy simulation of incompressible flows. J.
Comput. Phys., 229:63006317, 2010.
[90] G. H. Miller and D. Trebotich. An embedded boundary method for the NavierStokes equations on a time-dependent domain. Comm. App. Math. and Comp.
Sci., 7:132, 2012.
[91] J. Nocedal and S. J. Wright. Numerical Optimization. Springer, 1999.
[92] A. J. Nonaka, S. May, A. S. Almgren, and J. B. Bell. A three-dimensional, unsplit
Godunov method for scalar conservation laws. SIAM J. Sci. Comput., 33:2039
2062, 2011.
125
[93] C. F. Ollivier-Gooch. Quasi-ENO schemes for unstructured meshes based on unlimited data-dependent least-squares reconstruction. J. Comput. Phys., 133:617,
1997.
[94] J. S. Park, S.-H. Yoon, and C. Kim. Multi-dimensional limiting process for hyperbolic conservation laws on unstructured grids. J. Comput. Phys., 229:788812,
2010.
[95] R. Pember, J. B. Bell, P. Colella, W. Crutchfield, and M. L. Welcome. An adaptive
Cartesian grid method for unsteady compressible flow in irregular regions. J.
Comput. Phys., 120:278304, 1995.
[96] S. Popinet. Gerris: a tree-based adaptive solver for incompressible Euler equations
in complex geometries. J. Comput. Phys., 190:572600, 2003.
[97] J. J. Quirk. An alternative to unstructured grids for computing gas dynamic flows
around arbitrarily complex two-dimensional bodies. Comput. & Fluids, 23(1):125
142, 1994.
[98] W. J. Rider. Approximate projection methods for incompressible flows: Implementation, variants and robustness. Technical report, LANL unclassified report
LA-UR-94-2000, Los Alamos National Laboratory, 1995.
[99] J. Saltzman. An unsplit 3D upwind method for hyperbolic conservation laws. J.
Comput. Phys., 115:153168, 1994.
[100] C.-W. Shu. Total-variation-diminishing time discretizations. SIAM J. Sci. Statist.
Comput., 9:10731084, 1988.
[101] C.-W. Shu and S. Osher. Efficient implementation of essentially non-oscillatory
shock-capturing schemes. J. Comput. Phys., 77:439471, 1988.
[102] M. Spker. Contractivity in the numerical solution of initial value problems. Numer. Math., 42:271290, 1983.
126
[103] B. Swartz. Good neighborhoods for multdimensional van Leer limiting. J. Comput.
Phys., 154:237241, 1999.
[104] R. K. Sweby. High resolution schemes using flux limiters for hyperbolic conservation laws. SIAM J. Numer. Anal, 21:9951011, 1984.
[105] E. Y. Tau. A second-order projection method for the incompressible Navier-Stokes
equations in arbitrary domains. J. Comput. Phys., 115:147152, 1994.
[106] E. F. Toro. Riemann Solvers and Numerical Methods for Fluid Dynamics. Springer,
3rd edition, 2009.
[107] S. Tu and A. Aliabadi. A slope limiting procedure in discontinuous Galerkin finite
element method for gasdynamics applications. Int. J. Numer. Anal. Model., 2(2):
163178, 2005.
[108] G. D. van Albada, B. van Leer, and J. W. W. Roberts. A comparative study of
computational methods in cosmic gas dynamics. Astron. Astrophys., 108:7684,
1982.
[109] B. van Leer. Towards the ultimate conservative difference scheme, V. a second
order sequel to Godunovs methods. J. Comput. Phys., 32:101136, 1979.
[110] V. Venkatakrishnan. Convergence to steady state solutions of the Euler equations
on unstructured grids with limiters. J. Comput. Phys., 118:120130, 1995.
[111] VisIt Users Manual. https://wci.llnl.gov/codes/visit/home.html, 2005.
[112] S. Wang, J. Glimm, R. Samulyak, X. Jiao, and C. Diao. The embedded boundary
method for two phase incompressible flow. Preprint, 2013.
[113] B. Wendroff and A. B. White. A supraconvergent scheme for nonlinear hyperbolic
systems. Comput. Math. Appl., 18(8):761767, 1989.
[114] T. Ye, R. Mittal, H. S. Udaykumar, and W. Shyy. An accurate Cartesian grid
method for viscous incompressible flows with complex immersed boundary. J.
Comput. Phys., 156:209240, 1999.
127
128