You are on page 1of 140

Embedded Boundary Methods for Flow

in Complex Geometries

by

Sandra Monika May

A dissertation submitted in partial fulfillment

of the requirements for the degree of

Doctor of Philosophy

Department of Mathematics

New York University

September 2013

Professor Marsha J. Berger


UMI Number: 3602695

All rights reserved

INFORMATION TO ALL USERS


The quality of this reproduction is dependent upon the quality of the copy submitted.

In the unlikely event that the author did not send a complete manuscript
and there are missing pages, these will be noted. Also, if material had to be removed,
a note will indicate the deletion.

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

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

c Sandra Monika May

All Rights Reserved, 2013


Dedication

To my parents and my love Ulli.

iii
Acknowledgements

First and foremost, I would like to thank my advisor Professor Marsha Berger. With-

out her extraordinary insight in a wide range of computational challenges and her contin-

ual support and enthusiasm, this work would not have been possible. I am also grateful

for her help during my postdoc applications and my summer internships at Lawrence

Berkeley National Laboratory (LBNL). But above all, I appreciate the fact that her door

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 never-

ending support throughout my life and especially in the past five years, when my studies

have taken me far from home. And the very last thank you is for Ulli for being

an essential part of my life, for providing constant encouragement and advice, and for

making me laugh like no one else can.

v
Abstract

In this dissertation, we develop Cartesian embedded boundary methods for flow around

bodies with complicated geometries. These methods, also referred to as cut cell methods,

cut the body out of a regular Cartesian grid. As a result, most of the grid is regular but

special methods must be developed for the cut cells that intersect the solid boundary.

The dissertation is divided in three parts. The first part describes a mixed explicit

implicit scheme for solving the linear advection equation. It couples an explicit finite

volume scheme to an implicit scheme on only the cut cells. This approach avoids the

small cell problem that standard explicit finite volume methods are not stable on

arbitrarily small cut cells. We examine two different ways of handling the coupling. We

refer to them as cell bounding and flux bounding, depending on the kind of information

that is used as input for the implicit scheme. For using flux bounding on our model

problem, we prove a TVD result. We also examine different candidates for the implicit

scheme. Numerical results in two dimensions for the resulting scheme indicate second-

order accuracy in the L1 norm and between first- and second-order accuracy in the L

norm.

The second part describes the extension of an existing projection algorithm for the

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 1

Notation 5

1 A mixed explicit implicit time stepping scheme 7

1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2 Model problem in one dimension . . . . . . . . . . . . . . . . . . . . . . . 9

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

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

1.5 Conclusions and future work . . . . . . . . . . . . . . . . . . . . . . . . . 54

2 A projection algorithm extended to embedded boundary grids 58

2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

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

2.3 Extension to embedded boundary grids . . . . . . . . . . . . . . . . . . . 64

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

vii
2.5 Conclusions and future work . . . . . . . . . . . . . . . . . . . . . . . . . 75

3 The LP limiter 77

3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.2 Description of LP limiter . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

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

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

3.5 Conclusions and future work . . . . . . . . . . . . . . . . . . . . . . . . . 103

Conclusions 105

Appendix A A non-negativity result 107

Bibliography 117

viii
List of Figures

1 Examples of embedded boundary meshes . . . . . . . . . . . . . . . . . . 1

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

3 Various cell types introduced by cut . . . . . . . . . . . . . . . . . . . . . 5

4 Location of variables on cut cells . . . . . . . . . . . . . . . . . . . . . . . 6

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

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

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

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

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

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

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

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

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

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

1.11 Setup for advection along a ramp . . . . . . . . . . . . . . . . . . . . . . . 47

1.12 Numerical results for advection in the interior of a circle . . . . . . . . . . 53

1.13 Numerical results for advection in the interior of a circle . . . . . . . . . . 54

1.14 Numerical results in three dimensions . . . . . . . . . . . . . . . . . . . . 57

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

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

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

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

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

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

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

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

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

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

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

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

3.8 Flux computation in the h-box method . . . . . . . . . . . . . . . . . . . 100

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

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

A.1 Figure of 4- and 5-sided cut cells . . . . . . . . . . . . . . . . . . . . . . . 110

A.2 Figure of 4-sided cut cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

A.3 Figure of 5-sided cut cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

x
List of Tables

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

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

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

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

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

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

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

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

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

xi
Introduction

Cartesian embedded boundary methods, also referred to as cut cell methods, were

developed in recent years for computing fluid flow around bodies with complicated ge-

ometries. They cut the flow body out of a regular Cartesian grid, as illustrated in Figure

1.

(a) Two-dimensional example: (b) Three-dimensional example:


circle burner

Figure 1: Examples of Cartesian embedded boundary meshes.

Cut cell methods are an alternative to methods employing body fitted or unstructured

grids. Body-fitted grids are significantly harder to generate for complicated objects. The

use of unstructured grids necessitates more complicated methods, which are harder to

parallelize. For cut cell methods, most of the grid is regular and standard methods for

Cartesian grids can be used. Special methods must be developed for the cut cells, which

are cells that intersect the boundary [22, 45].

1
Cut cells can have irregular shape. In two dimen-

sions, 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 neighbor-

ing cells might differ by several orders of magnitude as

shown in Figure 2. In particular, cut cells can be arbi-


Figure 2: Close-up of the em-
trarily small.
bedded boundary.
The irregular geometry of cut cells causes various

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 han-

dle arbitrarily small cells. The flux redistribution method, originally developed for shock

tracking by Chern & Colella [34], was extended to embedded boundary problems by Pem-

ber et al. [95] and Colella et al. [46, 47]. The method has successfully been used in two-

and three-dimensional simulations, but it is only first order accurate at the embedded

boundary. The h-box method developed by Berger, Helzel, and LeVeque [2325, 27, 66]

2
guarantees stability on small cut cells by constructing numerical fluxes that possess a

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 incompress-

ible Euler equations. We extend an existing projection method by Bell et al. [7, 9, 19, 20]

from Cartesian meshes to embedded boundary meshes. This method uses an explicit

3
scheme to predict velocities at the next time step neglecting the incompressibility con-

dition. The mixed explicit implicit scheme is the main ingredient for extending this

part of the projection algorithm to cut cells. We also adjust the projection operator to

embedded boundaries by defining suitable interpolation, divergence, and gradient oper-

ators. 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 recon-

structed slopes on cut cells. Standard slope limiters cannot easily be used on cut cells

as their centroids do not align with neighboring cell centroids. Most practitioners use a

scalar limiter that limits the x and y slope with the same scalar . We use two different

scalars x and y for the two gradient components. We formulate the limiting as a

tiny linear program (LP) and suggest a very efficient method to solve these problems.

Numerical results show a significantly improved accuracy for the LP limiter compared

to the scalar limiter. This work has been published by May & Berger [87].

We conclude this dissertation with thoughts about future directions.

4
Notation

We begin by introducing some notation that we will use throughout the dissertation.

By cutting the object out of the Cartesian back-

ground grid, we introduce three main cell types: flow


C S
cells, cut cells, and solid cells. The latter refers to cells C
F C
that are fully covered by the body. The three types are C

illustrated in Figure 3. F F F

In Chapter 1, we will also introduce irrflow cells;

these are flow cells that are edge neighbors of cut cells,
Figure 3: Three main cell
compare Figure 1.7. This term is not part of the stan-
types introduced by the cut:
dard terminology. We will introduce this cell type to
F denotes a flow cell, C a
refer to the cells on which we switch between the ex-
cut cell, and S a solid cell.
plicit and implicit time stepping scheme.

We note that we will not consider split cells in this dissertation. These are Carte-

sian cells that have been split into disjoint volumes by the geometry. Split cells add

much complexity to the implementation but do not change the fundamental numerical

algorithms.

As usual for finite volume methods, qij is the numerical approximation to the aver-

age value of the variable q on cell (i, j). For second-order accurate methods, this is a

sufficiently good approximation to the solution value at the centroid (center of mass) of

the cell. We will therefore think of qij as the numerical approximation to the value at

5
the cell centroid. We often say, informally, that qij is located at the cell centroid.

We denote edge centered quantities by

qi+1/2,j and qi,j+1/2 , respectively. Typically, qi,j+1/2


(xij , yij ) refers to the centroid coordinates of a
qi+1/2,j
cell, and (xi+1/2,j , yi+1/2,j ) to the coordinates qij
of the edge centroid of edge (i + 1/2, j). For a qi1/2,j

cut cell, the locations of the cell centroid and

of the edge centroids are shifted compared to a

Cartesian cell as shown in Figure 4. We assume qi,j1/2

that the corresponding (cell centered or edge


Figure 4: Notation used to denote the
centered) variable is an approximation of the
cell centered and edge centered vari-
value at this shifted location. This is in con-
ables.
trast to the approach taken by Colellas group

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.

6
Chapter 1

A mixed explicit implicit time


stepping scheme

1.1 Introduction

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

st + (us) = 0

in one and two space dimensions on a Cartesian embedded boundary grid. Here, s(x, t)

represents an advected scalar field and u(x) denotes a given smooth, divergence-free

velocity field with no flow boundary conditions on the embedded boundary.

The main issue in solving the linear advection equation on a cut cell grid is the so

called small cell problem: for most (explicit) finite volume schemes, the time step t is

coupled to the size of a cell by means of the CFL condition. Cut cells can be arbitrarily

small. We want to use a scheme for which t is chosen according to the size of regular

Cartesian cells, but which is also stable on cut cells.

Two well known methods that have this stability property are the flux redistribution

method [46, 47, 95] and the h-box method [27, 66]. The flux redistribution method

7
redistributes fluxes from small cut cells to neighboring cells in a volume-weighted way.

It has successfully been used in two- and three-dimensional simulations. However, the

redistribution leads to a loss of accuracy around the boundary of the object. The resulting

scheme is second order globally in L1 but only first order in L . In many interesting

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 im-

plemented in both two and three dimensions and that results in second-order accuracy

at the boundary. Our approach is the following: we will use an implicit time stepping

scheme on cut cells to guarantee stability. Away from the cut cells we will use an explicit

scheme to avoid excessive cost. This necessitates switching between two different time

stepping schemes. The goal of this chapter is to find a good way to switch. Examining

efficient ways to solve the resulting implicit systems will be future work.

This approach is different from using IMEX (implicit - explicit) Runge-Kutta schemes

as, e.g., described by Ascher et al. [12]. In such a scheme, an equation of the form

ut + f (u) + g(u) = 0 is solved and an explicit scheme is used for the operator f and

an implicit scheme is used for the operator g. One common instance is the solution of

advection-diffusion equations, for which one often treats the diffusion term implicitly

and the advection term explicitly. In the scheme described in this chapter we solve an

equation of the form ut + f (u) = 0 and treat f explicitly in one part of the grid and

implicitly in another part of the grid.

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

dimension. We first present our explicit scheme, the MUSCL scheme. Then, we discuss

several ways of switching between the explicit and implicit scheme and provide theoretical

results about their monotonicity and mass conservation properties. Next, we examine

several implicit schemes that might be suitable for our mixed time stepping scheme for

their accuracy and stability properties.

In Section 1.3, we focus on the two-dimensional extension of the algorithm developed

in one dimension. We present the explicit scheme used in two dimensions, describe how

we switch between the explicit and implicit scheme, and give details for the implicit

scheme. In Section 1.4, we present numerical results for one of the two potential can-

didates identified in Section 1.2, the trapezoidal rule. We conclude this chapter with

thoughts about future work in two dimensions and a discussion of the extension to three

dimensions.

1.2 Model problem in one dimension

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

st + usx = 0, u > 0 constant, (1.1)

with CFL number


ut
= . (1.2)
x

This section provides the theoretical part of the scheme development. Some numerical

results in one dimension are shown to support the presented theory.

1.2.1 Choice of explicit scheme: MUSCL scheme

As explicit scheme in our mixed explicit implicit method, we use the MUSCL scheme

(Monotonic Upwind Scheme for Conservation Laws). The MUSCL scheme was originally

9
introduced by van Leer [109] and extended by Colella [43]. It has been used in many

scientific codes.

Our main reason for using the MUSCL scheme, besides it being a good scheme, is the

following: The mixed scheme developed for linear advection equation in this chapter will

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
sn+1
i = sni si+1/2 si1/2 .

n+1/2
It uses time and space centered edge states si+1/2 . To construct the edge states, we

first reconstruct estimated slopes snx,i x s(xi , tn ). This is described below. Then we
n+1/2,L n+1/2,R
estimate left and right states si+1/2 and si+1/2 of edge i + 1/2 at time tn+1/2 , see

Figure 1.1, based on Taylor expansion:

n+1/2,L x n t n
si+1/2 = sni + s + s ,
2 x,i 2 t,i
n+1/2,R x n t n
si+1/2 = sni+1 sx,i+1 + s .
2 2 t,i+1

n+1
sn+1
i1 sn+1
i sn+1
i+1
t
n+1/2,L n+1/2,L n+1/2,L
si1/2 si+1/2 si+3/2
n+1/2,R n+1/2,R n+1/2,R
si3/2 si1/2 si+1/2
tn
sni1 sni sni+1

Figure 1.1: MUSCL scheme in one dimension.

10
Here, snt,i t s(xi , tn ). We replace the unknown time derivative st by the space derivative

sx using the differential equation: st = usx . This results in

n+1/2,L x n t x
si+1/2 = sni + s u snx,i = sni + (1 )snx,i , (1.3a)
2 x,i 2 2
n+1/2,R x n t x
si+1/2 = sni+1 sx,i+1 u snx,i+1 = sni+1 (1 + )snx,i+1 . (1.3b)
2 2 2

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

MUSCL scheme has the form

 
n+1/2,L n+1/2,L
sn+1
i = sni si+1/2 si1/2 . (1.4)

Based on its construction, the MUSCL scheme is second-order accurate for unlimited

slopes.

We calculate unlimited slopes using a central difference quotient. For limiting we

can choose any of the classical one-dimensional limiters [82, 104] as the MUSCL scheme

is used on the equidistant part of the grid. Typically, we use the monotonized central

difference (MC) limiter [109]. We note that in the case of piecewise constant data, i.e.,
n+1/2,L
without slope reconstruction, si+1/2 = sni . In this case, the MUSCL scheme coincides

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

1.2.2 Introduction of model problem in one dimension

To study the small cell problem, we consider the model problem shown in Figure 1.2:

We assume an equidistant grid of width x except for cell 0, which has length x,

(0, 1]. The factor denotes the volume fraction (compared to a regular cell).

Using a conservative update formula, the update on the small cell takes the form

t h i
sn+1
0 = sn0 F1/2 F1/2 .
x

11
x x x x x
tn+1

tn
-2 -1 0 1 2

Figure 1.2: 1d model problem: Equidistant grid with one small cell of length x labeled
as cell 0.

Many standard finite volume schemes, such as the upwind scheme and MUSCL with

unlimited slope reconstruction, require

ut
0< <1
x

for stability. Therefore, we would need to choose t based on the size of the small cell.

Instead, we like to choose t based on x, i.e., such that

ut
= < 1.
x

In that case, the value on the small cell may blow up for small, provided fluxes are

computed by a standard explicit finite volume scheme. The idea of the h-box method is

to construct special fluxes such that F1/2 F1/2 = O() to avoid this.

Our approach to overcome the small cell problem is to treat the small cell implicitly.

On normal-sized Cartesian cells, we use a standard explicit scheme. As a result, there is

a transition zone on both sides of the small cell.

1.2.3 Slope reconstruction on non-uniform grid

For unlimited slope reconstruction, we use second order central slopes given by snx,i =

(sni+1 sni1 )/(2x) wherever possible. But this is inappropriate at cells 1, 0, and 1.

12
Instead we use a least squares slope reconstruction. We define


xi+1 xi si+1 si
r= sx,i
xi1 xi si1 si

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

(xi+1 xi )2 (xi xi1 )2


sx,i = D + s i + D si ,
(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
x,i = minmod (D si , D+ si ) ,

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



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







minmod(a, b) = b if |b| < |a| and ab > 0, (1.5)






0
if ab 6 0.

1.2.4 Switching between explicit and implicit scheme

For a mixed explicit implicit scheme, we need to switch from the explicit scheme to

the implicit one and back. Some important criteria for this switch are

1. to ensure conservation of mass,

13
tn+1 updated by
explicit
scheme
tn
-3 -2 -1 0 1 2 3

Figure 1.3: Explicit cells have been updated (empty circles), the neighborhood of the
small cell has not yet been done.

2. to guarantee monotonicity properties,

3. to minimize the loss of accuracy when switching between the explicit and implicit

scheme,

4. to keep the number of cells treated implicitly as small as possible in order to keep

the cost small.

We will consider the third point in more detail in Section 1.2.5, where we will discuss

suitable implicit schemes to use. For now, we focus on the other three criteria.

For the discussion in this subsection we will focus on using implicit Euler as the

implicit scheme. This scheme is unconditionally SSP (strong stability preserving) [59,

Lemma 6.1]. There does not exist a second-order scheme with this property [80, 102].

Therefore, if a specific way of switching violates monotonicity properties for implicit

Euler, it probably will also cause problems when combined with a higher-order implicit

scheme. For the explicit scheme, we will use the MUSCL scheme or explicit Euler time

stepping.

1.2.4.1 Two different approaches

We first update the explicit cells and then update the implicitly treated cells. We

consider two different approaches, which we call cell bounding and flux bounding. We

will show that a mixed scheme using flux bounding has better stability and monotonicity

properties than a mixed scheme using cell bounding.

14
tn+1 impl. scheme
influence of
expl. on impl.
tn
scheme
-3 -2 -1 0 1 2 3
n+1 n+1
(a) Cell bounding: values s2 and s2 are input for implicit scheme.

tn+1 impl. scheme


influence of
expl. on impl.
tn
scheme
-3 -2 -1 0 1 2 3
(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

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

sn+1
2 = sn2 (sn2 sn1 ) .

We want to use implicit Euler on cells 1, 0, and 1 given by

 
sn+1 n n+1 n+1
1 = s1 s1 s2 ,
 n+1 
sn+1
0 = sn0 s0 sn+1
1 ,

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

(Note that the volume of the small cell is given by x.) We know sn+1
2 from applying

the explicit scheme. Therefore, using sn+1 n+1


2 , we can solve for s1 , from which we get

sn+1
0 , which then is used to compute sn+1
1 .

This scheme however is not conservative. When updating cell 2 using the explicit

scheme, we assumed that the flux usn2 is leaving cell 2. But when we updated cell 1

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
compute sn+1 n+1 n+1
1 using the implicit scheme, adjust s2 resulting in s2 , i.e,

sn+1 n n n 
2 = s2 s2 s3 , (1.6a)
 
sn+1 n n+1 n+1
1 = s1 s1 s2 , (1.6b)

sn+1 n+1 n n+1


2 = s2 + s2 s2 . (1.6c)

2. Fix implicit cell 1: Compute sn+1


2 using the explicit scheme, compute preliminary

state sn+1 n+1 n+1


1 using the implicit scheme, adjust s1 resulting in s1 , i.e.,

sn+1 n n n 
2 = s2 s2 s3 , (1.7a)
 
sn+1 n n+1 n+1
1 = s1 s1 s2 , (1.7b)

sn+1 n+1 n n+1


1 = s1 + s2 s2 . (1.7c)

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

We will show that cell bounding with either of these two options might destroy

monotonicity. We will start with option 2.

Lemma 1.1. The scheme (1.7) can create overshoot and is not monotonicity preserving.

Proof. Suppose sni = 0 for i 6 3 and sni = 1 for i > 2. A short computation shows

3
sn+1
1 = 1 + > 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


i = 1 for i > 3.

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.)


 i
51
Lemma 1.2. The scheme (1.6) is not monotonicity preserving or TVD for 2 ,1 .

17
0 1

-3 -2 -1 0 1 2 3
(a) given data at tn

0 1

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

Figure 1.5: Data at tn and computed solution for explicit Euler and implicit Euler time
stepping and fixing explicit cells -2 and 2 for = 0.9 and = 1. (Even though we use
= 1 for simplicity we still apply the mixed explicit implicit scheme (1.6).)

Proof. Consider again sni = 0 for i 6 3 and sni = 1 for i > 2. We show that the
 i
51
solution at time tn+1 is not monotone for 2 ,1 . The behavior is illustrated in

Figure 1.5. Simple calculations show

1 + 2
sn+1
2 = 1 +
2
and sn+1
1 = .
1+

Therefore,

sn+1 n+1
2 6 s1 2 + 1 6 0.

5+1 51
This is true for > 2 and 6 2 0.62.

1.2.4.3 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

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

sn+1
2 = sn2 (sn2 sn1 ) .

18
Therefore, the fluxes F3/2 = usn2 and F3/2 = usn1 are already determined from the

explicit scheme. We want to use the implicit Euler scheme on the small cell 0. This

implies the following formulae for cells 1, 0, and 1:

 
sn+1 n n+1 n
1 = s1 s1 s2 , (1.8a)
 n+1 
sn+1
0 = sn
0 s sn+1
1 , (1.8b)
0
 
sn+1
1 = sn1 sn1 sn+1
0 . (1.8c)

Note that both cells 1 and 1 are transition cells with one flux computed explicitly and

the other one implicitly. We refer to these cells as irrflow cells: they are full Cartesian

(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.

Definition 1.1 (Monotone Scheme). A differentiable scheme of the form sn+1


j = H(sn ; j)

is said to be monotone if
H n
(s ; j) > 0, i, j, sn .
sni

Lemma 1.3. Consider explicit Euler time stepping coupled to implicit Euler time step-

ping through flux bounding as described in (1.8). The resulting scheme is monotone for

the linear advection equation (1.1) under the condition 0 6 6 1.

Proof. The explicit part of the scheme is given by

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



i

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

19
for the implicitly treated cells can be rewritten as

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

1 1 1 n n
 
sn+1 = s n
+
sn+1 = sn +
s + s ,
0 0
1+ 1+ 1
1+ 0
1+

1 + 1 1 + 2

sn+1
1 = (1 ) sn1 + s0n+1 .

Therefore, all of sn+1 n+1


1 , s0 , and sn+1
1 can be written as convex combinations of data at

tn . This concludes the proof.

This result is good start. For combining the MUSCL scheme with implicit Euler,

however, we cannot expect to get a monotone scheme as monotone schemes are known

to be at most first-order accurate [84, Ch. 15]. One desirable property for the mixed,

hopefully second-order scheme is to be TVD (total variation diminishing). TVD schemes

are a subclass of monotone schemes and TVD schemes are monotonicity preserving: for

monotone data {sni }, e.g., sni 6 sn+1


i , the solution {sn+1
i } is monotone in the same sense.

This implies that around an isolated discontinuity, which has monotone data, spurious

oscillations cannot occur. (For more detailed information see Toro [106, Ch. 13] and

LeVeque [84, Ch. 15].)

Definition 1.2 (TVD scheme). The scheme sn+1


j = H(sn ; j) is said to be TVD if

T V (sn+1 ) 6 T V (sn )

for all grid functions sn , where


X
T V (s) = |si si1 |.
i=

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

20
of the form

sn+1 = sni Ci1/2


n
sni sni1 + Di+1/2
n
sni+1 sni
 
i (1.9)

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

Using Hartens theorem, see [63, 82, 106], it is straightforward to show the following

lemma.

Lemma 1.4. The MUSCL scheme with minmod limiter is TVD for the linear advection

equation (1.1) on a uniform grid under the time step constraint 0 6 6 1.

Proof. The scheme is given by

x x
 
sn+1
i = sni sni + (1 )snx,i sni1 (1 )snx,i1 .
2 2

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

n
sni + (1 )snx,i x n n x
2 si1 (1 )sx,i1 2
Ci1/2 = ,
sni sni1
snx,i snx,i1
!
x x
= 1+ (1 ) n (1 ) .
2 si sni1 2 sni sni1

For slopes limited by the minmod limiter, there holds

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

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

We now consider the mixed scheme using MUSCL as explicit scheme and implicit

Euler without slope reconstruction as implicit scheme, applied to our model problem,

21
i.e.,

..
.
x x
 
sn+1 n n n
3 = s3 s3 + (1 )sx,3 sn4 (1 )snx,4 , (MUSCL)
2 2
x
 
sn+1
2 = sn2 sn2 sn3 (1 )snx,3 ,
2
h i
sn+1 n n+1 n
1 = s1 s1 s2 ,
h n+1 i
sn+1
0 = sn0 s0 sn+1
1 ,

h i
sn+1
1 = sn1 sn1 sn+1
0 ,

x
 
sn+1
2 = sn2 sn2 + (1
,)snx,2 sn1
2
n x n x
 
sn+1
3
n n
= s3 s3 + (1 )sx,3 n
s2 (1 )sx,2 , (MUSCL)
2 2
..
. (1.10)

(Note that we dropped slopes for fluxes F3/2 and F3/2 .) We cannot directly use Hartens

theorem to show that this scheme is TVD, but we can reuse the idea of its proof.

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

sn+1 = sni Ci1/2


n
sni sni1

i

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

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

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

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

= |sni+1 sni | Ci+1/2


n
|sni+1 sni | + Ci1/2
n
|sni sni1 |.

Neglecting the behavior at , this implies

|sn+1 n+1
X X
i+1 si |6 |sni+1 sni | C5/2
n
|sn2 sn3 |
i63 i63

and

|sn+1 n+1
X X
i+1 si |6 |sni+1 sni | + C3/2
n
|sn2 sn1 |.
i>2 i>2

Part 2: Implicit part of the scheme

For the implicit part we use the convexity of the implicit Euler scheme to estimate

differences at time tn+1 in terms of differences at time tn .

We start with estimating |sn+1 n+1


1 s2 |. Using the appropriate formulae there holds

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

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

This implies
1
|sn+1 n+1
1 s2 | 6 |sn sn2 | + C5/2
n
|sn2 sn3 |.
1 + 1

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

1
|sn+1 n+1
1 s2 | 6 |sn sn2 | + C5/2
n
|sn2 sn3 |,
1 + 1
1 1
|sn+1
0 sn+1
1 | 6 |sn sn1 | +
0
|sn sn2 |,
1 + 1
1+ 1+

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

|sn0 sn1 |
1+


+ (1 )
|sn sn2 |,
1+

1 + 1

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


+
|sn sn1 | +
|sn sn2 |.
1+ 0
1+

1 + 1

Part 3: Mixing explicit and implicit part

Our goal is to show

|sn+1 n+1
X X
i+1 si |6 |sni+1 sni |.
i i

Splitting up the sum

|sn+1 n+1
|sn+1 n+1
| + |sn+1 n+1 n+1
sn+1
X X
i+1 si |= i+1 si 1 s2 | + |s0 1 |
i i63

+ |sn+1 sn+1 | + |sn+1 sn+1 |sn+1 n+1


X
1 0 2 1 |+ i+1 si |
i>2

and using the result from Part 1 we get

|sn+1 n+1
X X X
i+1 si |6 |sni+1 sni | C5/2
n
|sn2 sn3 | + |sni+1 sni | + C3/2
n
|sn2 sn1 |
i i63 i>2

+ |sn+1 n+1 n+1


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

Using the estimates from Part 2 and sorting the sum

|sn+1 n+1 n+1


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

24
into its single terms results in

|sn2 sn3 | : n
C5/2 ,

1 1
|sn1 sn2 | : +
+ (1 )
+
= 1,
1+ 1+
1+ 1+
1+ 1+
1+

1
|sn0 sn1 | :
+ (1 )

+

= 1,
1+ 1+ 1+

|sn1 sn0 | : (1 ) + = 1,

|sn2 sn1 | : n
1 C3/2 .

Therefore,

|sn+1 n+1 n+1


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

Plugging this result into equation (1.11) gives

|sn+1 n+1
X X
i+1 si |6 |sni+1 sni |.
i i

This completes the proof.

1.2.4.4 Summary: cell bounding vs. flux bounding

We have examined both the possibility of using cell bounding and of using flux

bounding. For cell bounding, we observe oscillations or overshoot that are caused by

the conservation fix. For flux bounding, we have shown a TVD result for using MUSCL

with implicit Euler (with piecewise constant data). Therefore, we will use flux bounding

for the remainder of this work.

25
1.2.5 Choice of implicit scheme

In our considerations so far, we have used implicit Euler as implicit time stepping

scheme. This scheme has very good stability properties, in particular it is unconditionally

SSP, but it is only first-order accurate. Our goal, however, is to develop a second-order

mixed explicit implicit scheme. We are looking for a second-order scheme with good

stability properties that matches well with the MUSCL scheme.

1.2.5.1 SSP schemes

It is popular to use specific TVD/SSP Runge-Kutta schemes [58, 59, 100, 101] for

time stepping as these schemes possess guaranteed stability properties. Unfortunately,

there is no second-order implicit scheme that is unconditionally SSP [80, 102]. In fact,

there is no second-order scheme that is close to that.

Denote by 0 the maximum step size for which the explicit Euler scheme is strongly

stable for a given spatial discretization. By c we denote the largest step size, such that

a second-order implicit time stepping scheme is strongly stable for 0 < t 6 c 0 . The

optimal one-stage method (optimal with respect to c) is the midpoint rule with c = 2

[53]. The factor c scales with the number of stages: for a scheme with s stages, it is

c = 2s. For more information see [52, 53, 80].

Therefore, to guarantee SSP property of the implicit scheme, when using, e.g., a two-

stage method, we could only increase the allowed time step by a factor of 4 compared to

the Euler time step constraint. Cut cells however can be arbitrarily small and we want

to choose the time step based on the size of regular Cartesian cells. Therefore, we cannot

hope to find a second-order scheme that is strongly stable on cut cells for our approach.

1.2.5.2 Candidates for the implicit scheme

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

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

26
tn+1

tn
M M M I I M M M

Figure 1.6: Sketch of scheme: mix MUSCL flux (M) and flux from implicit scheme (I).

assess the accuracy and stability properties of the resulting mixed scheme.

Test 1: (Accuracy) We apply the mixed scheme sketched in Figure 1.6 to a linear

test function and take one time step. The mixed scheme uses MUSCL as explicit

scheme and the respective implicit scheme with slope reconstruction as implicit

scheme. The connection is done by flux bounding. For simplicity, we replace all

slopes in our theoretical considerations by the true slope of the given linear test

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
0 , which depends on (, ),

for 0.

We note that the main purpose of Test 1 is not to assess the accuracy of the implicit

scheme but its compatibility with MUSCL. On the irrflow cells 1 and 1, which use fluxes

from both the explicit and implicit scheme, errors occur if the fluxes do not match. BDF2

(backward differentiation formula), for example, evaluates the flux at time tn+1 , whereas

MUSCL evaluates the flux at time tn+1/2 . We observe an O(x) error on cells 1 and 1

in Test 1. The same holds true for combining implicit Euler time stepping with MUSCL;

i.e., the mixed scheme consisting of MUSCL and implicit Euler with unlimited slopes is

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

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

For the linear advection equation, it is similar to the implicit midpoint rule

1
u = un + tf (u ),
2
un+1 = un + tf (u ). (1.13)

We will only examine the trapezoidal rule in the following.

For Test 2, we find


2
sn+1
0 = 2 .
+1

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

overshoot.

To avoid this, we will use an FCT (flux-corrected transport) approach [30, 115] and

will combine the trapezoidal rule with implicit Euler. Based on Theorem 1.1 the resulting

scheme should be TVD, provided the switching between the two implicit schemes is done

properly. This has not yet been implemented.

28
TR-BDF2

TR-BDF2 (TR stands for Trapezoidal) is L-stable and second-order accurate [83,

p. 175]. It is given by

t
u = un + [f (un ) + f (u )] ,
4
t
un+1 = un + [f (un ) + f (u ) + f (un+1 )] . (1.14)
3

For Test 2, the maximum overshoot for sn+1


0 is roughly 1.21 for 0. However, as

the first stage is computed with the trapezoidal rule, s0 could have values up to 2. As

it is harder to use an FCT approach at the intermediate stage and this scheme is more

expensive than the trapezoidal rule, we eliminate TR-BDF2 from the list of potential

schemes.

A specific SDIRK scheme

Our final candidate is the SDIRK scheme

u = un + tf (u ),

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


with the choice = (2 2)/2. The two values = (2 2)/2 are the only variable

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

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

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

In Test 2, we found that s0 , which is computed with an implicit Euler step, has values

between 0 and 1. For sn+1


0 , values can increase up to approximately 1.21 for 0.

29
Table 1.1: One step error for mixed schemes
Implicit method N L1 order L order

Implicit Euler 80 1.94e-04 9.60e-03


160 4.70e-05 2.05 5.14e-03 0.90
320 1.16e-05 2.02 2.65e-03 0.95
Trapezoidal 80 2.39e-05 2.28e-03
160 2.95e-06 3.02 5.52e-04 2.04
320 3.65e-07 3.01 1.36e-04 2.02
SDIRK 80 2.59e-05 9.48e-04
160 3.18e-06 3.02 2.31e-04 2.04
320 3.94e-07 3.01 5.70e-05 2.02

1.2.5.3 A numerical test assessing accuracy

We now test the mixed scheme sketched in Figure 1.6 numerically. For the implicit

part we use the trapezoidal rule, the SDIRK scheme (1.15) or implicit Euler, all combined

with unlimited slope reconstruction. As the implicit time stepping scheme is only used

for two fluxes, F1/2 and F1/2 , we expect the behavior of the MUSCL scheme, which is

used on most of the grid, to dominate the L1 error.

We discretize the interval [0, 1 + x] to have N equal cells of length x and one
 
small cell in the middle of length x, = 104 . We use initial data sin 2x
1+x ,

periodic boundary conditions, and solve st + 2sx = 0 with CFL number = 0.8.

Table 1.1 shows the result for taking one time step. (We use the notation in [83]. By

one step error we refer to the error caused by taking one time step, i.e., s(t1 ) s1 ; the

one step error for the MUSCL scheme is of third order on a regular grid.) We observe

for the mixed scheme using

implicit Euler: the one step error measured in the L norm is of the order O(x);

measured in the L1 norm, it is of second order.

trapezoidal rule or SDIRK scheme: the one step error measured in the L norm is

of the order O(x2 ). Due to the third-order one step error of the MUSCL scheme,

30
Table 1.2: Result at time T for mixed schemes
Implicit method N L1 order L order

Implicit Euler 80 1.22e-03 1.38e-02


160 3.16e-04 1.95 6.66e-03 1.05
320 8.21e-05 1.95 3.30e-03 1.01
Trapezoidal 80 2.10e-04 1.58e-03
160 5.68e-05 1.89 3.51e-04 2.17
320 1.48e-05 1.94 7.41e-05 2.24
SDIRK 80 2.04e-04 1.10e-03
160 5.59e-05 1.87 2.82e-04 1.96
320 1.47e-05 1.93 7.20e-05 1.97

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

To better understand this behavior, we isolate the two error sources: the irregularity

of the small cell and the switch in the scheme. Instead of switching on cells 1 and 1, we

switch away from the small cell so that overall the implicit scheme is used on one quarter

of the grid cells and MUSCL is used on the remaining three quarters. The results for

taking one time step are

for implicit Euler: the switch in the scheme causes an O(x) error. This is due to

implicit Euler evaluating the flux at time tn+1 whereas MUSCL evaluates at time

tn+1/2 . The irregularity of the small cell causes an O(x2 ) error.

for trapezoidal rule and SDIRK scheme: the errors caused by the switch and by

the irregularity of the small cell are both second order.

These results imply that for both our second-order implicit candidates, we make a

second-order one step error in the switch. If this error accumulated, this could result in

an overall first-order scheme. We therefore test running until time T , where T 0.5 is

chosen such that the sinusoidal curve is back to its original position (using the true

scheme with switching on cells 1 and 1). The result for this test is shown in Table

1.2. Apparently, the one step error caused by the transition between the schemes does

31
not accumulate. This behavior of the one step error accumulating in an unusual way is

an often observed phenomenon when working with non-uniform/cut cell grids, see, e.g.,

Wendroff & White [113].

1.2.5.4 Summary

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

with = (2 2)/2 are good candidates for the implicit scheme. In the theoretical

discontinuity test, the SDIRK scheme causes less overshoot than the trapezoidal rule,

but does not completely avoid it. The SDIRK scheme uses two stages and is therefore

twice as expensive as applying the trapezoidal rule. We will use the trapezoidal rule as

the implicit scheme in two dimensions.

1.3 Two-dimensional generalization

In this section we focus on extending the mixed explicit implicit approach presented

in Section 1.2 to two dimensions. We solve the linear advection equation

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

Here, s(x, t) denotes a cell centered, advected scalar field and u(x) = (u, v) denotes

a divergence-free velocity field that is constant in time. Furthermore, we use no flow

boundary conditions on the embedded boundary imposed by

u n = 0 on . (1.17)

Therefore, only an initial condition s(x, 0) = s0 (x) (and a given velocity field) is required

for a well-posed problem. We assume that the velocities are given at the edge midpoints,

i.e., the velocities are given as ui+1/2,j and vi,j+1/2 .

As we said, small cut cells can cause stability problems. We explore solving this

32
small cell stability issue using mixed explicit implicit schemes that are implicit only near

the boundary. This will result in a layer of transition cells next to cut cells, which are

updated with both explicitly and implicitly computed fluxes.

In the following, we first present the MUSCL scheme in two dimensions. Then, we

describe how we generalize the switch between the explicit and implicit scheme from

one to two dimensions. We conclude this section by giving formulae for computing the

implicit fluxes in two dimensions using slope reconstruction.

1.3.1 The MUSCL scheme in two dimensions on a Cartesian grid

As in one dimension, we use the MUSCL scheme as an explicit scheme. This version

of the scheme mostly coincides with the one used by Almgren et al. [7]. The main idea

is the same as in one dimension, which was described in Section 1.2.1. Taylor expansion

in time and space to determine the left and right edge states gives

n+1/2,L x n t n
si+1/2,j = snij + sx,ij + s ,
2 2 t,ij
n+1/2,R x n t n
si+1/2,j = sni+1,j sx,i+1,j + s .
2 2 t,i+1,j

We again use the equation st = usx vsy to replace the time derivative st , but we pay

particular attention to where we evaluate the terms. We use

n+1/2,L x n t  
si+1/2,j = snij + sx,ij ui+1/2,j snx,ij + (vs
[ y )ij ,
2 2
n+1/2,R x t  
si+1/2,j = sni+1,j snx,i+1,j ui+1/2,j snx,i+1,j + (vs
[ y )i+1,j .
2 2

(The b symbol is used for easy recognizability of the term (vsy )ij , which will be evaluated
n+1/2,L
in a specific manner.) Let us focus on si+1/2,j given by

x t n t [
 
n+1/2,L
si+1/2,j = snij + ui+1/2,j sx,ij (vsy )ij . (1.18)
2 2 2

33
We evaluate snx,ij , the normal derivative with respect to edge (i + 1/2, j), by slope recon-

struction. 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 (vsy )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

y t n
 
n+1/2,B
si,j+1/2 = snij + vi,j+1/2 sy,ij , (1.19a)
2 2
y t n
 
n+1/2,T
si,j+1/2 = sni,j+1 + vi,j+1/2 sy,i,j+1 . (1.19b)
2 2

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

get
n+1/2,B
si,j+1/2 , if vi,j+1/2 > 0,







n+1/2 n+1/2,T
si,j+1/2 = si,j+1/2 , if vi,j+1/2 < 0, (1.20)




 n+1/2,B n+1/2,T

1 s


2 i,j+1/2+ s i,j+1/2 , if vi,j+1/2 = 0.

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

   
[ n+1/2 n+1/2 n
(vsy )ij = si,j+1/2 vi,j+1/2 si,j1/2 vi,j1/2 sij vi,j+1/2 vi,j1/2 . (1.21)

n+1/2,L
This concludes our description of the evaluation of si+1/2,j . We now use upwinding
n+1/2,L
analogous to (1.20), employing ui+1/2,j instead of vi,j+1/2 , to choose between si+1/2,j
n+1/2,R n+1/2 n+1/2
and si+1/2,j with the result being si+1/2,j . Analogously, we compute si,j+1/2 . Then we

34
update our solution from snij to sn+1
ij using the conservative update formula

t h n+1/2 n+1/2
i
sn+1
ij = snij ui+1/2,j si+1/2,j ui1/2,j si1/2,j
x
t h n+1/2 n+1/2
i
vi,j+1/2 si,j+1/2 vi,j1/2 si,j1/2 . (1.22)
y

1.3.2 Switching between the explicit and implicit scheme

Based on the results in one dimension, we use flux bounding in two dimensions to

connect the explicit MUSCL scheme with the implicit scheme. To minimize work, we

want to use the implicit time stepping for as few cells as possible. Therefore, as in one

dimension, we only treat cut cells in a fully implicit manner. By irrflow cells, we denote

the cells on which we switch the scheme. These are flow cells that are edge neighbors of

cut cells. They correspond to cells -1 and 1 from our one-dimensional considerations.

We use explicit fluxes on edges between irrflow cells and flow cells, and on edges between

irrflow cells. Implicit fluxes are used on edges between irrflow and cut cells, and on edges

between cut cells. This is illustrated in Figure 1.7.

A high level version of the mixed explicit implicit scheme is given in the following.

Algorithm 1.1. Mixed explicit implicit scheme in two dimensions

Given sn ,

1. compute explicit fluxes using the MUSCL scheme (with the adjustments from Sec-

tion 1.3.3),

2. update all flow cells to sn+1


ij using explicit fluxes and the conservative update for-

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


ij using implicit fluxes and a mixture of

explicit and implicit fluxes, respectively. For details see Section 1.3.4.

35
I I

I I

I I

I I

I I

I I

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

36
Figure 1.8: For a Cartesian cell, reconstruction to edge midpoints is a one-dimensional
operation. This is not the case for cut cells.

We note that the main ingredient that enters from the explicit part into the implicit

part are the fluxes. However, values at tn+1 on explicitly treated cells are needed for

slope reconstruction at tn+1 on irrflow cells, if slopes are used for the implicit scheme.

1.3.3 Adjustments to the MUSCL scheme

The MUSCL scheme is only used to compute fluxes between any two Cartesian cells

both flow and irrflow. However, the computation of the MUSCL flux between two irrflow

cells could involve a cut cell in the evaluation of the transverse derivative term. (One
[
example is the computation of the transverse derivative term (usx )ij on the Cartesian

cell in Figure 1.8 assuming u < 0.) Therefore, we need to extend the computation of
n+1/2,L/R n+1/2,B/T
si+1/2,j and si,j+1/2 to cut cells.

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

x t n
 
n+1/2,R
si1/2,j = snij + ui1/2,j sx,ij .
2 2

For a cut cell, the edge midpoint and the cell centroid are not aligned, i.e., they do

not have the same y component. This is shown in Figure 1.8. Denoting by (xij , yij ) the

coordinates of the centroid of cut cell (i, j) and by (xi1/2,j , yi1/2,j ) the coordinates of

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

n+1/2,R
    t n
si1/2,j = snij + xi1/2,j xij snx,ij + yi1/2,j yij sny,ij ui1/2,j s .
2 x,ij

Note that this formula reduces to the equation above in the case of a regular cell. The

slopes snx,ij and sny,ij are both computed by a least squares approach and limited using

the LP limiter, as described in Chapter 3.

1.3.4 Computation of implicit fluxes

As implicit second-order scheme we use the trapezoidal rule with slope reconstruction.

For slope reconstruction on cut cells and irrflow cells, see Chapter 3. We also test implicit

Euler with piecewise constant data.

Using implicit Euler time stepping without slope reconstruction, sn+1


ij on a cut cell

is updated by (compare the section Notation for definition of ij and i+1/2,j )

t

sn+1 = snij u y sn+1 n+1
i+1/2,j ui1/2,j i1/2,j y si1/2,j
ij
ij xy i+1/2,j i+1/2,j

+ vi,j+1/2 i,j+1/2 x sn+1
i,j+1/2 vi,j1/2 i,j1/2 x sn+1
i,j1/2 .

Here,

sn+1 if ui+1/2,j > 0,


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

if ui+1/2,j < 0,

i+1,j

and sn+1 n+1


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

face = 0.)

On irrflow cells, we use both explicit and implicit fluxes. Assume that cell (i, j) is an

irrflow cell, cells (i 1, j) and (i, j 1) are cut cells, and that cells (i + 1, j) and (i, j + 1)

are either flow or irrflow cells. Then, for mixing implicit Euler with the MUSCL scheme,

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

t

n+1/2
sn+1
ij = snij ui+1/2,j y si+1/2,j ui1/2,j y sn+1
i1/2,j
xy

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

n+1/2 n+1/2
with si+1/2,j and si,j+1/2 representing the MUSCL fluxes described in Section 1.3.1 and

sn+1 n+1
i1/2,j and si,j1/2 being the implicit Euler fluxes described above.

This can be formulated as a linear system. The variables are the values on the cut

cells and the irrflow cells. As the update on each irrflow cell uses at least one implicit

flux, the new value on an irrflow cell needs to be integrated in this system. Therefore,

the size of the system is N N with N being roughly twice the number of cut cells.

The explicit fluxes from the MUSCL scheme, used in the update of irrflow cells, enter

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

t

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

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


i1/2,j )

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


i,j+1/2 )

vi,j1/2 i,j1/2 x (sni,j1/2 + sn+1
i,j1/2 ) . (1.23)

Here,


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


sni+1/2,j =

sn

+ (xi+1/2,j xi+1,j )snx,i+1,j + (yi+1/2,j yi+1,j )sny,i+1,j if ui+1/2,j < 0,
i+1,j

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

39
(xij , yij ) denotes the centroid of cut cell (i, j), and sx,ij and sy,ij refer to the reconstructed

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
ij numerically

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 Numerical results

1.4.1 Implementation aspects

The software used for our tests in two (and three dimensions) is based on BoxLib

[50]. This is an open-source software library developed by the Center for Computational

Sciences and Engineering (CCSE) at Lawrence Berkeley National Laboratory (LBNL).

It contains all the functionality for massively parallel, block-structured adaptive mesh

40
refinement (AMR) applications. The user must provide the finite volume scheme used

for the simulation.

The package does not provide support for embedded boundaries. To generate cut

cell information we use patchCubes, a derivative of cubes, the mesh generation part of

Cart3D [1, 5, 6]. The input for patchCubes consists of the bounding box of the domain/a

computational patch and a surface triangulation of the embedded boundary. It then

computes all the geometry information needed for a second-order finite volume algorithm;

the location of the cut cells centroid and volume,

the location of each face centroid and the face length/area,

the location of the boundary edge midpoint and the length/area of the boundary

segment.

The combination of these two packages, BoxLib and patchCubes, forms the basis of our

software. This is illustrated in Figure 1.9.

BoxLib provides general functionality for high performance programming. The actual

time stepping algorithms for the Cartesian part of the grid were taken from existing

solvers of the CCSE group. We wrote most of the algorithms used for tests in this chapter

from scratch, partly following the structure of existing solvers used by the CCSE group.

Routines provided by BoxLib, like the setting of boundary conditions and the plotting

routines, needed to be adjusted to the presence of cut cells. During all these tasks and

the fusion of the two software packages we were actively supported by members of the

CCSE group. All code is written in Fortran 90.

For visualization of the numerical results we use AmrVis [2] and VisIt [111].

1.4.2 Numerical results in two dimensions

We now present numerical results in two dimensions. In all tests we compute the

true solution by either tracing back characteristics or by comparing to initial data. To

41
Initializations
..
.
Initialize Cartesian grid
Initialize cut cells:
do n=1, # levels
do k=1, #patches Input: Computational patch
call patchCubes Surface triangulation
end do Output: Cut cell information
.. end do
.
Time stepping patchCubes
..
.
AMR
If new grids
..
. Software based
on BoxLib

Figure 1.9: Sketch of the software setup used for our numerical tests.

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

1 X
L1 (e) = |eij | |ij |, (1.24)
|| i,j

L (e) = max|eij |, (1.25)


i,j

where |ij | denotes the area of cell (i, j). If the error on the cells close to the embedded

boundary converges with at least first order, we expect the L1 error to converge with

second order as the MUSCL scheme is a second-order scheme and the cells close to the

embedded boundary have a lower dimensionality. (For L1 this follows from a counting

argument. An analog theorem for L2 was proven by Gustafsson [60].) The L error will

most likely be dominated by the error on the cut cells.

To measure the error along the embedded boundary separately, we also introduce

42
boundary norms L1bdy and L
bdy . For these norms, we use the computed solution to

reconstruct slopes on all cut cells and use these slopes to evaluate the solution at the

boundary edge midpoint of the cut cell. Let k = 1, . . . , N denote a numeration of cut

cells and ek,bdy denote the error at the boundary edge midpoint of cut cell k. Then we

define

1 X
L1bdy (ebdy ) = |ek,bdy | |k |, (1.26)
| | k

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

Here, | | denotes the length of the embedded boundary and |k | the boundary segment

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

!
x y
t = min , .
maxij |uij | maxij |vij |

We use = 0.8 for all tests presented in this section to fulfill the time step restriction

for the MUSCL scheme. We choose x = y in our tests but this is not a requirement.

Finally we note that determining the exact accuracy of a cut cell scheme is non-

trivial. Cut cells do not allow for a smooth error expansion. As a result, convergence

plots usually do not correspond to a smooth line but to a zig-zag line instead.

1.4.2.1 Test 1: Advection parallel to the x axis

Our first test is advection parallel to the x axis. The setup is shown in Figure 1.10.

We cut the Cartesian grid parallel to the x axis, leading to (regular) cut cells at the

43
inflow outflow
b.c. b.c.

Figure 1.10: Setup for advection parallel to the x axis: cut cells (marked in rose) are
at the bottom of the grid. Light blue lines indicate implicit flux. The black thick line
indicates that there is no flux between cut cells and irrflow cells.

bottom of the grid. We choose u = 2 and v = 0, i.e., the velocity field is parallel to the

embedded boundary. The inflow is given by evaluating the flux on the low x edge based

on the true solution. We do not prescribe the outflow as it is determined by the finite

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 3.57e-04 4.83e-02 0.59


1282 4.12e-05 3.11 2.44e-02 0.99 0.19
2562 1.59e-05 1.38 1.23e-02 0.99 0.37
5122 6.78e-06 1.23 6.15e-03 1.00 0.74
7682 9.08e-07 4.96 4.10e-03 1.00 0.12
Trapezoidal 642 8.15e-05 1.12e-03 0.59
1282 1.92e-05 2.09 2.78e-04 2.02 0.19
2562 4.74e-06 2.02 7.01e-05 1.99 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 3.72e-02 6.62e-02 0.59


1282 1.59e-02 1.23 2.82e-02 1.23 0.19
2562 8.79e-03 0.85 1.56e-02 0.86 0.37
Trapezoidal 642 8.15e-05 1.12e-03 0.59
1282 1.92e-05 2.09 2.78e-04 2.02 0.19
2562 4.74e-06 2.02 7.01e-05 1.99 0.37

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

Table 1.3 shows the results for the domain norms for using MUSCL scheme with

implicit Euler and trapezoidal rule, respectively. For the trapezoidal rule, we observe

second-order convergence both for the L1 and the L error. For using MUSCL with

implicit Euler we observe linear convergence in the L norm and irregular behavior in

the L1 norm: convergence orders jump between 1.23 and 4.96. We expected second-order

convergence as there are N cut cells compared to roughly N 2 total cells; therefore the

second-order MUSCL scheme should dominate the L1 error.

To better understand the inconsistency between the numerical result and our theo-

retical considerations, we examine the formula for the L1 error for this test problem in

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

error on an irrflow or flow cell. (Note that the standard MUSCL scheme is used on

irrflow cells in this test.) Then


X X
L1 error = |eij |xy + |eij |xy /(1 ),

cut cell flow cell
irrflow cell
y C y
 
= |eij | + 1 |eFij |.
1 1

This implies that |eC


ij | is multiplied by y, which should improve the overall convergence

order from first order to second order. However, |eC


ij | is actually multiplied by y, i.e.,

the volume fraction also shows up in the formula. The volume fraction depends

on how the grid is cut by the embedded boundary, and varies randomly, see Table 1.3.

As doubles between grids N = 1282 and N = 2562 , and N = 2562 and N = 5122 ,

respectively, the factor y is overall annihilated leading to the first-order convergence

observed for these grids. This also explains the jump in convergence between grids

N = 5122 and N = 7682 . Therefore, on average, the L1 error for using MUSCL with

implicit Euler converges with second order; but the number of samples was not enough

to capture the behavior appropriately. Even in this very simple test problem, we have

the classical zig-zag behavior of the convergence plot, an often observed phenomenon

when using cut cells.

Finally, Table 1.4 shows the results for the boundary norms L1bdy and L
bdy . Here, we

observe roughly first order for implicit Euler. The mixed scheme using the trapezoidal

rule shows second-order convergence in all norms.

1.4.2.2 Test 2: Advection along a ramp

Next, we test advection along a ramp with angle 0 < < 90 . The test is illustrated

in Figure 1.11. We choose the velocity field (u, v)T = (2, 2 tan ) to be parallel to the

embedded boundary. Unlike our first test, there is interaction between the irrflow and

46
outflow b.c.

inflow outflow
b.c. b.c.

inflow b.c.

Figure 1.11: Setup for advection along a ramp: cut cells are marked in rose. Light blue
lines indicate implicit flux.

cut cells. Our test functions are one-dimensional quadratic functions with respect to a

line () that is perpendicular to the ramp and whose slope therefore depends on the

ramp angle . Since the MUSCL scheme has a third-order one step error, the error on

the domain should be negligible and the error at the boundary should dominate. We

advect until T = 0.1. For this test, we do not show the result for implicit Euler but focus

only on the trapezoidal rule.

Results for fully implicit scheme

We first test a fully implicit version, i.e., we use the trapezoidal rule on all cells. This

eliminates errors caused by the switch in the scheme. We use slopes of the exact solution

to also eliminate errors caused by the slope reconstruction. For taking only one time

step, i.e., for the one step error, we observe that

the error in the L1 norm is of order O(x3 ),

the errors in the L1bdy norm, the L norm, and the L 2


bdy norm are of order O(x ).

47
Table 1.5: Results for advection along a ramp, using trapezoidal rule with analytic slopes
everywhere.
Grid L1 error order L1bdy error order L
bdy error order

5o 322 1.28e-05 3.67e-05 1.70e-04


642 3.22e-06 1.99 1.36e-05 1.43 5.30e-05 1.68
1282 8.09e-07 2.00 4.95e-06 1.47 1.67e-05 1.66
2562 2.02e-07 2.00 1.80e-06 1.46 4.70e-06 1.83
20o 322 1.26e-05 - 6.18e-05 1.80e-04
642 3.15e-06 2.00 2.15e-05 1.52 5.47e-05 1.72
1282 7.89e-07 2.00 7.55e-06 1.51 1.60e-05 1.77
2562 1.97e-07 2.00 2.64e-06 1.52 5.07e-06 1.66
30o 322 1.24e-05 5.47e-05 1.56e-04
642 3.11e-06 1.99 1.83e-05 1.58 4.67e-05 1.74
1282 7.79e-07 2.00 6.26e-06 1.55 1.40e-05 1.74
2562 1.95e-07 2.00 2.15e-06 1.54 4.24e-06 1.72
40o 322 1.04e-05 3.18e-05 1.15e-04
642 2.60e-06 2.00 9.77e-06 1.70 3.39e-05 1.77
1282 6.52e-07 2.00 2.97e-06 1.72 9.72e-06 1.80
2562 1.63e-07 2.00 9.57e-07 1.64 2.76e-06 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 1.88e-05 5.56e-05 2.62e-04


642 4.02e-06 2.23 2.25e-05 1.30 8.62e-05 1.60
1282 9.17e-07 2.13 9.62e-06 1.23 3.02e-05 1.51
2562 2.18e-07 2.07 4.03e-06 1.25 9.11e-06 1.73
20o 322 1.87e-05 2.34 1.88e-04 1.38 4.22e-04 1.61
642 4.09e-06 2.20 7.43e-05 1.35 1.45e-04 1.54
1282 9.43e-07 2.12 2.93e-05 1.34 4.84e-05 1.59
2562 2.27e-07 2.05 1.22e-05 1.26 1.84e-05 1.39
30o 322 2.04e-05 2.68e-04 4.79e-04
642 4.49e-06 2.18 1.00e-04 1.42 1.64e-04 1.54
1282 1.04e-06 2.11 3.87e-05 1.37 5.73e-05 1.52
2562 2.50e-07 2.06 1.53e-05 1.33 2.09e-05 1.46
40o 322 1.95e-05 2.65e-04 4.39e-04
642 4.24e-06 2.21 9.61e-05 1.47 1.45e-04 1.59
1282 9.59e-07 2.14 3.47e-05 1.47 4.93e-05 1.57
2562 2.24e-07 2.09 1.27e-05 1.44 1.71e-05 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 un-

limited least squares slope reconstruction. On flow cells away from the boundary this

reduces to standard second-order central difference quotients. But for cut cells these

slopes are only a first-order approximation and could cause a loss of accuracy. The nu-

merical results show that the L1 error is very similar to using analytic slopes, both in

terms of convergence rates and absolute numbers. For the L1bdy and the L
bdy error, the

49
convergence rates drop by about 0.1 to 0.2 compared to using analytic slopes. Also, the

absolute error is significantly larger.

Results for mixed explicit scheme

Next, we test the scheme that we actually want to use: the mixed explicit implicit

scheme (compare Figure 1.11) with the trapezoidal rule as implicit scheme and unlimited

slope reconstruction. Numerical tests indicate that the one step error is of the order

O(x3 ) in the L1 norm and of the order O(x2 ) in all other norms. The results for time

T = 0.1 are shown in Table 1.7.

The results are overall similar to the results for using trapezoidal rule with unlimited

slope reconstruction everywhere. In particular we observe

for the L1 error: second-order convergence,

for the L1bdy error: convergence rates around 1.3 to 1.4,

for the L and L


bdy error: convergence rates around 1.4 to 1.6.

Comparing the L1 error for = 5o , we find that the results for using the mixed ex-

plicit implicit scheme are one order of magnitude better than for using the fully implicit

scheme. The MUSCL scheme seems to do particularly well for advection that is approx-

imately parallel to the coordinate axes. Overall, the L1 error using the mixed scheme is

somewhat smaller than the L1 error using trapezoidal time stepping with least squares

slope reconstruction everywhere. The results for the L1bdy and L


bdy error are pretty

comparable for both schemes.

This implies that the switch in the scheme does not lead to a significant loss of

accuracy along the boundary. There is some loss of accuracy on the irrflow cells though,

which is not reflected in the given tables. The maximum error, measured only over

irrflow cells, converges with second order for taking one time step and with only first

order for final time T = 0.1. But it is significantly smaller than the error on the cut

50
Table 1.7: Results for advection along a ramp, using the mixed explicit implicit scheme
with trapezoidal rule and unlimited slope reconstruction.
Grid L1 error order L1bdy error order L
bdy error order

5o 322 1.24e-06 5.03e-05 2.62e-04


642 2.60e-07 2.26 1.74e-05 1.53 8.20e-05 1.68
1282 6.03e-08 2.11 6.92e-06 1.34 2.74e-05 1.58
2562 1.62e-08 1.89 2.87e-06 1.27 7.91e-06 1.80
20o 322 3.32e-06 1.75e-04 4.10e-04
642 9.10e-07 1.87 7.06e-05 1.32 1.41e-04 1.54
1282 2.36e-07 1.94 2.87e-05 1.30 4.78e-05 1.56
2562 6.30e-08 1.91 1.24e-05 1.21 1.88e-05 1.35
30o 322 7.18e-06 2.69e-04 4.83e-04
642 1.83e-06 1.97 1.04e-04 1.36 1.71e-04 1.50
1282 4.75e-07 1.95 4.28e-05 1.29 6.22e-05 1.46
2562 1.24e-07 1.93 1.80e-05 1.25 2.40e-05 1.37
40o 322 1.07e-05 2.51e-04 4.36e-04
642 2.56e-06 2.07 9.36e-05 1.42 1.46e-04 1.58
1282 6.23e-07 2.04 3.53e-05 1.41 5.09e-05 1.52
2562 1.54e-07 2.01 1.38e-05 1.35 1.85e-05 1.46

cells and therefore does not influence the L error. Furthermore, it apparently does not

cause additional errors along the embedded boundary.

1.4.2.3 Test 3: Advection in the interior of a circle

Our last test uses a spatially varying velocity field given by (u, v)T = (2y, 2x)T .

Test domain is the interior of a circle with radius 1.0 as shown in Figure 1.7 and we use

initial conditions

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

We choose T = , at which time the solution is identical to its initial value. We use the

full explicit implicit scheme. As implicit scheme we use the trapezoidal rule. Unlimited

slopes are employed for both the explicit and implicit scheme. We run simulations for

16 different meshes with the width x varying between 0.003 and 0.010. The error is

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

Domain norm 2.09 2.22


Boundary norm 1.06 1.00
Cut cell norm 1.34
Irrflow cell norm 1.87

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


bdy norm, as well as

in the L norm measured only at the cut cell centroids and only at the irrflow centroids

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

Figure 1.12 shows the convergence in the four variants of the maximum norm. The

error plots show the zig-zag behavior, which is characteristic for cut cell methods.

The straight lines indicate the convergence rates computed by a least squares fit. The

corresponding rates are listed in Table 1.8. In this table, we also list the convergence

rates for the L1 and the L1bdy norm.

We observe the following:

both the L1 and L error measured over the whole domain converge with second

order; the former was expected, the latter implies that the maximum error is

probably caused by the peak of the Gaussian test function; Figure 1.12 shows that

for most grids, the L error is bigger than the maximum error measured over only

cut cells and irrflow cells; this confirms the suspicion;

the maximum error measured over only irrflow cells converges with close to second

order; i.e., we do not observe accumulation of the transition error in this test;

the error measured at the boundary edge midpoints converges only with first order

in both the L1bdy and the L


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

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

52
Domain
1
10 Boundary
Cut cell
Irrflow cell
Error

2
10

2
10
Mesh width

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

53
(a) time t = 0 (b) time t = T =

Figure 1.13: Results for advection in the interior of a circle using x = 0.0059. Both
pictures use the scale implied by the data at the initial time. The computational domain
is split in four equal patches.

difference in convergence is; one possibility is that unlike our previous tests a

curved boundary is used here.

Finally, in Figure 1.13 we show the results for x = 0.0059 (which corresponds to

1922 grid cells to discretize the bounding box) at its initial and its final time. The shape

of the Gaussian has been well preserved and we do not observe excessive smearing along

the boundary.

1.5 Conclusions and future work

In this chapter we have presented a new explicit implicit time stepping scheme for

solving the linear advection equation in two dimensions. The scheme uses a standard

explicit scheme, the MUSCL scheme, on Cartesian cells away from the embedded bound-

ary. On cut cells we use an implicit time stepping scheme, the trapezoidal rule. The

switch is done on the Cartesian cells next to the cut cells using flux bounding.

The numerical results are promising. The convergence rates along the embedded

boundary varied between 1.0 and 2.0, typically lying somewhere in the middle. Addi-

tional tests will be needed to explore the properties of the scheme further.

54
1.5.1 Future work in two dimensions

Some open issues in two dimensions that need to be examined more closely are:

Robustness of the scheme: In the discontinuity test in one dimension, the trape-

zoidal method caused overshoot for very small values of . We plan to develop an

FCT approach combining the trapezoidal method with implicit Euler time step-

ping to guarantee monotonicity. We would also like to examine the option of using

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 im-

plementation of the method.

Comparison to literature: It would be nice to directly compare to results from

existing methods in the literature, e.g., the h-box method or the flux redistribution

method.

1.5.2 Extension to three dimensions

During our scheme development one main design choice has been to ensure straight-

forward extension of the resulting algorithm to three dimensions. The explicit scheme

in three dimensions would be the extension of the two-dimensional MUSCL scheme pre-

sented in Section 1.3.1 and would contain corner-coupling. In an unsplit finite volume

scheme in two dimensions, diagonal neighbors, i.e., cells that differ by one in both the

i and j index, are used in the flux computation of cell (i, j) for a second-order accurate

and stable method [44]. In three dimensions, this extends to cells that differ by one

in all three coordinate directions [99]. A nice description of these issues is contained

in [88] and [92]. There, customized advection schemes in two and three dimensions are

developed that are based on tracing characteristics. As a side product, explanations are

55
provided concerning which neighboring cells need to be taken into account to advect a

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 three-
dimensional Gaussian and the ramp is constant in the z direction.

57
Chapter 2

A projection algorithm extended


to embedded boundary grids

2.1 Introduction

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

by

ut + (uu) + p = 0, (2.1a)

u = 0. (2.1b)

Our starting point is a well-established projection algorithm for Cartesian grids [7, 9,

19, 20] and the corresponding high performance implementation provided by the CCSE

(Center for Computational Sciences and Engineering) at LBNL. Our goal is to extend

both the algorithm and the implementation to Cartesian embedded boundary grids,

using the mixed explicit implicit time stepping scheme developed in Chapter 1.

Projection algorithms, also referred to as fractional step methods, were introduced by

Chorin [36, 37]. The method typically consists of two main steps:

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

does not satisfy the incompressibility condition.

2. Step 2: Enforcement of the divergence-free constraint by applying a projection to

U , resulting in U n+1 .

For Step 1, the biggest issue in extending the method to cut cells is to overcome

the small cell problem. Here, we will rely on the results from Chapter 1. For Step

2, all operators involved in the projection step (divergence, gradient, and interpolation

operators) need to be adjusted to the irregular geometry of cut cells. Our goals for the

resulting method are second-order accuracy at the embedded boundary and straightfor-

ward extension to three dimensions. Initial numerical results indicate that the approach

is promising but that the desired accuracy has not yet been achieved.

Projection algorithms for solving the incompressible Euler equations on Cartesian

embedded boundary grids have been examined before. Almgren et al. [8] present a pro-

jection algorithm that is second-order accurate in L1 and first-order accurate in L .

The authors use the flux redistribution method [95] to overcome the small cell problem

in Step 1. Popinet [96] presents a solver for the incompressible Euler equations with

similar accuracy properties, which uses both AMR and embedded boundary techniques.

The focus of the paper is on AMR-related aspects. Popinet avoids the small cell problem

by cell merging. Both methods use a similar discretization for the advection terms on

Cartesian cells as we use.

There is much more literature about Cartesian embedded boundary methods for

solving the incompressible Navier-Stokes equations than for the incompressible Euler

equations. Different versions have been developed by Tau [105], Calhoun [32], Ye et

al. [114], Gao et al. [56], Barad et al. [13] and Miller & Trebotich [90], Meyer et al. [89],

and Wang et al. [112]. Because of the many differences between the equations, these

methods are not directly applicable to our case.

This chapter is organized as follows: We first introduce the projection method for

59
regular Cartesian grids. Then, we discuss adjustments to Step 1 and Step 2 of the

algorithm to account for the embedded boundary. In Section 2.4 we present initial

numerical results for flow past a half-cylinder. We conclude this chapter with a discussion

of open problems.

2.2 Projection algorithms on Cartesian grids

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

Cartesian grid. The idea of using a projection algorithm to solve the incompressible

Navier-Stokes equations was introduced by Chorin [36, 37]. Its theoretical basis is the

Helmholtz-Hodge decomposition theorem, see, e.g., [38]. Chorins algorithm contained

all the main features of a modern projection algorithm but was only first order. Second-

order projection algorithms were developed by Kim & Moin [81], van Kan [79] and Bell,

Colella, and Glaz (BCG) [18, 19].

Our extension is based on the projection methods described in [7, 9, 19, 20]. These

methods are all revisions of the original BCG algorithm with varying details. The two

steps of the projection algorithm are:

Step 1: The advection equation (2.1a) is solved without strictly enforcing the in-

compressibility constraint, i.e., the equation

U Un
+ [(U )U ]n+1/2 + pn1/2 = 0 (2.2)
t

is solved for U . The pressure gradient is evaluated at tn1/2 and is treated as a source

term. The nonlinear term [(U )U ]n+1/2 is approximated at tn+1/2 to second order in

space and time using an explicit predictor corrector scheme based on a MUSCL approach.

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 , (2.3a)
t t

U Un

pn+1/2 = pn1/2 + (I P) . (2.3b)
t

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

2.2.1 Details for the advection step

The details of the advection step overall coincide with the descriptions given by Bell

et al. [19, 20] and Almgren et al. [7]. The main complication in computing U in (2.2) is

caused by the term [(U )U ]n+1/2 . The variable U n is cell centered but this non-linear

term needs to be evaluated on the edges with second-order accuracy in time. To deal

with this problem, a predictor corrector approach is used:

n+1/2 n+1/2
(i) Predictor: Velocities ui+1/2,j and vi,j+1/2 are predicted on the x edges and y

edges, respectively. The details of this step are described in [7]. Essentially, a

MUSCL scheme similar to the one described in Section 1.3.1 is used.

Then, a MAC projection is applied to enforce that the edge velocities are discretely

divergence-free, i.e.,

n+1/2 n+1/2 MAC projection


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

More information about the MAC projection is given below. This results in dis-

cretely divergence-free velocity components uM M


i+1/2,j on the x edges and vi,j+1/2 on

the y edges, respectively, compare Figure 2.1.

(ii) Corrector: In the corrector step, the predicted velocities U M = (uM M


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

61
M
vi,j+1/2

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

M
vi,j1/2

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

are treated as a given velocity field and an equation of the form

U Un h M in+1/2
+ (U )U + pn1/2 = 0 (2.4)
t

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

(2.4) for U is similar to applying the MUSCL scheme to the linear advection

equation. This was described in Section 1.3.1.

In the MAC projection, an equation of the form

DG = DU n+1/2

n+1/2 n+1/2
with U n+1/2 = (ui+1/2,j , vi,j+1/2 ) is solved for . Here, D and G denote discretizations

of the divergence and gradient operators; details are given in Section 2.2.2. Then, U M =

U n+1/2 G. We note that this enforces the incompressibility of the MAC velocities up

to machine precision with respect to the chosen D, i.e., the MAC projection is an exact

projection.

2.2.2 Details for the projection step

For Step 2, the projection, an approximate projection method is used, i.e., the in-

compressibility 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 cen-

tered: Discretizing the divergence operator D and the gradient operator G with standard

second-order difference quotients leads to an extended five point stencil for DG. As a

result, the stencil locally decouples and standard solvers like multigrid for the Poisson

equation cannot easily be used. For more information about approximate projections

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

ui+1/2,j ui1/2,j vi,j+1/2 vi,j1/2


(DU )ij = + .
x y

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

given by
Ui+1,j Uij
(Gx U )i+1/2,j x
= .


Ui,j+1 Uij
(Gy U )i,j+1/2 y

(These are the definitions of D and G used in the MAC projection.) Note that for D

and G defined this way, there holds L = DG. We also define interpolation operators

I1 : cell centroids edge midpoint,

I2 : edge midpoints cell centroid.

63
Using averaging for both interpolation operators, which is second-order accurate for

Cartesian grids, makes this approach equivalent to using cell centered divergence and

gradient operators without the interpolation steps.

Applying the projection operator P to a cell centered vector field V , i.e., computing

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

can be split in the following steps:

Algorithm 2.1. Steps of the projection:

1. Interpolation: Evaluate V = I1 V .

2. Computation of divergence: Evaluate DV .

3. Linear system solve: Solve

DG = DV

for . Note that lives at cell centroids and DG maps cell centroids to cell

centroids.

4. Computation of gradient: Evaluate G.

5. Interpolation: Evaluate G d = I2 (G(DG)1 D(I1 V )).


d = I2 (G). Note G

6. Subtraction: Compute

V proj = V G
d

2.3 Extension to embedded boundary grids

In this section, we focus on extending the projection algorithm to cut cells. We first

discuss the extension of Step 1, the advection step, to Cartesian embedded boundary

grids. Afterwards, we discuss necessary changes for the projection step. We present

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

projection step.

2.3.1 Step 1: Computation of U

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

(i) adapt the way the MAC velocities are calculated, i.e.,

n+1/2 n+1/2
(a) predict ui+1/2,j and vi,j+1/2 on the edges in the presence of embedded bound-

aries,

(b) apply a MAC projection suitable for embedded boundary grids; (the adjust-

ments to the operators D and G are given in Section 2.3.2 where we extend

Step 2 to embedded boundary grids;)

(ii) solve the equation

U Un h M in+1/2
+ (U )U + pn1/2 = 0
t

for U on embedded boundary grids.

n+1/2
Even though the irregularity of cut cells complicates the prediction of ui+1/2,j and
n+1/2
vi,j+1/2 on the edges, the first part of Step (i) avoids the biggest problem related to cut

cells, the small cell problem. In this step we only predict to edges and do not divide

by the volume of potentially very small cut cells. For a Cartesian grid, the edge state
n+1/2,L
ui+1/2,j is given by

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


 
n+1/2,L
ui+1/2,j = unij + unx,ij (vuy )ij p ,
2 2 2 2 x,ij

[
with (vuy )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 (vuy )ij is evaluated by
n+1/2 n+1/2
upwind differencing of predicted edge states ui,j+1/2 and ui,j1/2 . For cut cells, the

lower and upper y edge might not both exist and their edges midpoints are not aligned.

Therefore, we just use the y slope uy computed by limited least squares reconstruction

(more fully described in Chapter 3) for the evaluation of the transverse derivative term.

Step (ii) is similar to solving a linear advection equation since the pressure gradient

pn1/2 is treated as a source term and the velocities U M are known. In Chapter 1 we

developed a mixed explicit implicit algorithm for solving the linear advection equation

st + (us) = 0.

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

2.3.2 Step 2: The projection step

Algorithm 2.1 in Section 2.2.2 summarizes the projection step for a fully Cartesian

grid. Following this approach we need to define

1. divergence operator D : edge midpoints (cut) cell centroids,

2. gradient operator G : (cut) cell centroids edge midpoints,

3. interpolation operator I1 : (cut) cell centroids edge midpoints,

4. interpolation operator I2 : edge midpoints (cut) cell centroids.

This will be done in this order.

66
A popular algorithm for solving the Poisson problem = with inhomogeneous

Dirichlet boundary conditions on embedded boundary grids is the method by Johansen

& Colella [78]. However, in this approach is centered at the Cartesian center of a cut

cell, i.e., at the center of the corresponding uncut cell. As our variables are centered at

the (geometric) cut cell centroid, we did not follow this approach.

2.3.2.1 Divergence operator D

For Cartesian cells, the divergence operator D is given by

ui+1/2,j ui1/2,j vi,j+1/2 vi,j1/2


(DU )ij = + . (2.5)
x y

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 Neu-

mann boundary conditions used for the Poisson problem, this property will be enforced

automatically (up to the order of the projection step).

2.3.2.2 Gradient operator G

The gradient operator G is given as map

G : cell centroids edge midpoints.

67
For projection methods, one typically tries to define G as the skew-adjoint operator of

D with respect to a suitable inner product.

For a Cartesian grid it is common, see, e.g., Bell et al. [20], to use the inner product

X
(, ) = 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 o
y
S2 := = ( x , y ) i+1/2,j
x

centered on x edges, i,j+1/2 centered on y edges .

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

X
(, )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

y
yi,j+1/2 i,j+1/2 ,
X X
x
(, )S2 = i+1/2,j xi+1/2,j i+1/2,j + i,j+1/2
x edges y edges

with

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

We note that this is a somewhat arbitrary pick and does not correspond to a suitable

inner product on S2 . This definition results in the gradient being given by


i+1,j i,j
Gx i+1/2,j x
= . (2.7)


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

68
This operator G is not useful as a gradient operator. For a cut cell, the y coordinates

of the centroids of cells (i + 1, j) and (i, j) typically differ, which is not captured by

Gx i+1/2,j . But it works well when used in the projection. This gradient operator was

also used by Almgren et al. [8] in the MAC projection. (For the cell centered projection

a finite element approach was employed.)

Recently, we were made aware of the work by Lipnikov et al. [86]. Among other

things, the authors deduce a gradient operator, which is the skew-adjoint operator of

the divergence, on general polyhedral meshes. In the future, we plan to apply the very

general definition given in this work to the case of a cut cell and to test the resulting

operator numerically. We expect the resulting gradient operator to be more complicated

than the currently used G but to be more accurate and to result in a more favorable

matrix DG.

2.3.2.3 Interpolation operators I1 and I2

The interpolation operator I1 is defined as map

I1 : (cut) cell centroids edge midpoints.

For the projection algorithm on Cartesian grids, simple averaging is used. On edges away

from the embedded boundary, i.e., for an edge between two Cartesian cells, we keep this

operation. For edges between cut cells or between a cut and an irrflow cell, averaging is

not accurate enough. Instead we fit a bilinear polynomial

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

through the centroids of four cells and evaluate the polynomial at the appropriate edge

midpoints. This is illustrated in Figure 2.2, which shows the four cells used in the

polynomial fit to interpolate to the edge marked in red.

69
Figure 2.2: The values at the four marked cell centroids are used to fit a bilinear poly-
nomial, which is evaluated at the edge midpoint marked with a red bar.

In the case of all four cells being uncut Cartesian cells, this procedure reduces to

averaging the lower two cell values. Therefore, this approach for interpolation on cut

cells is consistent with the averaging used on Cartesian cells.

The interpolation operator I2 is defined as map

I2 : edge midpoints (cut) cell centroids.

This interpolation operator will be used to interpolate the gradient components from

the x and y edges to the cell centroids. For Cartesian cells (also for irrflow cells) we use

averaging, e.g.,
(Gx )i+1/2,j + (Gx )i1/2,j
(I2 Gx )ij = .
2

On cut cells we again have the problem that this is not accurate enough. Instead we use

polynomial interpolation.

The implementation details for this interpolation operator are more complicated than

for I1 . Figure 2.3 shows three possible situations. The goal is to interpolate values from

the center of x edges to the centroid marked with a gray circle. To do so, we use the

values at the x edges marked with a red bar. Depending on whether we have four or

three values available in the close neighborhood of the cell with the marked centroid, we

70
(a) bilinear (b) bilinear (c) linear

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

either fit a bilinear polynomial a + bx + cy + dxy or a linear polynomial a + bx + cy.

2.3.2.4 Numerical results for the projection step

We now test the accuracy of the projection using the adjustments on cut cells we

just described. As test problem we use the interior of a circle (compare Figure 1.7). For

this geometry, one possible incompressible velocity field with the appropriate boundary

conditions is given by u = (2y, 2x)T . We disturb this velocity field to u + , where

represents a scalar field. Then we test how well the projection removes the perturbation,

i.e., we compare the projected velocity field with u = (2y, 2x)T .

The result is shown in Table 2.1. We observe second order in the L1 norm. The

convergence rates in the L norm seem to depend on whether the perturbation is of

the form f1 (x) + f2 (y) or whether there is more interaction between the x and y terms.

In the first case, we observe second-order convergence in the L norm in this simple

test, in the latter case, first-order convergence.

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

1 + 0.8x + 0.1y 322 0 0


642 0 0
1282 0 0
2562 0 0
1 + 0.2x + 0.3y + 0.4xy 322 4.98e-04 1.50e-02
642 1.69e-04 1.56 7.72e-03 0.96
1282 4.32e-05 1.96 3.71e-03 1.06
2562 1.16e-05 1.90 2.00e-03 0.89
sin(x) + sin(y) 322 2.48e-03 3.07e-03
642 6.34e-04 1.96 7.67e-04 2.00
1282 1.60e-04 1.98 1.96e-04 1.97
2562 4.03e-05 1.99 4.89e-05 2.00
sin(x) sin(y) 322 1.48e-03 2.03e-02
642 4.55e-04 1.70 1.04e-02 0.96
1282 1.19e-04 1.94 5.03e-03 1.05
2562 3.14e-05 1.92 2.66e-03 0.92

2.4 Numerical results

2.4.1 Implementation aspects

For testing the full projection algorithm we use the same software setup as described

in Section 1.4.1. The main work for the advection step had already been implemented for

our tests in Chapter 1. We extended the existing algorithms by a routine that predicts

the velocities on the edges.

For the cell centered projection and the MAC projection we started with a working

projection for Cartesian grids provided by the CCSE group. It uses a multigrid (MG)

solver to solve the corresponding Poisson problem. To make the projection work on cut

cells, we implemented the interpolation operators presented in Section 2.3.2.3 and the

divergence and gradient operators presented in Sections 2.3.2.1 and 2.3.2.2. During these

tasks, we were supported by members of the CCSE group.

We only use cut cell geometry on the finest MG level. On coarser levels, cut cell

72
geometry can lead to split cells, which causes additional problems. In our initial tests,

this approach overall worked well. But it might be necessary in the future to adjust the

MG solver on all levels to the geometry of the embedded boundary.

In our numerical test, the initial velocity field is computed by an initial cell-centered

projection. To determine a suitable pressure gradient, initial pressure iterations are used.

Here, several iterations of our 2-step algorithm are taken (consisting of advancing the

velocity field and applying the projection). Afterwards, the velocity field is reset to the

initial data. For theoretical justification see Bell et al. [18, 20].

2.4.2 Flow past a half-cylinder

We solve the incompressible Euler equations given by

ut + (uu) + p = 0,

u = 0,

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

passively advected tracer determined by

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

This test problem is an adapted version of a test from


Figure 2.4: Flow past a
Almgren et al. [8]. The geometry for this problem is shown
half-cylinder in a channel.
in Figure 2.4. The test domain is [0, 8] [0, 24] and a half-

cylinder with diameter D = 2.0 is used. There are inflow and outflow boundary condi-

tions at the lower and upper y edge, respectively, and slip wall boundary conditions on

both x edges. The inflow velocity is v = 1. The initial velocity field is computed by an

initial projection. We add a small perturbation to break the symmetry. The scalar is

advected in from the low y edge.

73
(a) vorticity (b) passive scalar

Figure 2.5: Flow past a half-cylinder.

74
Figure 2.5 shows the vorticity and the passively advected scalar for a 96288 resolu-

tion at time T . The final time T was chosen such that the flow is periodic but before the

errors arising at the high y outflow boundary dominate. (To be able to run to a later

time T , we actually use the test domain [0, 8] [0, 48] and run with six patches of the

size 962 in parallel.)

In [8], the Strouhal number given by Df /U is calculated with U = 1 denoting the

free-stream velocity and f being the vortex shedding frequency. We measure a Strouhal

number of 0.29, which is very similar to the 0.31 measured in [8].

2.5 Conclusions and future work

We have presented initial results for extending a projection algorithm from Cartesian

grids to embedded boundary grids. Here, we relied on the mixed explicit implicit time

stepping scheme developed in Chapter 1.

First numerical results are promising but there are still many open questions. Initial

numerical tests and theoretical considerations indicate that the discretization of the

nonlinear velocity term (uu) is only first-order accurate for cut cells. For this term,

boundary integrals over the cell edges are evaluated using the midpoint rule. Then, these

terms are summed up and the sum is divided by the cell volume. Due to this division,

accuracy is lost. On Cartesian cells, this is not an issue as error cancellation is more

favorable. For cut cells, one solution might be to use a higher order quadrature rule, such

as the two point Gaussian quadrature rule. Additional work will be needed to examine

this possibility more closely.

Also, further tests for the projection step and the development of a fully second-order

projection (with respect to both the L1 and L norm) are probably necessary. We did

initial tests replacing G = DT by a more accurate gradient operator, which however

does not correspond to the skew-adjoint of D. Another approach is to follow Lipnikov et

al. [86]. Further tests will be needed to assess whether one of these two approaches will

75
lead to a more suitable definition of G than the currently used one, but it seems likely.

A distant future goal is to extend this algorithm to three dimensions and to the solu-

tion of the Navier-Stokes equations. So far, we only used algorithms that extend to three

dimensions in a straightforward way. This will also be a main design criteria for future

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/WENO-

type 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 ingre-

dient for several limiters developed for unstructured triangular and quadrangular grids.

Hubbard [69, 70] examines the possibilities of using a projection approach or a quadratic

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 discon-

tinuous Galerkin methods based on solving least squares problems with linear equality

and inequality constraints, and provide a general optimization algorithm for their solu-

tion. However, the solution of a constrained least squares problem is significantly more

expensive than the solution of our specific LPs by means of the all-inequality Simplex

method.

The LP limiter presented here is actually more a limiter framework than a specific

limiter. The choice of the monotonicity constraints influence the accuracy and robustness

of the limiter. In the following we will examine various formulations to determine suitable

monotonicity constraints on cut cells, both theoretically and numerically.

Much of this chapter has been published in a modified form by May & Berger [87].

That paper also includes results using the LP limiter on unstructured, triangular grids

using a variety of monotonicity constraints. In addition, the recent MLP-u1 limiter by

Park et al. [94] was tested. The LP limiter did well in these tests, and in particular

confirmed its second-order accuracy for smooth test problems.

78
This chapter is structured as follows. In Section 3.2 we introduce the idea of the LP

limiter and discuss the suitability of various monotonicity constraints for cut cells. In

Section 3.3, we compare optimization algorithms for solving linear programs and provide

details for our method of choice, the all-inequality Simplex method. Numerical results for

the LP limiter on embedded boundary meshes are presented in Section 3.4. We conclude

with thoughts about extending the LP limiter to three dimensions. In Appendix A we

show a non-negativity result for linear advection on cut cells using the LP limiter.

3.2 Description of LP limiter

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

1. compute an initial gradient (Dx , Dy ) for cell M , and

2. limit the initial gradient appropriately.

In Step 2, the scalar limiter computes a limited gradient (Dx , Dy ). For the LP limiter,

the limited gradient has the form (x Dx , y Dy ). Both limiters enforce certain mono-

tonicity constraints. We will present details for the two limiters and discuss suitable

monotonicity constraints for cut cells. For concreteness, however, we first describe the

computation of the initial gradient estimate.

3.2.1 Unlimited slope reconstruction

For the computation of the initial gradient estimate (Dx , Dy ), we use a standard least

squares approach [15]. Consider a cut cell M with centroid (xM , yM ) and cell value sM

that has three neighbors with centroids (xi , yi ) and cell values si , i = 1, . . . , 3, as shown

79
in Figure 3.1. We define

x1 xM y1 yM s1 sM

Dx
r = x2 xM y2 yM , (3.1)
s2 sM


Dy


x3 xM y3 yM s3 sM

and find (Dx , Dy ) as the least squares solution of minDx ,Dy krk2 . This approach is exact

for linear functions. When formulating suitable monotonicity constraints we will focus

on preserving this property in the limiting step. On distorted meshes, the least squares

approach is somewhat more accurate than the Green-Gauss approach [4, 14].

For the gradient estimation, only edge neighbors of a cut cell are used, except for a

triangular cut cell. Since the latter has only two edge neighbors, the diagonal neighbor

is included. This ensures that we always use at least three pieces of information in (3.1)

for the two-dimensional case.

(xM , yM )
(x1 , y1 ) (x3 , y3 )

(x2 , y2 )

Figure 3.1: Slope reconstruction on blue cell.

3.2.2 The scalar limiter

The limited reconstruction using the scalar limiter has the form


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

80
with [0, 1]. For each of the given monotonicity constraints (discussed in Section

3.2.4), a value i [0, 1] is determined such that the constraint is fulfilled. Then =

mini i . The possibility of sequentially enforcing the monotonicity constraints makes the

implementation of the scalar limiter very easy. The price is unnecessary diffusion.

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



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

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 prob-

lem: retain as much of the unlimited gradient as possible while fulfilling the monotonicity

conditions. We use the l1 -norm to measure the difference between the limited and un-

limited gradient. The objective function is given by

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


x ,y

= (1 x )|Dx | + (1 y )|Dy |

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

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

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

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


x
min |Dx |x |Dy |y subject to A > b, (3.4)
x ,y
y

with A Rk2 and b Rk .

3.2.4 Monotonicity constraints

We now present two sets of monotonicity constraints that are suitable for cut cells:

the more strict standard constraints and the relaxed constraints.

Standard constraints

In one space dimension, the minmod slope limiter reconstructs to the two neighboring

centroids and makes sure to not over- or undershoot the neighboring value. The standard

constraints are a two-dimensional generalization of this idea.

For concreteness, let j = 1, . . . , N denote the cells where a monotonicity constraint

should be enforced. Typically, these are the edge neighbors of cell M . The constraints

are given by


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

In words, we reconstruct to the centroid of a cell j and make sure to not exceed the

minimum and maximum value taken over the value of cell j and the value of cell M .

This is illustrated in Figure 3.1.

To use the LP formulation for limiting, we need to rewrite the constraints as linear

inequalities. For this purpose, we distinguish the cases sM 6 sj and sM > sj and

82
reformulate the constraints as

(xj xM )Dx x
if sM 6 sj : > (sj sM ), (3.6a)
(yj yM )Dy y

(xj xM )Dx x
> 0, (3.6b)
(yj yM )Dy y

(xj xM )Dx x
if sM > sj : > 0, (3.6c)
(yj yM )Dy y

(xj xM )Dx x
> sj sM . (3.6d)
(yj yM )Dy y

For each cell neighbor j we determine whether sM 6 sj . If this is the case, we add

inequalities (3.6a) and (3.6b) to the LP. Otherwise, we add constraints (3.6c) and (3.6d)

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 con-

straints, which is especially popular on triangular

meshes, is to reconstruct to the edge midpoint in-

stead of to the neighboring centroid. In one dimen-

sion this corresponds to using the MC limiter instead

of the minmod limiter. For cut cells, however, this


Figure 3.2: For cut cells, the edge
approach might limit even a linear function, since
midpoint typically does not lie on
typically the edge midpoint does not lie on the line
the line connecting neighboring
connecting the cell centroids as pictured in Figure
centroids.
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 linearity-

preserving if and only if the edge midpoints lie in this extended convex hull, compare

Swartz [103]. This is not true, however, for a cut cell with triangular shape. Consider

for example Figure 3.2 and assume that only the left edge neighbor and the (not drawn)

upper edge neighbor are used for limiting. Then, the edge midpoint marked with a

square does not lie in the convex hull spanned by these two centroids and the triangular

cells centroid.

In our definition of relaxed constraints, we therefore keep reconstructing to the neigh-

boring centroids but limit using the min and max over all neighboring cells. The con-

straints are then given by


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

for j = 1, . . . , N .

We note that for both the standard and relaxed constraints, the resulting LP limiter

will be linearity-preserving. The accuracy of these two formulations will be compared

numerically later in this chapter.

Limiting at the boundary edge midpoint

The boundary edge midpoint does not lie in the convex hull spanned by the centroids,

so any constraint of the form used for the other edge midpoints might lead to limiting

a linear function. Therefore, we do not enforce such a constraint. In some situations it

84
is necessary to ensure non-negativity. For example when simulating the Euler equations

pressure and density should not become negative. To address this issue, we add the

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

where (xB , yB ) denotes the boundary edge midpoint. The non-negativity result presented

in Section 3.2.6 and the result in Appendix A include the addition of this constraint.

This concludes the discussion of the specific LPs used for limiting. We will either

use the standard constraints (3.6) or the relaxed constraints (3.7) in the LP of the form

(3.4). In addition, 0 6 x , y 6 1 is enforced and the non-negativity constraint at the

boundary edge midpoint (3.8) might be used.

3.2.5 Solvability and boundedness of the LPs

All our constraints are formulated such that (x , y ) = (0, 0) is a feasible point.

The point (0, 0) corresponds to the zero gradient, i.e., to not reconstructing a slope.

Therefore, there exists at least one feasible point. Furthermore, since 0 6 x , y 6 1,

the feasible set is bounded. These two facts imply that there must exist a bounded

optimal solution for each LP on every cut cell by the Fundamental Theorem of Linear

Programming [91].

3.2.6 A convex hull argument

Both the standard and the relaxed constraints only limit the reconstruction evaluated

at the neighboring centroids. It might be possible that the reconstruction evaluated at

the edge midpoints, which is used in the flux computation, is a relative extremum and

might become negative. For planar geometry, a straightforward but tedious geometry

analysis (not included here) shows the following Lemma.

85
(a) convex hull for cut (b) convex hull for Carte-
cell sian neighbor of cut cell

Figure 3.3: For a cut cell, all edge midpoints are contained in the convex hull of neigh-
boring centroids and the boundary edge midpoint. For a Cartesian neighbor, this might
not be the case for the respective convex hull.

Lemma 3.1. All edge midpoints of a cut cell lie in the convex hull spanned by the

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 M Ecen

Figure 3.4: Idea of recentering: instead of E, Ecen is used to determine the x slope.

is to use the LP limiter on these cells as well. Analogous to Lemma 3.1, we examined

whether the four edge midpoints are contained in the convex hull of the four neighboring

cells centroids. Unfortunately, this is not true in general. An example of this is shown

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 re-

centering, the location of the point where the limiter is applied is altered, so that a

one-dimensional limiter can be applied. To do so, one makes use of the fully limited

gradient on cut cells, which is computed first.

The main idea in recentering is illustrated in Figure 3.4. We focus on reconstructing

a limited x slope, since in the situation shown, a standard one-dimensional limiter can

be used for the y slope. The problem is that the cell centroids W , M , and E do not

have the same y coordinate. Instead of E, we use the point Ecen for limiting, which

does have the same y coordinate as W and M . This reduces the limiting problem to

a one-dimensional problem on a non-uniform grid (as the distances between W and M

and between M and Ecen differ). One possibility is to use the minmod limiter (recall

87
(1.5)) resulting in the x slope

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

To obtain a value at Ecen , we use the fully limited gradient on the cut cell E and

evaluate the linear reconstruction of cell E at Ecen . We note that even in the case of

the slimmest triangle, the point Ecen lies within the cell and in particular within the

convex hull guaranteeing non-negativity. This in turn guarantees non-negativity of the

reconstruction on cell M at the edge midpoint that lies on the line connecting M and

Ecen (assuming non-negative cell values). Also, this procedure is linearity preserving.

3.3 Solution of the LPs

In this section we focus on the efficient solution of the LPs in our limiter. We first

compare standard optimization algorithms used to solve linear programs and then present

the scheme that is most suitable for our purposes, the all-inequality Simplex method.

3.3.1 Comparison of solution algorithms

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

min cT x, subject to Ax > b,


x

with c, x R2 , A Rk2 , b Rk , and k depends on the geometry of the cut cell and the

constraints chosen, but is typically between 10 and 15. Such a problem must be solved on

every cut cell in every time step, or several times per time step for a multi-stage method.

Therefore, an efficient solution algorithm is crucial for the limiter to be practical.

The two standard methods for solving LPs are the Simplex method and the Interior

Point method, see, e.g., Nocedal & Wright [91]. The Simplex method starts at a corner of

88
the feasible set and then moves (along the edges) from corner to corner until it reaches

an optimal vertex. The Interior Point method starts with a strictly interior point of

the feasible set, computes iterates that lie strictly in the interior, and only approaches

the boundary in the limit of approaching the optimal point. We tried both methods

and concluded that the Simplex method is much more suitable for our specific problems

due to the choice of the starting point and the cost of the algorithm determined by the

number of iterations and the expense of each iteration.

It is usually non-trivial to find a suitable starting point for the Simplex method. One

common way is to solve a Phase-I problem [91] in addition to solving the actual LP.

The solution of the additional problem is roughly as expensive, which doubles the cost.

In our case, we have a starting point free of charge. The point (0, 0), corresponding to

the zero-gradient, is a vertex of the feasible set and therefore a suitable starting point. It

is non-trivial, however, for our LPs to find a strictly interior point to be used as starting

point for the Interior Point method.

Once a starting point is found, the cost of the algorithm is determined by the number

of iterations needed and the cost of each iteration. In terms of the latter, the Interior

Point method is more expensive than the Simplex method as the matrix that needs to

be inverted in each iteration is significantly larger. The number of iterations needed for

both methods was roughly the same in our tests.

Typically, the Simplex method is presented for an LP of the form

min dT x, subject to F x = g, x > 0.

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

to it by means of slack variables. Then, the standard Simplex algorithm, as, e.g.,

presented by Nocedal & Wright [91], can be used. However, the resulting computation

is not very fast, since in each iteration two linear systems need to be solved, and their

size depends on k, the number of original constraints. We typically solve several million

89
LPs during the course of a simulation. This situation is to some extent contrary to the

classical LP situation, where a very large LP with hundred of thousands of variables

needs to be solved only a few times. We need to solve tiny LPs, but we need to solve

them very often.

For our situation, the all-inequality Simplex method, introduced to us by Margaret

Wright, is much more suitable. The idea is the same as for the standard Simplex method:

the algorithm moves along the boundary of the feasible set from corner to corner. The

mathematical details differ as the algorithm is based on the all-inequality standard form.

As a consequence, the two linear systems that need to be inverted in each iteration are

only 2 2 systems (for our case of A Rk2 ). This makes each iteration significantly

cheaper than for the standard Simplex method, while the number of iterations stayed

the same. Therefore, the all-inequality Simplex method is our method of choice for these

specific LPs.

The all-inequality Simplex method is not widely known. The only description we

know of is by Gill et al. [57]. Since this book is out of print, the algorithm is included

in the Appendix of [87] and will be presented here as well. We follow the description by

Gill et al. .

3.3.2 The all-inequality Simplex algorithm

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

min cT x subject to Ax > b.


x

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

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

xk+1 = xk + k pk . (3.9)

90
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 b1
. .

Ak = .. , and bk = .. ,


aTn bn

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

Set of decreasing constraints: For a given descent direction pk , the set of decreasing

constraints Dk is defined by

Dk = {i : aTi pk < 0}.

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

this vertex. In this case, the working set Wk is uniquely determined. The vertex is

degenerate if more than n constraints are active. This is the case for our LPs and it can

lead to cycling. We did not observe this behavior in any of our two-dimensional tests,

see also the more detailed discussion in Section 3.3.3.

One iteration of the all-inequality Simplex algorithm consists of:

Algorithm 3.1. Let xk be a vertex of the feasible set satisfying Axk > b and let Wk be

a working set such that Ak is non-singular and Ak xk = bk .

1. Calculate the Lagrange multipliers k Rn by solving ATk k = c.

91
2. Examine the Lagrange multipliers k :

If k > 0, STOP. In this case, the point xk is optimal.

Otherwise select q such that (k )q < 0. This constraint will be removed from

Wk . (Details on how we choose q are given below.)

3. Calculate the descent direction pk from Ak pk = eq , eq = q th coordinate vector.

4. Choose the step length k to be taken along pk :

(a) Find the set of decreasing constraints along pk given by

Dk {i : aTi pk < 0}.

(Note that by the definition of pk , aTi pk = 0 i Wk , i 6= q, i.e., indices that

are supposed to stay in the working set will not be contained in Dk .)

(b) If Dk = , STOP. In this case, the problem is unbounded. (This will never

be the case for our special LPs, since the constraints 0 6 x , y 6 1 guarantee

a bounded feasible domain.)

(c) For all i Dk calculate the maximum step length i that can be taken before

violating constraint i:
aTi xk bi
i .
aTi pk

(d) Calculate the largest step length possible that does not violate any constraints

as

k min (i ).
iDk

5. Update

(a) the variable x: xk+1 xk + k pk ,

(b) the working set:

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

such that i = k .

ii. From Sk , choose a constraint t to be added to Wk . (For a non-degenerate

vertex, Sk only contains one index. Details on which t to choose for our

LPs are given below.)

iii. Wk+1 Wk {q} + {t},

(c) the working set matrix: Ak+1 Ak with row t replacing row q of A,

(d) the iteration count: k k + 1.

The algorithm assumes the existence of a suitable starting point. This is not an issue

for our specific LPs. We will therefore not discuss this point further.

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


the LP limiter

We now discuss our choices for constraint deletion and addition and some numerical

issues we encountered for solving the LPs used in the limiting step.

Determining the leaving index q and entering index t

It can happen that there exist several indices i such that (k )i < 0. We follow

Dantzigs original rule of defining the most negative component of k to be the leaving

index q in Step 2.

For a non-degenerate vertex xk+1 , the entering constraint t is uniquely defined. But

for our degenerate LPs it can happen that several constraints (that are currently not in

Wk ) block the step at exactly the same maximum step length k . In this case, we choose

the constraint with the lowest index to enter the working set for Wk+1 .

93
Degeneracy and cycling

We use the zero-gradient, corresponding to x0 = (0, 0), as starting point for the

algorithm. We initialize W0 with the indices corresponding to the conditions x10 , x20 > 0.

Any constraint of the form (assume WLOG sM 6 sj )


(xj xM )Dx x
> 0 (3.10)
(yj yM )Dy y

will be active at the starting point, but not be part of the working set. Therefore, the

LP is degenerate.

The main problem with degenerate LPs is that they could encounter cycling: The

search direction is computed such that it does not violate any of the constraints in the

working set Wk \ q. If a constraint j is active but not in the working set (as, e.g., for

the starting point), one can end up with a search direction violating that constraint.

Therefore, the step length k will be determined to be zero, j will be added to the

working set and one index will be removed. In other words, the algorithm does not move

along the boundary of the feasible set in this step, but just replaces the indices in the

working set. This can lead to a cycle in which the algorithm changes the working set in

each iteration but does not move.

We did not encounter this issue in any of our numerical tests in two dimensions,

during which we solved a very high number of LPs coming from cut cells with differing

geometry and different data.

Numerical issues

In Step 3 of Algorithm 3.1, the search direction pk is determined by solving Ak pk = eq .

If we solved that system exactly, then aTi pk = 0 for i Wk , i 6= q, i.e., for all indices in the

working set, which are supposed to stay in the working set in this iteration. Therefore,

none of these indices should qualify for the set of decreasing constraints Dk , out of which

94
the index is determined that will enter the working set Wk+1 in exchange for q.

Numerically, however, we found that aTi pk = with small but not identically zero.

This led initially to the problem that sometimes a constraint ended up twice in the

working set: in addition to staying in the working set, the constraint also entered the

set of blocking constraints and was chosen as the new constraint to enter Wk+1 . To

avoid this case (which would not occur in exact computations), we do not check whether

aTi pk < 0 but whether aTi pk < 1011 in the computation of Dk in Step 4. This worked

well in all our two-dimensional tests.

3.3.4 Cost of the LP limiter

The cost of the LP limiter essentially depends on the number of iterations in the

Simplex algorithm. In all our two-dimensional tests, the average number of iterations

was between 2 and 3.5, and 2.5 iterations was typical. The maximum was always 6 or

less.

Each iteration of the all-inequality Simplex method is very cheap. It consists of

solving two two-by-two systems and checking each constraint for a possible violation

by the proposed step. This corresponds to more floating point operations than the

scalar limiter, but it is approximately equivalent in terms of data motion. Therefore,

we count one iteration of the all-inequality Simplex method as roughly equivalent to the

computational cost of the scalar limiter.

For both the scalar and LP limiter one first computes a least squares gradient, so

this part of the work is identical. In sum, we estimate the cost of slope reconstruction

using the LP limiter to be about 2.5 times the cost of slope reconstruction using the

scalar limiter. We also like to note that the LP limiter is embarrassingly parallel.

95
3.4 Numerical results

Here we present numerical results comparing the LP limiter with the scalar limiter.

We first show results for a smooth steady-state test problem. Then we present results

for the time-dependent simulation of shocked flow diffracting around a cylinder. The

numerical methods used for time stepping are described in the respective sections.

3.4.1 Smooth test case: supersonic vortex

We consider the case of inviscid, isentropic, supersonic flow between concentric arcs

as presented in Aftosmis et al. [4]. Since the flow is shock free, a limiter is not needed for

this test problem. But this way we can compare the unlimited solution to the solution

using the two different limiters. Also, there exists an analytic solution for this test

problem.

As this is a steady-state problem, we can use local time stepping and avoid the small

cell problem. We use the second-order TVD Runge-Kutta method due to Gottlieb &

Shu [58]. To solve ut = f (u), this two stage method is given by:

u = un + tf (un ),
1 1
un+1 = un + (u + tf (u )) .
2 2

The limiting is performed on the primitive variables, not the conserved variables, and

the van Leer flux function is used.

The grid for the simulation is shown in Figure 3.5. The cells are initialized with the

exact solution and the simulations are run to steady state. We use the same parameters

as [4], Mi = 2.25, inner radius 1.0, outer radius 1.43, and CFL number .9.

In our test, we only limit at the cut cells. If limiting was used on all cells the interior

error would dominate, and we would not be able to see the effect of using different

limiters in the cut cells as clearly. For the unlimited slope reconstruction on Cartesian

96
Figure 3.5: Only slopes on the marked cut cells are limited, using either scalar or LP
limiting.

cells, we use standard central difference quotients on flow cells, and the least squares

formulation on irrflow cells. Also, to minimize the error at the inflow, we specify the

exact fluxes into the first column of cells, and do not limit these cells either.

For the shaded cut cells of Figure 3.5 we use either the scalar or LP limiter, and

compare to the unlimited results and the exact solution. For both the scalar and LP

limiter we use both sets of constraints:

the standard formulation, defined by (3.5), and

the relaxed formulation, defined by (3.7).

For the LP limiter, we also include a positivity constraint at the boundary segment.

Thus, each LP has 4 + 2N + p constraints, where N is the number of neighboring cells

used for limiting and p is 1 for density and pressure and 0 for the velocity variables.

Figure 3.6 shows the error in the L1 norm and L norm for various scenarios. The

solid lines correspond to a least squares fit, the symbols to the measured errors. For a

given set of constraints, the LP limiter leads to significantly more accurate results than

the scalar limiter. For the standard constraints, the LP limiter is about 4-5 times more

accurate in both the L1 and L norm. For the relaxed constraints, the results with the

LP limiter are about twice as accurate in the L1 norm and a factor of 4 better in the

L norm. Note that the LP-relaxed version yields results that are very close to the

unlimited case.

97
1
10

3
10

2
10
Error

Error
4
10

Unlimited Unlimited
Scstd Scstd
5 Screl 3 Screl
10 10
LPstd LPstd
LPrel LPrel

2 2
10 10
mesh width mesh width

(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 lim-

iters, both using the standard formulation. Red represents overshoot, blue undershoot,

and green is negligible error. Both pictures use the same scale. For both limiters, the er-

rors bounce between the two arcs. However, the error for the scalar limiter is significantly

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 ex-

98
(a) scalar limiter (b) LP limiter

Figure 3.7: Error in density using the scalar limiter (a) and LP limiter (b) and standard
monotonicity constraints. The grid uses h = (1.43/244) 0.0059. Red represents
overshoot, blue undershoot, and green negligible error.

amined some cells in the inflow area more closely. The values on these cells along the

boundary are slightly increasing with some minor oscillations. However, due to these

minor differences the limiter becomes active for a few cells to guarantee monotonicity. As

a result, the flux to the neighboring cells is reduced (or increased) by a bit. Over several

iterations, the cell value at the neighboring cell becomes smaller (or bigger), changing

the balance, which leads to other limiters becoming active.

Common approaches to reduce limiter chatter are to use a smooth limiter and/or to

avoid clipping smooth extrema, i.e., to not strictly enforce monotonicity [75, 108, 110].

As it is non-trivial to transform the LP limiter into a smooth limiter, we tried the latter

approach and allowed some relative overshoot of the order of 103 . As a result, the

limiter chatter significantly improved, but at the price of allowing overshoot.

3.4.2 Discontinuous test case: shock diffraction from a cylinder

Here we test the behavior of the LP limiter with standard monotonicity constraints

(3.5) on a time-dependent problem with a shock to assess its robustness. This implies

that we need to use a time stepping method that can deal with the small cell problem.

We choose the h-box method [27, 66] for this purpose. For the h-box method and the

99
A E
B
QL

C
M

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

LP limiter we need to use more monotonicity constraints than usual for triangular cells.

This is made precise in Section 3.4.2.1. In Section 3.4.2.2, we present numerical results

for a shock reflection from a cylinder.

3.4.2.1 Additional monotonicity constraints for the h-box method

The h-box method solves the small cell problem by essentially enlarging the domain of

dependence of cut cells in a way that enforces a cancellation property that gives stability.

By increasing the stencil, however, a cut cell can be used in the flux computation for

another cut cell that is not an edge neighbor but a diagonal neighbor (with respect to

the underlying Cartesian grid). We enlarge the monotonicity constraints to include these

diagonal neighbors in the limiting process too.

In more detail, for triangular cells it can happen that the slope on the cut cell has

not been sufficiently limited in the direction of that diagonal neighbor. This is shown in

Figure 3.8. The edge between cells A and E, marked with a blue square, uses the h-box

state QL
in solving the Riemann problem to compute the flux. This state is computed

from a linear combination of the solution on the underlying Cartesian grid, in this case

from cells A and M . The gradient QL


is also determined from a linear combination of

the gradients in A and M . The problem is that the gradient in cell M might not have

been limited strongly enough to be used this way. Cell M only has one x face (shared

100
with cell C) in the negative x direction. The other edge neighbor, cell A, has a centroid

for which the difference in the y component, compared to cell M s centroid, is much

bigger than the difference in the x component. As a consequence, the x slope on cell M

might not have been limited strongly enough, and might cause a loss of positivity at the

edge between cells A and E.

This did not cause issues when using the h-box method with the more diffusive scalar

limiter and standard monotonicity constraints. But when using the LP limiter with the

h-box method, in some of our tests we lost positivity.

Therefore, we add monotonicity constraints to the LP at triangular cut cells for any

cell in the 3 by 3 neighborhood of cells surrounding cell M . In our example, monotonicity

equations for cells B, D, and E are added to the LP for determining the gradient on cell

M . Without this, only constraints for A and C would have been used. The additional

equations are of the same form as the standard monotonicity constraints (3.5). (We note

that cells D and E do not participate in the initial computation of the least squares

gradient.) It was very easy to adjust the LPs in this way and we did not observe further

issues for this modified limiting approach.

3.4.2.2 Numerical Results for shock diffraction from a cylinder

We again solve the two-dimensional Euler equations for this test. We consider shock

reflection from a cylinder using the same setup as Helzel et al. [66]. The domain is [0, 1]2 ,

the cylinder has a radius of r = 0.15 and is centered at (0.5, 0.5). A Mach 2 shock starts

at x = 0.2. The state in front of the shock is given by = 1.4, u = v = 0, p = 1. The

mesh for this computation is 302302. This results in 364 cut cells around the cylinder.

As this problem involves a shock, all cells must be limited. We use the MC limiter

for regular Cartesian cells. For cut cells, we use either the scalar or the LP limiter with

standard monotonicity constraints. For the LP limiter, we add the positivity constraint

at the boundary edge midpoint for the density and pressure variables.

101
Figure 3.9 shows contour lines of density at

T=0.30 using the LP limiter. The result using

the scalar limiter is very similar and therefore

not shown here. Using different limiters only

on the cut cells does not impact the solution

strongly enough to influence the density con-

tours at this level.

For a more detailed look, we evaluate the Figure 3.9: Simulation of shock
solution on the embedded cylinder boundary at diffraction around a cylinder: Density

the final time T=0.30. The results for density contours at T=0.30 for the LP limiter.

(reconstructed to the boundary) as a function

of arc length are shown in Figure 3.10 for both the LP and the scalar limiter on two

different grids. The curve starts at the high density region in front of the cylinder and

goes clockwise until it loops back to the starting cell.

Figure 3.10(a) shows the result for the same discretization as used for the density

contours in Figure 3.9. The maximum peak is 4.11 for using the LP limiter and 3.90 for

the scalar limiter. This corresponds to a 5% difference. We also did computations with a

coarser grid with h .008. The result is shown in Figure 3.10(b). There, the difference

is even more pronounced, and is slightly over 6%. For both grid sizes, the minimum

density values are also slightly lower for the LP limiter than for the scalar limiter.

At first glance it seems that the scalar limiter is doing better at the high density

in front of the cylinder, corresponding to the left and right boundary parts of our one-

dimensional plots. A more detailed analysis reveals, however, that the LP limiter is more

accurate there as well. Both comparison to results from [66] and computations on finer

grids imply that the solution converges to the lower value of the maximum density.

102
(a) fine grid (b) coarse grid

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


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

3.5 Conclusions and future work

In this chapter, we have presented a limiter that limits the x and y slope of the

gradient independently and that is suitable for the complicated geometry of a cut cell.

It is based on solving a tiny LP in every cell, which we solve very efficiently by means of

the all-inequality Simplex method.

The standard limiter for cut cells, the scalar limiter, limits both slopes with the same

scalar factor . For this approach the constraints can be enforced one after the other,

which is not possible for limiting x and y slope independently. As a consequence, the LP

limiter is roughly 2-3 times as expensive as the scalar limiter, despite its very efficient

setup. In terms of accuracy, the results using the LP limiter are a factor of 2-5 more

accurate depending on the monotonicity constraints, which compensates for the higher

cost.

The LP limiter is really a limiter framework, accompanied by a general algorithm for

the solution of the LPs. Thus, it is easy to modify the constraints for special situations.

This was demonstrated by our modifications for the h-box method no changes besides

103
the additional constraints were needed.

The next step is to extend the LP limiter to three space dimensions and to use

three different scalars (x , y , z ) to limit the three coordinate directions separately.

Consequently, the corresponding LPs will have three variables instead of two and there

will be additional monotonicity constraints, but we can still use the same all-inequality

Simplex method to solve them. Initial tests have found occasional problems with cycling,

however, which was not the case in two dimensions. Even though the LPs used for

limiting are tiny, they are degenerate. Using Blands rule [40, 57] fixed the problem in

our initial tests and seems a promising way to go. Also, we observed some numerical

issues as the three-by-three systems that need to be inverted in the Simplex algorithm

became very ill-conditioned for a few cut cells. We could fix these issues easily though

by introducing an index check, which ensures that a constraint cannot show up twice in

the working set.

In two dimensions, a geometric analysis showed that for planar geometry, the recon-

structed solution evaluated at the edge midpoints does not become negative. In three

dimensions, such an analysis would be very complicated, and the claim might not even

be true. In this case, additional positivity constraints would need to be included in the

LP, which can easily be done. Overall, we expect a significant improvement in accuracy

compared to the scalar limiter, which uses the same for all three coordinate directions.

104
Conclusions

We have developed new methods for simulating flow in complicated geometries us-

ing Cartesian embedded boundary grids. The dissertation is organized along the three

aspects that we have considered: In Chapter 1 we have presented a new method to solve

the small cell problem for the linear advection equation in two dimensions. The main

criteria for the scheme development has been to guarantee easy extensibility to three

dimensions and to achieve second-order accuracy at the embedded boundary. Our ap-

proach is to use an implicit time stepping scheme on the cut cells for stability and an

explicit scheme on cells away from the boundary to avoid excessive cost. The goal of

Chapter 1 has been to find a suitable way to do that.

Theoretical considerations in one dimension show that flux bounding is more favor-

able than cell bounding. As implicit time stepping scheme we use the trapezoidal rule,

which is a good match with our explicit scheme, the MUSCL scheme. Numerical tests

in two dimensions indicate that the resulting scheme is second order in L1 and between

first and second order along the embedded boundary.

In Chapter 2 we have presented first results for extending an existing projection

method for the incompressible Euler equations from Cartesian to Cartesian embedded

boundary grids. In the first step of the projection algorithm, the velocity field at the

new time is computed without enforcing the incompressibility condition. We have relied

on the algorithm from Chapter 1 to extend this part to cut cells. For the second step of

the algorithm, we have adjusted the operators involved in the projection to embedded

105
boundary grids. We have presented first results using the full projection algorithm for

Cartesian embedded boundary grids.

In Chapter 3 we have developed a new slope limiter for cut cells. Due to the irregular

geometry of a cut cell, standard slope limiters for Cartesian or triangular grids cannot

easily be used. Usually, the scalar limiter is applied, which limits the x and y slope with

the same scalar factor . We have developed a new limiter, the LP limiter, which limits

the x and y slope separately using two scalars (x , y ). The limiter is formulated as

a tiny LP. We use the very effective all-inequality Simplex method to solve the specific

LPs. The LP limiter is somewhat more expensive than the scalar limiter but significantly

more accurate.

We have described plans for future work in the conclusions of each chapter. One

main goal is the extension of the algorithm developed in Chapter 1 and of the LP limiter

to three dimensions. Both schemes have been set up to easily extend to three dimensions

and preliminary three-dimensional versions have been implemented by us.

For the projection algorithm presented in Chapter 2, we need to continue developing

the two-dimensional algorithm before extending it to three dimensions. We have already

identified problems caused by our approach and have ideas how to fix them. We are very

hopeful that this will lead to a higher-order algorithm for solving the incompressible

Euler equations on Cartesian embedded boundary grids.

Another goal for future work is a high performance implementation of our algorithms

for embedded boundary grids. Our software is based on BoxLib [50], which provides

functionality for massively parallel, block-structured AMR applications for Cartesian

grids. Our tests currently run in parallel on desktop computers (with four cores). Taking

care of AMR related aspects along the embedded boundary and running big simulations

on supercomputers will be future work.

106
Appendix A

A non-negativity result

Batten et al. [17] show a non-negativity result for linear advection on triangle grids.

Following their approach, we show a non-negativity result for linear advection on cut

cells when using the LP limiter for slope reconstruction.

Lemma A.1. Consider the two-dimensional linear advection equation

st + usx + vsy = 0.

Let M be a cut cell, where

(i) the gradient on cell M is limited using:

the constraint (3.8) at the boundary edge midpoint,

neighboring centroids (not edge midpoints) using either the standard or the

relaxed version given by (3.5) and (3.7),

(ii) on neighboring cells a limiting equivalent to (i) is used, which guarantees non-

negativity of the reconstruction at the edge midpoints for non-negative data,

(iii) the embedded boundary is planar,

(iv) explicit Euler time stepping is used,

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

VM
t 6 , (A.1)
j:unj >0 u nj ej
P
6

where VM denotes the volume of cell M , nj denotes the unit normal vector of the

j-th edge of cell M , and ej the length of that edge.

If the data at time tn are non-negative, i.e. sni > 0 i, then sn+1
M > 0.

For the proof of the Lemma A.1 we need information that is provided by the following

Lemma. We will first prove Lemma A.1, assuming Lemma A.2 holds true, and then show

Lemma A.2.

Lemma A.2. Let the assumptions of Lemma A.1 hold and define the linear, LP limited

reconstruction as

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

Then there holds

ML := max sM (mi ) 6 6 snM , i = 1, . . . , k, (A.3)


i

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

k
t X
sn+1 n
M = sM Fj (sM (mj ), sj (mj ))
VM j=1

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

108
j, respectively, and


sL u nj ej if u nj > 0,


Fj (sL , sR ) =

s u n e

otherwise.
R j j

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

k
t X
sn+1 n
M > sM Fj (sM (mj ), 0)
VM j=1
t X
= snM sM (mj ) u nj ej
VM j:unj >0
t X
> snM ML u nj ej
VM j:unj >0

t X
> snM 1 6 u nj ej .
VM j:unj >0

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


M > 0.

The theorem given in [17] for triangles is overall very similar to Lemma A.1 but uses

limiting at the edge midpoints and has the time step constraint

VM
t 6 . (A.4)
3 maxj |u nj ej |

The main differences in the proofs are:

Bound for maxi s(mi ): for triangles it is straightforward to deduce the bound

maxi s(mi ) 6 3 snM , which is used in [17]. For cut cells the analysis is more

complicated and will be presented in the proof of Lemma A.2. (For a triangle cell

we also use the bound 3snM but the cases of a 4- or 5-sided cut cell imply the larger

bound 6snM .)

Sum: by the divergence theorem, the term nj ej in the time step


P
j:unj >0 u

109
D E C
D E C

y J I

A B G
(0, 0) A B G
F (0, 0)
1
L x
(a) 4-sided cell (b) 5-sided cell

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

constraint can be replaced by maxj |u nj ej | for triangular cells. This is not

possible for cut cells, which can have 4 or 5 sides as well.

Before showing Lemma A.2, we provide some basic results about the centroid loca-

tions of 4- and 5-sided cut cells.

Lemma A.3. Consider the 4-sided cut cell in Figure A.1(a). For varying between 0

and L, there holds for the centroid location (xC , yC )

1 1 1 2
L 6 xC 6 L, y 6 yC 6 y.
3 2 2 3

Consider the 5-sided cut cell in Figure A.1(b). For 1 varying between 0 and x and 2

varying between 0 and y, there holds

1 1 1 2
x 6 xC 6 x, y 6 yC 6 y.
3 2 2 3

Proof. Let us start with the 4-sided cell. We first prove the lower bound for xC . We use

that the 4-sided cell ABCD corresponds to cutting the small triangle F BA out of the

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

R R R
ABCD xdx F CD xdx F BA xdx
xC = R =
ABCD 1dx AABCD
R R
AF CD F CD xdx/AF CD AF BA F BA xdx/AF BA
=
AABCD
AF CD 13 L AF BA 31 AF CD 13 L AF BA 13 L 1
= > = L.
AABCD AABCD 3

For the upper bound we describe the cell as quadrilateral AGCD minus triangle BGC

to get

R R R
ABCD xdx AGCD xdx BGC xdx
xC = R =
ABCD 1dx AABCD

AAGCD 12 L ABGC xC (BGC)


=
AABCD
AAGCD 12 L ABGC 21 L 1
6 = 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 z3 (0, 0) e2

2 e3
z1 M e1
1 eB

(a) cell M with neighbors (b) focus on cell M

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

the neighboring centroids assuming sni > 0 i . Lemma 3.1 implies that non-negativity

also holds true for sM evaluated at the edge midpoints of a cut cell. The main idea

of the following proof is this: since the linear reconstruction sM , which has a positive

value sM at the centroid, is known to be non-negative at several points (the neighboring

centroids, edge midpoints, and the boundary edge midpoint), its slope cannot be too

steep. Otherwise it would violate one of these non-negativity constraints. This is made

precise in the following. For simplicity, we will drop the time index n in snM .

Proof of Lemma A.2. We consider the case of a 3-sided, 4-sided, and 5-sided cut cell

separately.

3-sided cell: This case is straightforward and can be handled as in [17]. By Lemma 3.1

and assumption (i) from Lemma A.1, we know that sM is positive at the two edge mid-

points e1 and e2 and the boundary edge midpoint eB of the triangle cell. Furthermore,

using quadrature formulae, there holds

1 1
Z
(sM (e1 ) + sM (e2 ) + sM (eB )) = sM (x)dx = sM ,
3 VM M

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

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

112
(In the following we assume WLOG 1 > 2 .) The point c, which coincides with the

origin, lies in the convex hull of the neighbors as shown in Figure A.2(a). The reason
y
is that for centroid z1 , there holds x(z1 ) 6 x
2 and y(z1 ) > 2 . Using that sM

has non-negative values at the neighboring centroids due to limiting, it must also be

non-negative at c.

This in turn implies that sM is non-negative on the line marked in light blue in Figure

A.2(b). Denoting the location of the centroid of cell M by (xM , yM ) there holds

1 1 1 1
x 6 xM 6 x, 1 6 yM 6 1 .
3 2 2 3

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

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

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

3sM
y Dy > .
1

We now need a lower bound for x Dx and an upper bound for y Dy . Consider the

distance between the centroid and the boundary midpoint eB . There holds 0 6 x(eB )

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

1 3sM 3
(y(eB ) yM )y Dy > sM x = sM .
6 x 2

113
This implies
3
2 sM 9sM
y Dy 6 6 .
yM y(eB ) 1

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

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

A short computation shows 0 6 y(e3 ) yM 6 31 1 . Therefore, we can bound

1 9sM
(x(e3 ) xM )x Dx > sM 1 = 4sM .
3 1

Using 12 x 6 x(e3 ) xM 6 23 x, we get

8sM
x Dx > .
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 1 2
x 6 xM 6 x, y 6 yM 6 y.
3 2 2 3

e2

e3 2
e1

(0, 0) e4 1
eB

(a) Cut cell M (b) Parameter 1 and 2

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

114
The upper right corner of the cell lies on the line connecting the centroid of the upper

neighbor with the centroid of the left neighbor. Therefore, sM is non-negative at that

point and consequently non-negative on the light blue line. We use the light blue line in

the same way as for the 4-sided cell to deduce the bounds

3sM 3sM
x Dx 6 , y Dy > .
x y

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


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

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

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

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

8sM 6sM
x Dy > , y Dy 6 .
x y

6sM
We assume y Dy > y . Using the point e4 , there holds

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


| {z } | {z }
>0 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

6sM 1
x Dx (x(e4 ) xM ) > sM y Dy (y(e4 ) yM ) > sM + y = 2sM .
y 2

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

4sM
x Dx 6
x

115
6sM
as a consequence of assuming y Dy > y .

Now we consider the point eB . There should hold

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


| {z } | {z }
60 60

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

4sM 6sM
f (x(eB ), y(eB ), xM , yM ) := (x(eB ) xM ) + (y(eB ) yM ).
x y

We deduce analytic formulae for the exact positions of x(eB ), y(eB ), xM , and yM de-

pending on 1 and 2 (compare Figure A.3(b)). Evaluating f with the exact coordinates

shows that
5
5sM 6 f (x(eB ), y(eB ), xM , yM ) 6 sM .
3
6sM
Therefore, there is no possible configuration of a 5-sided cell such that y Dy > y ,

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

6sM
assumption was wrong and we conclude y Dy 6 y . We use the point e3 to deduce

x Dy > 8s M
x .

We now evaluate the 4 different cases at all edge midpoints and the boundary edge

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: anal-


ysis 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. AIAA-
94-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-2000-
0808, 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 conser-
vative adaptive projection method for the variable density incompressible Navier-
Stokes equations. J. Comput. Phys., 142:146, 1998.

[10] A. S. Almgren, J. B. Bell, and W. Y. Crutchfield. Approximate projection methods:


Part I. Inviscid analysis. SIAM J. Sci. Comput., 22(4):113959, 2000.

[11] E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz,


A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen. LAPACK Users
Guide. Society for Industrial and Applied Mathematics, Philadelphia, PA, third
edition, 1999.

[12] U. Ascher, S. Ruuth, and R. J. Spitheri. Implicit-explicit Runge-Kutta methods


for time dependent partial differential equations. Appl. Numer. Math, 25:151167,
1997.

[13] M. Barad, P. Colella, D. T. Graves, P. Schwartz, B. van Straalen, and D. Trebotich.


A Cartesian grid embedded boundary method for the incompressible Navier-Stokes
equations. Preprint, 2009.

[14] T. J. Barth. Numerical aspects of computing viscous high Reynolds number flows
on unstructured meshes. AIAA-91-0721, 1991.

[15] T. J. Barth. Numerical methods and error estimation for conservation laws on
structured and unstructured meshes. Van Karman Institute Computational Fluid
Dynamics Lecture Notes, 2003.

[16] T. J. Barth and D. Jespersen. The design and application of upwind schemes on
unstructured meshes. AIAA-89-0366, 1989.

[17] P. Batten, C. Lambert, and D. M. Causon. Positively conservative high-resolution


schemes for unstructured elements. Int. J. Numer. Methods Eng., 39:18211838,
1996.

118
[18] J. B. Bell, P. Colella, and H. M. Glaz. A second-order projection method for
viscous, incompressible flow. AIAA paper 87-1776-CP, 1987.

[19] J. B. Bell, P. Colella, and H. M. Glaz. A second order projection method for the
incompressible Navier-Stokes equations. J. Comput. Phys., 85(2):257283, 1989.

[20] J. B. Bell, P. Colella, and L. H. Howell. An efficient second-order projection method


for viscous incompressible flow. In Proceedings of the Tenth AIAA Computational
Fluid Dynamics Conference, pages 360367. AIAA, 1991.

[21] J. B. Bell, P. Colella, and M. L. Welcome. Conservative front-tracking for inviscid


compressible flow. AIAA Paper 91-1599-CP, 1991.

[22] M. J. Berger. Private communication, 2013.

[23] M. J. Berger and R. LeVeque. An adaptive Cartesian mesh algorithm for the Euler
equations in arbitrary geometries. AIAA Paper 89-1930-CP, 1989.

[24] M. J. Berger and R. LeVeque. Stable boundary conditions for Cartesian grid
calculations. Comput. Systems Engrg., 1:305311, 1990.

[25] M. J. Berger and R. LeVeque. A rotated difference scheme for Cartesian grids in
complex geometries. AIAA Paper CP-91-1602, 1991.

[26] M. J. Berger and J. Melton. An accuracy test of a Cartesian grid method for steady
flow in complex geometry. In Proc. 5th International Conference on Hyperbolic
Problems, Stony Brook, NY, 1994. RIACS Technical Report 95.02.

[27] M. J. Berger, C. Helzel, and R. LeVeque. H-Box method for the approximation of
hyperbolic conservation laws on irregular grids. Technical report, Courant Mathe-
matics and Computing Laboratory, New York University, 2002. Technical Report
02-001.

[28] M. J. Berger, M. J. Aftosmis, and S. M. Murman. Analysis of slope limiters on


irregular grids. AIAA-2005-0490, 2005.

119
[29] P. Birken and A. Jameson. On nonlinear preconditioners in Newton-Krylov meth-
ods for unsteady flows. Int. J. Num. Meth. Fluids, 62:565573, 2010.

[30] J. P. Boris and D. L. Book. Flux corrected transport. I. SHASTA, a fluid transport
algorithm that works. J. Comput. Phys., 11:3869, 1973.

[31] T. Buffard and S. Clain. Monoslope and multislope MUSCL methods for unstruc-
tured meshes. J. Comput. Phys., 229:37453776, 2010.

[32] D. Calhoun. A Cartesian grid method for solving the streamfunction vorticity equa-
tions in irregular geometries. PhD thesis, Department of Applied Mathematics,
University of Washington, 1999.

[33] D. M. Causon, D. M. Ingram, and C. G. Mingham. A Cartesian cut cell method


for shallow water flows with moving boundaries. Advances in Water Resources, 24:
899911, 2001.

[34] I.-L. Chern and P. Colella. A conservative front tracking method for hyperbolic
conservation laws. Technical report, Lawrence Livermore National Laboratory,
Livermore, CA, 1987. Preprint UCRL-97200.

[35] Y.-L. Chiang, B. van Leer, and K. G. Powell. Simulation of unsteady inviscid flow
on an adaptively refined cartesian grid. AIAA paper 92-0443, 1992.

[36] A. J. Chorin. Numerical solution of the Navier-Stokes equations. Math. Comp.,


22:745762, 1968.

[37] A. J. Chorin. On the convergence of discrete approximations to the Navier-Stokes


equations. Math. Comp., 23:341353, 1969.

[38] A. J. Chorin and J. E. Marsden. A Mathematical Introduction to Fluid Dynamics.


Springer, 3rd edition, 2000.

[39] I. Christov and B. Popov. New non-oscillatory central schemes on unstructured


triangulations for hyperbolic systems of conservation laws. J. Comput. Phys., 227:
57365757, 2008.

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

[41] D. K. Clarke, M. D. Salas, and H. Hassan. Euler calculations for multielement


airfoils using Cartesian grids. AIAA Journal, 24, 1986.

[42] W. J. Coirier and K. G. Powell. An accuracy assessment of Cartesian mesh ap-


proaches for the Euler equations. J. Comput. Phys., 117:121131, 1995.

[43] P. Colella. A direct Eulerian MUSCL scheme for gas dynamics. SIAM J. Sci. Stat.
Comput., 6:104117, 1985.

[44] P. Colella. Multidimensional Upwind Methods for Hyperbolic Conservation Laws.


J. Comput. Phys., 87:171200, 1990.

[45] P. Colella. Volume-of-fluid methods for partial differential equations. In E. F.


Toro, editor, Godunov Methods, pages 161177. Springer US, 2001.

[46] P. Colella, D. T. Graves, B. J. Keen, and D. Modiano. A Cartesian grid embedded


boundary method for hyperbolic conservation laws. Technical report, Lawrence
Berkeley National Laboratory, Berkeley, CA, 2004. LBNL-56420.

[47] P. Colella, D. T. Graves, B. J. Keen, and D. Modiano. A Cartesian grid embedded


boundary method for hyperbolic conservation laws. J. Comput. Phys., 211:347
366, 2006.

[48] D. DeZeeuw and K. Powell. An adaptively refined Cartesian mesh solver for the
Riemann problem for real gases. AIAA Paper 91-1542-CP, 1991.

[49] B. Epstein, A. Luntz, and A. Nachschon. Cartesian Euler method for arbitrary
aircraft configurations. AIAA Journal, 30:679687, 1992.

[50] J. B. B. et al. BoxLib Users Guide. Technical re-


port, CCSE, Lawrence Berkeley National Laboratory, 2012.
https://ccse.lbl.gov/BoxLib/BoxLibUsersGuide.pdf.

121
[51] J. Falcovitz, G. Alfandary, and G. Hanoch. A two-dimensional conservation laws
scheme for compressible flows with moving boundaries. J. Comput. Phys., 138:
83102, 1997.

[52] L. Ferracina and M. N. Spker. An extension and analysis of the Shu-Osher rep-
resentation of Runge-Kutta methods. Math. Comput., 74(249):201219, 2004.

[53] L. Ferracina and M. N. Spker. Strong stability of singly-diagonally-implicit


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

[54] O. Friedrich. Weighted essentially non-oscillatory schemes for the interpolation on


unstructured grids. J. Comput. Phys., 144:194212, 1998.

[55] R. Gaffney, H. Hassan, and M. Salas. Euler calculations for wings using Cartesian
grids. Paper AIAA 87-0356-CP, 1987.

[56] F. Gao, D. M. Ingram, D. M. Causon, and C. G. Mingham. The development of a


Cartesian cut cell method for incompressible viscous flows. Int. J. Numer. Meth.
Fluids, 54:10331053, 2007.

[57] P. E. Gill, W. Murray, and M. H. Wright. Numerical Linear Algebra and Opti-
mization, volume 1. Addison-Wesley Publishing Company, 1991.

[58] S. Gottlieb and C. Shu. Total variation diminishing Runge-Kutta schemes. Math.
Comput., 67:7385, 1998.

[59] S. Gottlieb, C. Shu, and E. Tadmor. Strong stability-preserving high-order time


discretization methods. SIAM Review, 43(1):89112, 2001.

[60] B. Gustafsson. The convergence rate for difference approximations to mixed initial
boundary value problems. Math. Comp., 29:396406, 1975.

[61] E. Hairer and G. Wanner. Solving ordinary differential equations II: Stiff and
differential-algebraic problems. Springer, 2nd edition, 2002.

122
[62] E. Hairer, S. P. Norsett, and G. Wanner. Solving ordinary differential equations:
Nonstiff problems. Springer, 1993.

[63] A. Harten. High resolution schemes for hyperbolic conservation laws. J. Comput.
Phys., 49:357393, 1983.

[64] D. Hartmann, M. Meinke, and W. Schrder. An adaptive multilevel multigrid


formulation for Cartesian hierarchical grid methods. Comput. & Fluids, 37:1103
1125, 2008.

[65] D. Hartmann, M. Meinke, and W. Schrder. A strictly conservative Cartesian cut-


cell method for compressible viscous flows on adaptive grids. Comput. Methods
Appl. Mech. Engrg., 200:10381052, 2011.

[66] C. Helzel, M. J. Berger, and R. LeVeque. A high-resolution rotated grid method for
conservation laws with embedded geometries. Siam J. Sci. Comput., 26:785809,
2005.

[67] H. Hoteit, P. Ackerer, R. Mose, J. Erhel, and B. Philippe. New two-dimensional


slope limiters for discontinuous Galerkin methods on arbitrary meshes. Internat.
J. Numer. Methods Engrg., 61(14):25662593, 2004.

[68] C. Hu and C.-W. Shu. Weighted essentially non-oscillatory schemes on triangular


meshes. J. Comput. Phys., 150:97127, 1999.

[69] M. E. Hubbard. Multidimensional slope limiters for MUSCL-type finite volume


schemes. Numerical analysis report 2/98, Department of Mathematics, University
of Reading, 1998.

[70] M. E. Hubbard. Multidimensional slope limiters for MUSCL-type finite volume


schemes on unstructured grids. J. Comput. Phys., 155:5474, 1999.

[71] W. Hundsdorfer and J. G. Verwer. Numerical solution of time-dependent advection-


diffusion-reaction equations, volume 33 of Springer Ser. Comput. Math. Springer,
2003.

123
[72] J. D. Hunt. An adaptive 3D Cartesian approach for the parallel computation of
inviscid flow about static and dynamic configurations. PhD thesis, University of
Michigan, 2004.

[73] A. Jameson. Time dependent calculations using multigrid, with applications to


unsteady flows part airfoils and wings. AIAA paper 91-1596, 1991.

[74] A. Jameson and S. Shankaran. An assessment of dual-time stepping, time spectral


and artificial compressibility based numerical algorithms for unsteady flow with
applications to flapping wings. AIAA Paper 2009-4273, 2009.

[75] P. Jawahar and H. Kamath. A high-resolution procedure for Euler and Navier-
Stokes computations on unstructured grids. J. Comput. Phys., 164:165203, 2000.

[76] H. Ji, F.-S. Lien, and E. Yee. An efficient second-order accurate cut-cell method for
solving the variable coefficient Poisson equation with jump conditions on irregular
domains. Intl. J. Num. Methods in Fluids, 52:723748, 2006.

[77] H. Ji, F.-S. Lien, and E. Yee. Numerical simulation of detonation using an adaptive
Cartesian cut-cell method combined with a cell-merging technique. Comput. &
Fluids, 39:10411057, 2010.

[78] H. Johansen and P. Colella. A Cartesian grid embedded boundary method for
Poissons equation on irregular domains. J. Comput. Phys., 147:6085, 1998.

[79] J. V. Kan. A second-order accurate pressure-correction scheme for viscous incom-


pressible flow. SIAM J. Sci. Comput., 7:870891, 1986.

[80] D. I. Ketcheson, C. B. Macdonald, and S. Gottlieb. Optimal implicit strong sta-


bility preserving Runge-Kutta methods. Appl. Numer. Math., 59:373392, 2009.

[81] J. Kim and P. Moin. Application of a fractional-step method to incompressible


Navier-Stokes equations. J. Comput. Phys., 59:308323, 1985.

[82] R. J. LeVeque. Finite Volume Methods for Hyperbolic Problems. Cambridge Uni-
versity Press, 2002.

124
[83] R. J. Leveque. Finite Difference Methods for Ordinary and Partial Differential
Equations. siam, 2007.

[84] R. J. Leveque. Numerical methods for conservation laws. Birkhuser, 2nd edition,
2008.

[85] W. Li, Y.-X. Ren, G. Lei, and H. Luo. The multi-dimensional limiters for solving
hyperbolic conservation laws on unstructured grids. J. Comput. Phys., 230:7775
7795, 2011.

[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 Navier-
Stokes 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 un-
limited data-dependent least-squares reconstruction. J. Comput. Phys., 133:617,
1997.

[94] J. S. Park, S.-H. Yoon, and C. Kim. Multi-dimensional limiting process for hy-
perbolic conservation laws on unstructured grids. J. Comput. Phys., 229:788812,
2010.

[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: Imple-


mentation, 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. Nu-
mer. Math., 42:271290, 1983.

126
[103] B. Swartz. Good neighborhoods for multdimensional van Leer limiting. J. Comput.
Phys., 154:237241, 1999.

[104] R. K. Sweby. High resolution schemes using flux limiters for hyperbolic conserva-
tion laws. SIAM J. Numer. Anal, 21:9951011, 1984.

[105] E. Y. Tau. A second-order projection method for the incompressible Navier-Stokes


equations in arbitrary domains. J. Comput. Phys., 115:147152, 1994.

[106] E. F. Toro. Riemann Solvers and Numerical Methods for Fluid Dynamics. Springer,
3rd edition, 2009.

[107] S. Tu and A. Aliabadi. A slope limiting procedure in discontinuous Galerkin finite


element method for gasdynamics applications. Int. J. Numer. Anal. Model., 2(2):
163178, 2005.

[108] G. D. van Albada, B. van Leer, and J. W. W. Roberts. A comparative study of


computational methods in cosmic gas dynamics. Astron. Astrophys., 108:7684,
1982.

[109] B. van Leer. Towards the ultimate conservative difference scheme, V. a second
order sequel to Godunovs methods. J. Comput. Phys., 32:101136, 1979.

[110] V. Venkatakrishnan. Convergence to steady state solutions of the Euler equations


on unstructured grids with limiters. J. Comput. Phys., 118:120130, 1995.

[111] VisIt Users Manual. https://wci.llnl.gov/codes/visit/home.html, 2005.

[112] S. Wang, J. Glimm, R. Samulyak, X. Jiao, and C. Diao. The embedded boundary
method for two phase incompressible flow. Preprint, 2013.

[113] B. Wendroff and A. B. White. A supraconvergent scheme for nonlinear hyperbolic


systems. Comput. Math. Appl., 18(8):761767, 1989.

[114] T. Ye, R. Mittal, H. S. Udaykumar, and W. Shyy. An accurate Cartesian grid


method for viscous incompressible flows with complex immersed boundary. J.
Comput. Phys., 156:209240, 1999.

127
[115] S. T. Zalesak. Fully multidimsional flux-corrected transport algorithms for fluids.
J. Comput. Phys., 31:335362, 1979.

128