Convection dominated flows

Cette partie est en anglais et nécessite d’être traduite.

Let ΩRd,d=1,2,3, consider this equation defined in Ω, find u a scalar field (e.g. temperature or concentration) such that

uttime(ϵu)diffusion+βuadvection/convection+μureaction=fsource,β=0

with the given data

  • ϵ is the diffusion coefficient (matrix d×d), ϵ(x)>0

  • β velocity and βL2(Ω)

  • μ>0 reaction (or absorption) coefficient.

From now on we consider only steady problems (ut=0)

1. Applications

  • Transport of temperature

  • Transport of pollutants

  • Transport of chemical species (O2,CO2,...)

These equations are often coupled with fluid flow equations such as incompressible Navier-Stokes equations (air, blood, water…​) or darcy equations (porous media) to obtain the velocity field β. In this lesson we consider β given.

2. Boundary conditions

Boundary conditions can be of 2 types on parts of the boundary or the whole boundary of the domain Ω:

  • Dirichlet conditions : u|ΩD=g

  • Neumann conditions :

    • Outflow (ϵu+βu)n|ΩN=(βu)n

    • (Heat) Flux (ϵu)n|ΩN=Q(e.g.β=0)

3. Variational Formulation

The variational problem reads, Find uV such that for all v inV

a(u,v)Ωϵuv+(βu)v+Ω(ϵu)n vapply boundary conditions=Ωfv(v)

where

  • V is an Hilbert space

  • we used the identity below for the integration by part

(cw)=cw+wc=0
  • Suppose that 12(β)+μ0 almost everywhere in Ω then we can show that a is coercive provide ϵϵ0>0

a(v,v)α||v||1,Ω,α=ϵ01+C2Ω
  • a is continuous, there exists M a constant such that

|a(u,v)|≤<M||u||H1(Ω)||v||H1(Ω),M=||μ||0,Ω+||ϵ||,Ω+||β||,Ω

4. Discrete formulation

Let VhVH1(Ω) a discrete space, consider the standard Galerkin approximation on Vh for . The problem reads

Problem

Find uhVh such that for all vhVh we have:

Ωϵuhvh+(βuh)vh+Ω(ϵuh)n vhapply boundary conditions=Ωfvh

We can show that

||uh||1,Ω1α||f||0,Ω,||uh||1,ΩCΩϵ0||f||0,Ω,

which means that the Galerkin error inequality (best approximation) gives

||uuh||VMαinfvhVh||uvh||V

which means that given M and α, the estimate ϵ00 In such case, the standard Galerkin method can yield to inaccurate solutions unless:

  • we use a very small h (cost!!)

  • we use a stabilisation method (loss of 12 in convergence rate)

5. Stabilisation methods for convection dominated flows

We now introduce

  • Pe=|β|L2ϵ the global number. L is the characteristic size of the domain.

  • the local Péclet number Peh=|β|h2ϵ

The dominating convection and inacurrate behavior occurs when, on at least some cells, Pe>1 or Peh>1.

A remedy is to use a sufficiently small h same to ensure Peh<1. For example if |beta|=1 and ϵ=5e4, we should take h=1e4.
Another remedy is to use a different approximation space for the unknown uh and the test functions vh. We talk about Petrov-Galerkin approximation.
Problem

Find uhVh such that

ah(uh,vh)=h(vh),vhVh

with

ah(uh,vh)=a(uh,vh)+bh(uh,vh),h(vh)=(vh)+gh(vh),
The purpose of bh and gh is to eliminate(or reduce) the numerical oscillations produced by the standard Galerkin method: they are called stabilisation methods and depend on h. The term stabilisation method is not exact. Indeed the Galerkin method is already stable (i.e. continuity). Here it is to be understood as the aim of reducing (or elimination) numerical oscillations when Pe>1.

Without doing anything wiggles occur.

There are remedies so called stabilisation techniques, here some some examples:

  • Artificial diffusion (streamline diffusion) (SDFEM)

  • Galerkin Least Squares method (GaLS)

  • Streamline Upwind Petrov Galerkin (SUPG)

  • Continuous Interior Penalty methods (CIP)

5.1. Artificial diffusion (or streamline diffusion) (SDFEM)

Method The method consists in adding an

ϵh=ϵ(1+ϕ(Pe))

with ϕ(Pe)0 as h0, e.g. ϕ(Pe)=Pe1+B(2Pe) where B is the so-called Bernoulli function B(t)=tet1 if t>0 and B(0)=1 (also exponential fitting scheme)

bh(uh,vh)=ΩϵΦ(Pe)uhvh,gh(vh)=0
Theorem

for a given ϵ and for h tending to 0, we have for uHr+1(Ω)

||uuh||1,ΩC1[hr||u||r+1,Ω+ϕ(Pe)||u||1,Ω]

and for a given h and ϵ tending to 0,

||uuh||1,ΩC1[hr1||u||r+1,Ω+||u||1,Ω]

If ϕ(Pe)=|β|h2ϵ, the convergence is linear, with the exponential fitting scheme it is quadratic if r2.

5.2. GaLS and SUPG

First we decompose our operators into a symmetric (<Lu,v>=<u,Lv> and skew symmetric (<Lu,v>=<u,Lv>) contributions, we start with

Lu=ϵΔu+(βu)+μu
Lu=ϵΔu+[μ+12β]uLSu+12[(βu)+βu]LSSu
Consistent schemes

We say that a method is consistent when adding a term to a problem such as: Find uhVh such that

a(uh,vh)+Lh(uh,f;vh)=(f,vh),vhVh

the term added statisfies

Lh(u,f;vh)=0,vhVh

5.2.1. Choice for consistent methods

A possible choice for Lh is the following

Lh(uh,f;vh)=L(ρ)h(uh,f;vh)=KThδ(Luhf,S(ρ)K(vh))0,Ω

where

  • (,)0,Ω is the L2 scalar product

  • ρ and δ are parameters

and we have set

S(ρ)K(vh)=hK|β|[LSSvh+ρLSvh]
Galerkin Least-Square

if ρ=1 we have the Galerkin Least Square method (GaLS)

S(ρ)K(vh)=hK|β|[Lvh]
Streamline Upwind Petrov-Galerkin

if ρ=0 we have the Streamline Upwind Petrov-Galerkin (SUPG)

S(0)K(vh)=hK|β|[LSSvh]
Douglas and Wang

if ρ=1 we have the Douglas and Wang (DW)

S(1)K(vh)=hK|β|[(LSSLS)vh]

We define the ρ Norm

||v||(ρ)={ϵ||u||20,Ω+||γv||20,Ω+KThδ((LSS+ρLS)v,S(ρ)K(v))0,Ω}1/2

where γ is a positive constant such that 12β+μγ>0

We have the following result

Theorem

if uHk+1(Ω), then the following error estimates hold:

GaLS

In practice for GaLS (\rho = 1) we take \delta such that

\delta(h_K,\epsilon) \frac{h_K}{|\mathbf{ \beta}|} = \Big( \frac{1}{h_K} + \frac{\epsilon}{h^2_K} \Big)^{-1}

and we can prove the following estimates if u\in H^{k+1}(\Omega),

\forall \epsilon \quad {\|u-u_h\|_{0,\Omega}} \leq c {h^{k+1/2}} \|u\|_{k+1,\Omega}
\forall \epsilon \geq c h \quad {\|u-u_h\|_{1,\Omega}} \leq c {h^{k}} \|u\|_{k+1,\Omega}

and finally if the family \{\mathcal{T}_h\}_{h > 0} is quasi-uniform and \epsilon \leq c h , then

\| \beta \cdot \nabla (u -u_h) \|_{0,\Omega} \leq c h^k \|u \|_{k+1,\Omega}

5.3. Continuous Interior Penalty

In the continuous interior penalty we add the following term

\sum_{F \in \Gamma_\mathrm{int} } \int_{F} \eta\ h_F^2\ |\mathbf{ \beta} \cdot \mathbf{n}|\ \jump{\nabla u} \jump{\nabla v}

where

  • \Gamma_\mathrm{int} is the set of internal faces

  • the \mathrm{Pe}>>1 (typically it is applied to all internal faces)

  • we have

\jump{\nabla u} = \nabla u \cdot \mathbf{n}|_1 + \nabla u \cdot \mathbf{n}|_2

is the so called jump of \nabla u(scalar valued) across the face.

In the case of scalar valued functions

\jump{u} = u \mathbf{n}|_1 + u \mathbf{n}|_2

Choice for \eta \eta can be taken in the range [1e-2;1e-1]. A typical value is \eta=2.5e-2. A similar error estimate O(h^{r+1/2}) holds for CIP.

Example CIP

// define the stabilisation coefficient expression
auto stab_coeff = (eta*abs(idv(beta))*abs(trans(N())*idv(beta)))*vf::pow(hFace(),2.0));

// assemble the stabilisation operator
form2( Xh, Xh, M ) +=
 integrate( internalfaces(Xh->mesh()), // faces of the mesh
            stab_coeff*(trans(jumpt(gradt(u)))*jump(grad(v))));
cpp