14.07.2014 Views

Adaptive Discontinuous Galerkin Finite Element Method

Adaptive Discontinuous Galerkin Finite Element Method

Adaptive Discontinuous Galerkin Finite Element Method

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong><br />

<strong>Method</strong><br />

Haihang You<br />

April 24, 2009<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

BUILT FOR SPEED<br />

A FORCE<br />

Introduction<br />

◮ <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

was introduced in early<br />

1940’s to obtain the<br />

numerical solution of<br />

problems in civil and<br />

aeronautical engineering.<br />

◮ The FEM has a prominent<br />

position among Numerical<br />

<strong>Method</strong>s for solving<br />

PDEs(Wikipedia).<br />

1.5<br />

1<br />

0.5<br />

0<br />

−0.5<br />

−1<br />

−1.5<br />

1<br />

0.5<br />

0<br />

0<br />

0.2<br />

0.4<br />

0.6<br />

0.8<br />

1<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

BUILT FOR SPEED<br />

A FORCE<br />

The North American Eagle on a 2007 test run in the desert at Black Rock, Nev., where next year Ed Shadle and<br />

his team will try to set a land speed record of about 800 m.p.h.<br />

By GUY GUGLIOTTA on New York Times<br />

Published: April 20, 2009<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

BUILT FOR SPEED<br />

A FORCE<br />

A computational fluid dynamics study showing the flow of air around the vehicle. The orange areas indicate where<br />

air is approaching the speed of sound. Blue is decelerated flow.<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Poisson’s Equation<br />

Variational Formulation<br />

Variational Formulation Cont.<br />

Standard <strong>Galerkin</strong> <strong>Method</strong><br />

Basis Function<br />

Stiffness Matrix<br />

<strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Method</strong><br />

DG Formulation<br />

Poisson’s Equation<br />

− ∇ 2 u = f in Ω (1)<br />

u = g D on Γ D (2)<br />

∇u · n = g N on Γ N . (3)<br />

◮ Ω ⊂ R d , d = 2, 3<br />

◮ g D denotes Dirichlet boundary condition<br />

◮ g N denotes Neumann boundary condition<br />

◮ boundary ∂Ω = Γ D ∪ Γ N<br />

◮ n is the unit outward normal vector of ∂Ω<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Variational Formulation<br />

Poisson’s Equation<br />

Variational Formulation<br />

Variational Formulation Cont.<br />

Standard <strong>Galerkin</strong> <strong>Method</strong><br />

Basis Function<br />

Stiffness Matrix<br />

<strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Method</strong><br />

DG Formulation<br />

◮ V = {v ∈ H 1 (Ω)}<br />

◮ − ∫ Ω (∇2 u)vdx = ∫ Ω fvdx<br />

∀v ∈ V<br />

◮ − ∫ Ω (∇2 u)vdx = ∫ Ω ∇u · ∇vdx − ∫ ∂Ω<br />

∂u<br />

∂n vdx<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Variational Formulation Cont.<br />

Poisson’s Equation<br />

Variational Formulation<br />

Variational Formulation Cont.<br />

Standard <strong>Galerkin</strong> <strong>Method</strong><br />

Basis Function<br />

Stiffness Matrix<br />

<strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Method</strong><br />

DG Formulation<br />

Let u be the solution of Eq(1), then u is also the solution of<br />

following variational problem: Find u ∈ V such that<br />

a(u, v) = (f , v) ∀v ∈ V (4)<br />

where<br />

a(u, v) =<br />

(f , v) =<br />

∫<br />

∫<br />

Ω<br />

Ω<br />

∇u · ∇vdx (5)<br />

∫<br />

fvdx +<br />

∂u<br />

vdx<br />

∂n<br />

(6)<br />

∂Ω<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Poisson’s Equation<br />

Variational Formulation<br />

Variational Formulation Cont.<br />

Standard <strong>Galerkin</strong> <strong>Method</strong><br />

Basis Function<br />

Stiffness Matrix<br />

<strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Method</strong><br />

DG Formulation<br />

Standard <strong>Galerkin</strong> <strong>Method</strong><br />

Find u h ∈ V r h<br />

such that<br />

a(u h , v h ) = (f , v h ) ∀v h ∈ V r h (7)<br />

where<br />

V r h = Π K∈T h<br />

P r−1 (K), r ≥ 2<br />

◮ P r−1 (K) is the space of polynomials of total degree r − 1.<br />

◮ T h = {K i : i = 1, 2, ...,m h }.<br />

◮ Ω = ∪ K∈Th K = K 1 ∪ K 2 ∪ ... ∪ K mh .<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Poisson’s Equation<br />

Variational Formulation<br />

Variational Formulation Cont.<br />

Standard <strong>Galerkin</strong> <strong>Method</strong><br />

Basis Function<br />

Stiffness Matrix<br />

<strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Method</strong><br />

DG Formulation<br />

Basis Function<br />

◮ φ j (x i ) = δ ij =<br />

{ 1 if i = j<br />

0 if i ≠ j<br />

0<br />

−1<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

0<br />

1<br />

1<br />

◮ u h (x i ) =<br />

N∑<br />

ξ i φ i (x i )<br />

i=1<br />

1<br />

1<br />

0.5<br />

0.8<br />

0.6<br />

0<br />

1<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0.4<br />

0.2<br />

0<br />

0<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Stiffness Matrix<br />

Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Poisson’s Equation<br />

Variational Formulation<br />

Variational Formulation Cont.<br />

Standard <strong>Galerkin</strong> <strong>Method</strong><br />

Basis Function<br />

Stiffness Matrix<br />

<strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Method</strong><br />

DG Formulation<br />

N∑<br />

∫<br />

ξ i<br />

i=1<br />

◮ Aξ = b<br />

Ω<br />

∫<br />

∇φ i · ∇φ j dx =<br />

◮ a ji = a ij = ∫ Ω ∇φ i · ∇φ j dx<br />

◮ b j = ∫ Ω f φ jdx + ∫ ∂Ω<br />

Ω<br />

∂u<br />

∂n · ∇φ jdx<br />

∫<br />

∂u<br />

f φ j dx +<br />

∂Ω ∂n · ∇φ jdx<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

<strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Method</strong><br />

Poisson’s Equation<br />

Variational Formulation<br />

Variational Formulation Cont.<br />

Standard <strong>Galerkin</strong> <strong>Method</strong><br />

Basis Function<br />

Stiffness Matrix<br />

<strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Method</strong><br />

DG Formulation<br />

a γ h (u,v) = ∑ K∈T h<br />

(∇u, ∇v) K (8)<br />

− ∑ e∈E I h<br />

[<br />

〈{∂ n u} ,[v]〉 e<br />

+ 〈{∂ n v} ,[u]〉 e<br />

− γh −1<br />

e 〈[u],[v]〉 e<br />

]<br />

− ∑<br />

e∈E D h<br />

Eh I set of internal edges<br />

Eh B set of boundary edges on Γ D<br />

Eh N set of boundary edges on Γ N<br />

[<br />

〈∂ n u,v〉 e<br />

+ 〈∂ n v,u〉 e<br />

− γh −1<br />

e 〈u,v〉 e<br />

]<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


DG Formulation<br />

Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Poisson’s Equation<br />

Variational Formulation<br />

Variational Formulation Cont.<br />

Standard <strong>Galerkin</strong> <strong>Method</strong><br />

Basis Function<br />

Stiffness Matrix<br />

<strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Method</strong><br />

DG Formulation<br />

Find u h ∈ V r h<br />

such that<br />

where<br />

F(v h ) = (f ,v h ) − ∑<br />

a γ h (uγ h ,v h) = F(v h ) ∀v h ∈ V r h (9)<br />

e∈E D h<br />

〈<br />

gD ,∂ n v h − γh −1<br />

e v h<br />

〉<br />

e + ∑<br />

e∈E N h<br />

〈g N ,v h 〉 e<br />

and<br />

V r h = Π K∈Th P r−1 (K), r ≥ 2<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Additive Schwarz Preconditioner<br />

Embeding and Projection Operators<br />

Performance of Conjugate Gradient <strong>Method</strong><br />

Performance of Preconditioned Conjugate Gradient <strong>Method</strong><br />

Preconditioning and Iterative Solver<br />

◮<br />

Ax = b<br />

where A is Symmetric Positive Definite. For practical problems, the matrix is sufficiently large to require<br />

iterative methods such as Conjugate Gradient method(CG). However,<br />

κ = cond(A) ≈ O(h −2<br />

min )<br />

where h is the diameter of the smallest triangle of the mesh.<br />

◮ The convergence rate for CG is close to 1 as K is big,so number of iterations grows as size of A grows.<br />

√ κ − 1<br />

‖e m ‖ A ≤ 2( √ ) m ‖e 0 ‖ A κ + 1<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Additive Schwarz Preconditioner<br />

Embeding and Projection Operators<br />

Performance of Conjugate Gradient <strong>Method</strong><br />

Performance of Preconditioned Conjugate Gradient <strong>Method</strong><br />

◮ T s ⊆ T H ⊆ T h , where T s is union of T H , and T H is<br />

union of T h .<br />

◮ Define additive Schwarz preconditioner as:<br />

P = R T 0 A −1<br />

0 R 0 + (R T 1 A −1<br />

1 R 1 + · · · R T n A −1<br />

n R n ) (10)<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Additive Schwarz Preconditioner<br />

Embeding and Projection Operators<br />

Performance of Conjugate Gradient <strong>Method</strong><br />

Performance of Preconditioned Conjugate Gradient <strong>Method</strong><br />

(EH h) dg<br />

V dg<br />

h<br />

↑↓ (Ph H) dg<br />

(EH H) cg<br />

V dg<br />

H<br />

↑↓<br />

V cg<br />

H<br />

(PH H) cg<br />

◮ (Ph H) dg = (EH h) T<br />

dg<br />

◮ (PH H) cg = (EH H) T<br />

cg<br />

◮ V dg<br />

h<br />

◮ V dg<br />

H<br />

◮ V cg<br />

H<br />

represents DG function space on fine mesh.<br />

represents DG function space on coarse mesh.<br />

represents CG function space on coarse mesh.<br />

R 0 = (P H H ) cg (P H h ) dg<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Additive Schwarz Preconditioner<br />

Embeding and Projection Operators<br />

Performance of Conjugate Gradient <strong>Method</strong><br />

Performance of Preconditioned Conjugate Gradient <strong>Method</strong><br />

Performance of Conjugate Gradient <strong>Method</strong>(Time) -- Core 2 duo(2.66 GHz)<br />

Performance of Conjugate Gradient <strong>Method</strong>(Iters) -- Core 2 duo(2.66 GHz)<br />

4.1e+03<br />

Time<br />

8192<br />

Iters<br />

1.0e+03<br />

4096<br />

2.6e+02<br />

6.4e+01<br />

2048<br />

1.6e+01<br />

1024<br />

Time<br />

4.0e+00<br />

1.0e+00<br />

2.5e-01<br />

Iters<br />

512<br />

256<br />

6.2e-02<br />

1.6e-02<br />

3.9e-03<br />

128<br />

64<br />

9.8e-04<br />

1 2 3 4 5 6 7 8<br />

Level<br />

32<br />

1 2 3 4 5 6 7 8<br />

Level<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Additive Schwarz Preconditioner<br />

Embeding and Projection Operators<br />

Performance of Conjugate Gradient <strong>Method</strong><br />

Performance of Preconditioned Conjugate Gradient <strong>Method</strong><br />

Performance of Preconditioned Conjugate Gradient <strong>Method</strong>(Time) -- Core 2 duo(2.66 GHz)<br />

Performance of Preconditioned Conjugate Gradient <strong>Method</strong>(Iters) -- Core 2 duo(2.66 GHz)<br />

2048<br />

1024<br />

DG-cgSV<br />

DG-DG-pcgSV<br />

DG-CG-pcgSV<br />

8192<br />

4096<br />

DG-cgSV<br />

DG-DG-pcgSV<br />

DG-CG-pcgSV<br />

512<br />

2048<br />

256<br />

1024<br />

Time<br />

128<br />

Iters<br />

512<br />

64<br />

256<br />

32<br />

128<br />

16<br />

64<br />

8<br />

6 6.5 7 7.5 8<br />

32<br />

6 6.5 7 7.5 8<br />

Level<br />

Level<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

A Posteriori Estimator<br />

<strong>Adaptive</strong> Algorithm<br />

Refinement Algorithm<br />

Application<br />

<strong>Adaptive</strong> Algorithm<br />

An adaptive algorithm is an iterative method consisting of cycles of<br />

the form: Solve⇒Estimate⇒Refine<br />

1. Given a mesh T H , compute solution u H<br />

2. Estimate the error of u H .<br />

3. If: error ≤ specified tolerance, STOP.<br />

else: refine mesh to new mesh T h<br />

4. go to step 1).<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

A Posteriori Estimator<br />

<strong>Adaptive</strong> Algorithm<br />

Refinement Algorithm<br />

Application<br />

Refinement Algorithm<br />

An refinement algorithm is an method to choose certain elements<br />

for the refinement:<br />

1. Given a mesh T H , compute solution u H<br />

2. Estimate the error of u H .<br />

3. Sort each element by its error, and predict refinement levels to<br />

achieve the torlance.<br />

4. Refine chosen elements accordingly to new mesh T h .<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

A Posteriori Estimator<br />

<strong>Adaptive</strong> Algorithm<br />

Refinement Algorithm<br />

Application<br />

Application<br />

{<br />

−∇ 2 u = 0<br />

u = r 2/3 sin(2/3θ)<br />

in Ω<br />

on ∂Ω<br />

0.3<br />

Residual Error<br />

drastic cutting<br />

theta=0.6<br />

0.25<br />

0.2<br />

Error<br />

0.15<br />

0.1<br />

0.05<br />

0<br />

0 5 10 15 20 25<br />

aIters<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>


Introduction<br />

Mathematical Description<br />

Preconditioning and Iterative Solver<br />

<strong>Adaptive</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong><br />

Thank You!<br />

Haihang You<br />

<strong>Adaptive</strong> <strong>Discontinuous</strong> <strong>Galerkin</strong> <strong>Finite</strong> <strong>Element</strong> <strong>Method</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!