B-char: an efficient (and feasible!) approach for mass...

61
B-char: an efficient (and feasible!) approach for mass-conserving characteristic schemes in 2D and 3D J. Droniou (Monash University) Monash Workshop on Numerical Differential Equations 2020 Joint work with Hanz M. Cheng (formerly Monash, now Eindhoven University of Technology) J. Droniou (Monash University)

Transcript of B-char: an efficient (and feasible!) approach for mass...

Page 1: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

B-char: an efficient (and feasible!)approach for mass-conserving characteristic

schemes in 2D and 3D

J. Droniou (Monash University)

Monash Workshop on Numerical Differential Equations 2020

Joint work with Hanz M. Cheng (formerly Monash, now EindhovenUniversity of Technology)

J. Droniou (Monash University)

Page 2: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Plan

1 The problem: numerical methods with inexact calculations

2 B-char method: cheap, and perfectly mass conservative

3 Numerical tests2D tests3D tests

J. Droniou (Monash University)

Page 3: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Plan

1 The problem: numerical methods with inexact calculations

2 B-char method: cheap, and perfectly mass conservative

3 Numerical tests2D tests3D tests

J. Droniou (Monash University)

Page 4: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Linear advection model

φ∂c

∂t+ div(uc) = 0 on QT := Ω× (0,T ),

c(·, 0) = cini on Ω.

Ω: polygonal/polyhedral domain, with mesh M.

φ: porosity, 0 < φ∗ ≤ φ ≤ φ∗, piecewise constant on mesh.

u: Darcy velocity, u ∈ L∞(0,T ; L2(Ω)), divu = 0 andu · n = 0 on ∂Ω.

cini: initial concentration, cini ∈ L∞(Ω).

J. Droniou (Monash University)

Page 5: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

ELLAM method

Time steps: Time discretisation

0 = t(0) < t(1) < . . . < t(N) = T , with δt(n+ 12

) = t(n+1) − t(n).

Let u(n+1) ∈ L2(Ω)d approximate u on (t(n), t(n+1)), withdivu(n+1) = 0 and u(n+1) · n = 0 on ∂Ω.

Test function: ψ satisfying

φ∂ψ

∂t+u(n+1) ·∇ψ = 0 on Ω×(t(n), t(n+1)) , ψ(·, t(n+1)) given.

I Set Ft(x) flow of u(n+1)/φ, that is

dFt(x)

dt=

u(n+1)(Ft(x))

φ(Ft(x)), F0(x) = x .

Thenψ(x , t(n)) = ψ(F

δt(n+ 12 )(x), t(n+1)).

Time stepping in ELLAM (=Eulerian Lagrangian LocalisedAdjoint Method):

Ωφ(x)(cψ)(x , t(n+1)) dx =

Ωφ(x)(cψ)(x , t(n)) dx

J. Droniou (Monash University)

Page 6: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

ELLAM method

Time steps: Time discretisation

0 = t(0) < t(1) < . . . < t(N) = T , with δt(n+ 12

) = t(n+1) − t(n).

Let u(n+1) ∈ L2(Ω)d approximate u on (t(n), t(n+1)), withdivu(n+1) = 0 and u(n+1) · n = 0 on ∂Ω.

Test function: ψ satisfying

φ∂ψ

∂t+u(n+1) ·∇ψ = 0 on Ω×(t(n), t(n+1)) , ψ(·, t(n+1)) given.

I Set Ft(x) flow of u(n+1)/φ, that is

dFt(x)

dt=

u(n+1)(Ft(x))

φ(Ft(x)), F0(x) = x .

Thenψ(x , t(n)) = ψ(F

δt(n+ 12 )(x), t(n+1)).

Time stepping in ELLAM (=Eulerian Lagrangian LocalisedAdjoint Method):

Ωφ(x)(cψ)(x , t(n+1)) dx =

Ωφ(x)(cψ)(x , t(n)) dx

J. Droniou (Monash University)

Page 7: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

ELLAM method

Time steps: Time discretisation

0 = t(0) < t(1) < . . . < t(N) = T , with δt(n+ 12

) = t(n+1) − t(n).

Let u(n+1) ∈ L2(Ω)d approximate u on (t(n), t(n+1)), withdivu(n+1) = 0 and u(n+1) · n = 0 on ∂Ω.

Test function: ψ satisfying

φ∂ψ

∂t+u(n+1) ·∇ψ = 0 on Ω×(t(n), t(n+1)) , ψ(·, t(n+1)) given.

I Set Ft(x) flow of u(n+1)/φ, that is

dFt(x)

dt=

u(n+1)(Ft(x))

φ(Ft(x)), F0(x) = x .

Thenψ(x , t(n)) = ψ(F

δt(n+ 12 )(x), t(n+1)).

Time stepping in ELLAM (=Eulerian Lagrangian LocalisedAdjoint Method):

Ωφ(x)(cψ)(x , t(n+1)) dx =

Ωφ(x)(cψ)(x , t(n)) dx

J. Droniou (Monash University)

Page 8: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

ELLAM method

Test function: ψ satisfying

φ∂ψ

∂t+u(n+1) ·∇ψ = 0 on Ω×(t(n), t(n+1)) , ψ(·, t(n+1)) given.

I Set Ft(x) flow of u(n+1)/φ, that is

dFt(x)

dt=

u(n+1)(Ft(x))

φ(Ft(x)), F0(x) = x .

Thenψ(x , t(n)) = ψ(F

δt(n+ 12 )(x), t(n+1)).

Time stepping in ELLAM (=Eulerian Lagrangian LocalisedAdjoint Method):

Ωφ(x)(cψ)(x , t(n+1)) dx =

Ωφ(x)(cψ)(x , t(n)) dx

J. Droniou (Monash University)

Page 9: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

ELLAM method: global and local mass conservation

Global mass conservation: make ψ(x , t(n+1)) ≡ 1:

Ωφ(x)c(x , t(n+1)) dx =

Ωφ(x)c(x , t(n)) dx .

Local mass conservation: since divu = 0,

If c(·, t(n)) = 1 then c(·, t(n+1)) = 1.

J. Droniou (Monash University)

Page 10: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

ELLAM for piecewise constant approximations

I At each time, we are looking for ch(·, t(n)) = (c(n)M )M∈M

piecewise constant approximation of c on M.

I Notation: the porous volume in a set A is

|A|φ =

Aφ.

ELLAM formulation: take ψ(·, t(n+1)) = 1K for a cell K ∈M:

|K |φc(n+1)K =

M∈M|M ∩ F

−δt(n+ 12 )(K )|φc(n)

M .

J. Droniou (Monash University)

Page 11: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Global and local mass conservation

|K |φc(n+1)K =

M∈M|M ∩ F

−δt(n+ 12 )(K )|φc(n)

M .

Global mass conservation: OK by summing over K and using

K∈M|M ∩ F

−δt(n+ 12 )(K )|φ = |M|φ.

Local mass conservation: OK because

M∈M|M ∩ F

−δt(n+ 12 )(K )|φ = |F

−δt(n+ 12 )(K )|φ = |K |φ.

J. Droniou (Monash University)

Page 12: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Global and local mass conservation

|K |φc(n+1)K =

M∈M|M ∩ F

−δt(n+ 12 )(K )|φc(n)

M .

Global mass conservation: OK by summing over K and using

K∈M|M ∩ F

−δt(n+ 12 )(K )|φ = |M|φ.

Local mass conservation: OK because

M∈M|M ∩ F

−δt(n+ 12 )(K )|φ = |F

−δt(n+ 12 )(K )|φ = |K |φ.

J. Droniou (Monash University)

Page 13: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Global and local mass conservation

|K |φc(n+1)K =

M∈M|M ∩ F

−δt(n+ 12 )(K )|φc(n)

M .

Global mass conservation: OK by summing over K and using

K∈M|M ∩ F

−δt(n+ 12 )(K )|φ = |M|φ.

Local mass conservation: OK because

M∈M|M ∩ F

−δt(n+ 12 )(K )|φ = |F

−δt(n+ 12 )(K )|φ = |K |φ.

J. Droniou (Monash University)

Page 14: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

ELLAM in practice: what needs to be computed

Transport of cells: K polygonal/polyhedral cell, but F−δt(n+ 1

2 )(K )

is a generic potato, that needs to be approximated...

K

F−δt(n+

12)(K)

t(n+1)

t(n)

K

˜K

t(n+1)

t(n)

Figure: Exact (left) and approximated (right) trace-back of K .

J. Droniou (Monash University)

Page 15: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

ELLAM in practice: what needs to be computed

Intersection of regions: need to compute (porous volume of)M ∩ F

−δt(n+ 12 )(K ).

I Algorithms for areas of intersections of polygons (2D) are ok,but expensive.

I Algorithms for volume of intersections of polyhedras (3D) areterrible!

J. Droniou (Monash University)

Page 16: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

ELLAM in practice: revisiting mass conservation

I Global and local mass conservation are based on∑

K∈M|M ∩ F

−δt(n+ 12 )(K )|φ = |M|φ (global),

M∈M|M ∩ F

−δt(n+ 12 )(K )|φ = |F

−δt(n+ 12 )(K )|φ = |K |φ (local).

I Issue: we only compute K , and

|M ∩ K |φ ≈ |M ∩ F−δt(n+ 1

2 )(K )|φ.

Not a problem for global mass conservation (as (K )K∈M forms apartition of the domain), but breaks down local massconservation...

J. Droniou (Monash University)

Page 17: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Plan

1 The problem: numerical methods with inexact calculations

2 B-char method: cheap, and perfectly mass conservative

3 Numerical tests2D tests3D tests

J. Droniou (Monash University)

Page 18: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

An original idea...

Approximate polygons/polyhedras by balls,

track balls(keeping them as balls), intersect balls.

K

J. Droniou (Monash University)

Page 19: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

An original idea...

Approximate polygons/polyhedras by balls, track balls(keeping them as balls),

intersect balls.

K

K

J. Droniou (Monash University)

Page 20: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

An original idea...

Approximate polygons/polyhedras by balls, track balls(keeping them as balls), intersect balls.

K

M

J. Droniou (Monash University)

Page 21: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

... that needs to be enhanced!

I Loss of volume in K when approximating by balls (gaps), andloss of volume when intersecting balls.

I Very inaccurate approximation of K (and thus of F−δt(n+ 1

2 )(K ))

by tracked balls.

bad solutions, clearly not conserving mass.

J. Droniou (Monash University)

Page 22: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Initial adjustments

I Cell K with balls (BK ,s)s=1,...,nK .

Distribution of porous volume: introduce porous density ρK ,constant during evolution, such that

ρK

nK∑

s=1

|BK ,s |φ = |K |φ.

I ρK |BK ,s |φ equivalent porous volume inside ball.

Tracking of balls: assuming φ constant, the volume (and radius)of BK ,s remains constant during tracking (generalised Liouvilletheorem).

J. Droniou (Monash University)

Page 23: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Initial adjustments

I Cell K with balls (BK ,s)s=1,...,nK .

Distribution of porous volume: introduce porous density ρK ,constant during evolution, such that

ρK

nK∑

s=1

|BK ,s |φ = |K |φ.

I ρK |BK ,s |φ equivalent porous volume inside ball.

Tracking of balls: assuming φ constant, the volume (and radius)of BK ,s remains constant during tracking (generalised Liouvilletheorem).

J. Droniou (Monash University)

Page 24: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Initial adjustments

I Cell K with balls (BK ,s)s=1,...,nK .

Distribution of porous volume: introduce porous density ρK ,constant during evolution, such that

ρK

nK∑

s=1

|BK ,s |φ = |K |φ.

I ρK |BK ,s |φ equivalent porous volume inside ball.

Tracking of balls: assuming φ constant, the volume (and radius)of BK ,s remains constant during tracking (generalised Liouvilletheorem).

J. Droniou (Monash University)

Page 25: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Initial adjustments

Intersections of balls without loss of mass: straight intersectionof balls in K and M leads to

|K ∩M|φ ≈∑

s

m

ρMφM |BK ,s ∩ BM,m|.

I But loss of mass through intersection of balls. So we computethe fraction of mass of BK ,s that comes from BM,m:

fK ,s,M,m =ρMφM |BK ,s ∩ BM,m|∑

L∈M∑nL

`=1 ρLφL|BK ,s ∩ BL,`|

and we set

|M ∩ K |φ ≈ VK ,M

=

nK∑

s=1

ρK φK ,s |BK ,s |nM∑

m=1

fK ,s,M,m.

J. Droniou (Monash University)

Page 26: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Initial adjustments

Intersections of balls without loss of mass: straight intersectionof balls in K and M leads to

|K ∩M|φ ≈∑

s

m

ρMφM |BK ,s ∩ BM,m|.

I But loss of mass through intersection of balls. So we computethe fraction of mass of BK ,s that comes from BM,m:

fK ,s,M,m =ρMφM |BK ,s ∩ BM,m|∑

L∈M∑nL

`=1 ρLφL|BK ,s ∩ BL,`|

and we set

|M ∩ K |φ ≈ VK ,M

=

nK∑

s=1

ρK φK ,s |BK ,s |nM∑

m=1

fK ,s,M,m.

J. Droniou (Monash University)

Page 27: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Mass conservations?

Local mass conservation: came from∑

M

|M ∩ F−δt(n+ 1

2 )(K )|φ = |F−δt(n+ 1

2 )(K )|φ = |K |φ.

We therefore need∑

M

VK ,M

= |K |φ. OK because∑

M

∑m fK ,s,M,m = 1.

Global mass conservation: came from∑

K

|M ∩ F−δt(n+ 1

2 )(K )|φ = |M|φ.

We therefore need∑

K

VK ,M

= |M|φ. KO!

J. Droniou (Monash University)

Page 28: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Mass conservations?

Local mass conservation: came from∑

M

|M ∩ F−δt(n+ 1

2 )(K )|φ = |F−δt(n+ 1

2 )(K )|φ = |K |φ.

We therefore need∑

M

VK ,M

= |K |φ. OK because∑

M

∑m fK ,s,M,m = 1.

Global mass conservation: came from∑

K

|M ∩ F−δt(n+ 1

2 )(K )|φ = |M|φ.

We therefore need∑

K

VK ,M

= |M|φ. KO!

J. Droniou (Monash University)

Page 29: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Mass conservations?

Local mass conservation: came from∑

M

|M ∩ F−δt(n+ 1

2 )(K )|φ = |F−δt(n+ 1

2 )(K )|φ = |K |φ.

We therefore need∑

M

VK ,M

= |K |φ. OK because∑

M

∑m fK ,s,M,m = 1.

Global mass conservation: came from∑

K

|M ∩ F−δt(n+ 1

2 )(K )|φ = |M|φ.

We therefore need∑

K

VK ,M

= |M|φ. KO!

J. Droniou (Monash University)

Page 30: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Mass conservations?

Local mass conservation: came from∑

M

|M ∩ F−δt(n+ 1

2 )(K )|φ = |F−δt(n+ 1

2 )(K )|φ = |K |φ.

We therefore need∑

M

VK ,M

= |K |φ. OK because∑

M

∑m fK ,s,M,m = 1.

Global mass conservation: came from∑

K

|M ∩ F−δt(n+ 1

2 )(K )|φ = |M|φ.

We therefore need∑

K

VK ,M

= |M|φ. KO!

J. Droniou (Monash University)

Page 31: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Second adjustment: redistributions

Global:∑

K

VK ,M

= |M|φ. Local:∑

M

VK ,M

= |K |φ.

I Step 2: redistribute to get local mass conservation

V(n+1)

K ,M=

|K |φ∑

L V(n+ 1

2)

K ,L

V(n+ 1

2)

K ,M.

J. Droniou (Monash University)

Page 32: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Second adjustment: redistributions

Global:∑

K

VK ,M

= |M|φ. Local:∑

M

VK ,M

= |K |φ.

I Step 0: set V(0)

K ,M= V

K ,M.

I Step 2: redistribute to get local mass conservation

V(n+1)

K ,M=

|K |φ∑

L V(n+ 1

2)

K ,L

V(n+ 1

2)

K ,M.

J. Droniou (Monash University)

Page 33: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Second adjustment: redistributions

Global:∑

K

VK ,M

= |M|φ. Local:∑

M

VK ,M

= |K |φ.

For n = 0, . . . ,N, iterate:

I Step 1: redistribute to get global mass conservation

V(n+ 1

2)

K ,M=

|M|φ∑R V

(n)

R,M

V(n)

K ,M.

I Step 2: redistribute to get local mass conservation

V(n+1)

K ,M=

|K |φ∑

L V(n+ 1

2)

K ,L

V(n+ 1

2)

K ,M.

J. Droniou (Monash University)

Page 34: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Second adjustment: redistributions

Global:∑

K

VK ,M

= |M|φ. Local:∑

M

VK ,M

= |K |φ.

For n = 0, . . . ,N, iterate:

I Step 1: redistribute to get global mass conservation

V(n+ 1

2)

K ,M=

|M|φ∑R V

(n)

R,M

V(n)

K ,M.

I Step 2: redistribute to get local mass conservation

V(n+1)

K ,M=

|K |φ∑

L V(n+ 1

2)

K ,L

V(n+ 1

2)

K ,M.

J. Droniou (Monash University)

Page 35: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Second adjustment: redistributions

I Error in global/local mass tends to reduce at each iteration...but very slowly after the first few steps.

Achieving exact conservation: after n ∼ 10

J. Droniou (Monash University)

Page 36: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Second adjustment: redistributions

I Error in global/local mass tends to reduce at each iteration...but very slowly after the first few steps.

Achieving exact conservation: after n ∼ 10, stop iterations and

find, in the vicinity of the current (V(n)

K ,M)K ,M , one solution to the

global and local mass conservation equations.

J. Droniou (Monash University)

Page 37: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Second adjustment: redistributions

Achieving exact conservation: after n ∼ 10:

Find x = (xK ,M

)K ,M such that:

((1 + xK ,M

)V(n)

K ,M)K ,M exactly satisfies the global and

local mass balance equations,

0 ≤ 1 + xK ,M≤ 2,

|x|2 is minimal.

Then, use VK ,M

= (1 +xK ,M

)V(n)

K ,Mas porous volumes of cell

intersections.

I (xK ,M

)K ,M are ]cells× ]cells unknowns, but the actual

minimisation problem is much smaller (only a few V(n)

K ,Mare

non-zero).

J. Droniou (Monash University)

Page 38: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Second adjustment: redistributions

Achieving exact conservation: after n ∼ 10:

Find x = (xK ,M

)K ,M such that:

((1 + xK ,M

)V(n)

K ,M)K ,M exactly satisfies the global and

local mass balance equations,

0 ≤ 1 + xK ,M≤ 2,

|x|2 is minimal.

Then, use VK ,M

= (1 +xK ,M

)V(n)

K ,Mas porous volumes of cell

intersections.

I (xK ,M

)K ,M are ]cells× ]cells unknowns, but the actual

minimisation problem is much smaller (only a few V(n)

K ,Mare

non-zero).

J. Droniou (Monash University)

Page 39: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Plan

1 The problem: numerical methods with inexact calculations

2 B-char method: cheap, and perfectly mass conservative

3 Numerical tests2D tests3D tests

J. Droniou (Monash University)

Page 40: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Plan

1 The problem: numerical methods with inexact calculations

2 B-char method: cheap, and perfectly mass conservative

3 Numerical tests2D tests3D tests

J. Droniou (Monash University)

Page 41: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Comparison with “polygonal” ELLAM: translation

I “Polygonal” ELLAM: classical approach, computing K andintersection M ∩ K .I B-char: 4 balls in each cell.

Test case: Ω = (0, 1)2, cini = 1 on ( 116 ,

516 )× ( 1

16 ,5

16 ), velocityu = ( 1

16 , 0), final time T = 8.

J. Droniou (Monash University)

Page 42: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Comparison with “polygonal” ELLAM: translation

I “Polygonal” ELLAM: classical approach, computing K andintersection M ∩ K .I B-char: 4 balls in each cell.

Test case: Ω = (0, 1)2, cini = 1 on ( 116 ,

516 )× ( 1

16 ,5

16 ), velocityu = ( 1

16 , 0), final time T = 8.

Figure: 16×16 grid, δt = 0.8 (left: polygonal; right: B-char).

J. Droniou (Monash University)

Page 43: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Comparison with “polygonal” ELLAM: translation

I “Polygonal” ELLAM: classical approach, computing K andintersection M ∩ K .I B-char: 4 balls in each cell.

Test case: Ω = (0, 1)2, cini = 1 on ( 116 ,

516 )× ( 1

16 ,5

16 ), velocityu = ( 1

16 , 0), final time T = 8.

Figure: 32×32 grid, δt = 0.4 (left: polygonal; right: B-char).

J. Droniou (Monash University)

Page 44: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Comparison with “polygonal” ELLAM: translation

I “Polygonal” ELLAM: classical approach, computing K andintersection M ∩ K .I B-char: 4 balls in each cell.

Test case: Ω = (0, 1)2, cini = 1 on ( 116 ,

516 )× ( 1

16 ,5

16 ), velocityu = ( 1

16 , 0), final time T = 8.

Figure: 64×64 grid, δt = 0.2 (left: polygonal; right: B-char).

J. Droniou (Monash University)

Page 45: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Comparison with “polygonal” ELLAM: translation

I “Polygonal” ELLAM: classical approach, computing K andintersection M ∩ K .I B-char: 4 balls in each cell.

Test case: Ω = (0, 1)2, cini = 1 on ( 116 ,

516 )× ( 1

16 ,5

16 ), velocityu = ( 1

16 , 0), final time T = 8.

Polygonal B-char

Mesh δt CPU (1 step) L2 error CPU (1 step) L2 error

16× 16 0.8 0.5s 3.7e-01 0.1s 3.8e-01

32× 32 0.4 6.5s 3.2e-01 0.4s 3.3e-01

64× 64 0.2 97.4s 2.7e-01 3.5s 2.9e-01

Table: CPU runtime and errors

J. Droniou (Monash University)

Page 46: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Comparison with “polygonal” ELLAM: rotation

Test case: Ω = (0, 1)2, cini = 1 on disc of center ( 14 ,

34 ) and

radius 18 , final time T = 8. Streamlines of velocity:

Figure: Streamlines of the velocity fieldu = ((1− 2y)(x − x2),−(1− 2x)(y − y2)).

J. Droniou (Monash University)

Page 47: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Comparison with “polygonal” ELLAM: rotation

Test case: Ω = (0, 1)2, cini = 1 on disc of center ( 14 ,

34 ) and

radius 18 , final time T = 8.

Figure: Initial condition (left), final solution (right).

J. Droniou (Monash University)

Page 48: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Comparison with “polygonal” ELLAM: rotation

Results:

Figure: 16×16 grid, δt = 0.8 (left: polygonal; right: B-char).

J. Droniou (Monash University)

Page 49: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Comparison with “polygonal” ELLAM: rotation

Results:

Figure: 32×32 grid, δt = 0.4 (left: polygonal; right: B-char).

J. Droniou (Monash University)

Page 50: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Comparison with “polygonal” ELLAM: rotation

Results:

Figure: 64×64 grid, δt = 0.2 (left: polygonal; right: B-char).

J. Droniou (Monash University)

Page 51: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Comparison with “polygonal” ELLAM: rotation

Results:

Polygonal B-char

Mesh δt CPU (1 step) L2 error CPU (1 step) L2 error

16× 16 0.8 2.7s 5.1e-01 0.2s 5.1e-01

32× 32 0.4 43s 4.2e-01 1.3s 4.1e-01

64× 64 0.2 701s 3.6e-01 14.5s 3.6e-01

Table: CPU runtime and errors

J. Droniou (Monash University)

Page 52: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Solid body rotation

Velocity: simple rotation around the center of Ω = (0, 1)2.

Figure: Solid body rotation on a 128×128 mesh (left: initial condition;right: numerical solution at T = 2π).

I Underlying ELLAM discretisation allows for larger time stepsδt = 2π

10 (in literature, usually, δt ≤ 2π810 ).

J. Droniou (Monash University)

Page 53: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Deformational flow

Velocity: velocity reverses at half-time T/2:

u = (sin2(πx) sin(2πy) cos(πt/T ),− sin2(πy) sin(2πx) cos(πt/T )).

J. Droniou (Monash University)

Page 54: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Deformational flow

Results:

Figure: 64× 64 mesh, δt = 0.5 (left: initial condition; right: numericalsolution at T = 5).

J. Droniou (Monash University)

Page 55: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Deformational flow

Results:

Figure: 128× 128 mesh, δt = 0.25 (left: initial condition; right:numerical solution at T = 5).

J. Droniou (Monash University)

Page 56: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Deformational flow

Results:

Figure: At halftime T = 2.5 (left: 64× 64 cells; right: 128× 128 cells).

J. Droniou (Monash University)

Page 57: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Plan

1 The problem: numerical methods with inexact calculations

2 B-char method: cheap, and perfectly mass conservative

3 Numerical tests2D tests3D tests

J. Droniou (Monash University)

Page 58: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Setting

I Ω = (0, 1)3, T = 8.

I B-char with 8 balls per cell, 163 mesh, δt = 0.8.

I 3 test cases:

1. Piecewise constant cini in cube, velocity: translation in x .

2. Piecewise constant cini in cylinder, velocity: rotation &stretching in (x , y), translation in z .

3. Continuous bump cinit, same velocity as in 2.

J. Droniou (Monash University)

Page 59: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Results

Test case δt CPU time L1 error L2 error(one time step)

1 0.8 37.2s 4.8e-01 4.1e-01

2 0.8 63.5s 9.6e-01 6.2e-01

3 0.8 63.2s 2.4e-01 2.4e-01

Table: CPU runtime and errors in 3D.

J. Droniou (Monash University)

Page 60: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Bibliography

Main paper:H. M. Cheng and J. Droniou, “An efficient implementation of mass conservingcharacteristic-based schemes in 2D and 3D”. To appear in SIAM J. Sci. Comput.

Other references:M. A. Celia, T. F. Russell, I. Herrera, and R. E. Ewing. “An Eulerian-Lagrangianlocalized adjoint method for the advection-diffusion equation”. Adv. Water Resources,13(4):187–206, 1990.

T. Arbogast and C. Huang. “A fully mass and volume conserving implementation of acharacteristic method for transport problems”. SIAM J. on Sci. Comput.,28(6):2001–2022, 2006.

T. Arbogast and C.-S. Huang. “A fully conservative Eulerian-Lagrangian method for aconvection-diffusion problem in a solenoidal field”. J. Comput. Phys.,229(9):3415–3427, 2010.

H. M. Cheng, J. Droniou, and K.-N. Le. “Convergence analysis of a family of ELLAMschemes for a fully coupled model of miscible displacement in porous media”. Numer.Math., 141(2):353–397, 2019.

H. M. Cheng, J. Droniou, and K.-N. Le. “A combined GDM–ELLAM–MMOC schemefor advection dominated PDEs”. https://arxiv.org/abs/1805.05585, 35p, 2018.

M. D’Elia, D. Ridzal, K. J. Peterson, P. Bochev, and M. Shashkov.“Optimization-based mesh correction with volume and convexity constraints”. J.Comput. Phys., 313:455–477, 2016.

J. Droniou (Monash University)

Page 61: B-char: an efficient (and feasible!) approach for mass ...users.monash.edu/~jdroniou/presentations/mwndea-2020.pdf · ˚= jKj (local): IIssue: we only compute Kb, and jM \Kbj ˚ˇjM

Thanks.

J. Droniou (Monash University)