89
Abstract “Enhancing iterative solution methods for general FEM computations using rigid body modes.” Alex Sangers - June 27, 2014 at 15:30 in EEMCS LB 01.010 Diana is a general finite element software package that can be used to analyze a wide range of problems arising in Civil engineering. The solution of one or more systems of linear equations is a computational intensive part of a finite element analysis. Iterative solvers have proved to be efficient for solving these systems of equations. However, the convergence of iterative solvers stagnates if there are large stiffness jumps in the underlying model. The considered remedy is based on the approximate rigid body modes of the model. To identify the approximate rigid body modes in a finite element application we propose a generally applicable method based on element stiffness matrices. These rigid body modes can be used for deflation and coarse grid correction.

Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Abstract

“Enhancing iterative solution methods for general FEMcomputations using rigid body modes.”

Alex Sangers - June 27, 2014 at 15:30 in EEMCS LB 01.010

Diana is a general finite element software package that can be used toanalyze a wide range of problems arising in Civil engineering. The solutionof one or more systems of linear equations is a computational intensivepart of a finite element analysis.

Iterative solvers have proved to be efficient for solving these systems ofequations. However, the convergence of iterative solvers stagnates if thereare large stiffness jumps in the underlying model.

The considered remedy is based on the approximate rigid body modes ofthe model. To identify the approximate rigid body modes in a finiteelement application we propose a generally applicable method based onelement stiffness matrices. These rigid body modes can be used fordeflation and coarse grid correction.

Page 2: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Enhancing iterative solvers in DianaEnhancing iterative solution methods for general FEM

computations using rigid body modes.

Alex Sangers

Delft Institute of Applied MathematicsTNO DIANA

June 27, 2014

Enhancing iterative solvers in Diana June 27, 2014

2

Page 3: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Content

Finite element analysis at DIANA

Motivation

Iterative solvers

Approximate rigid bodies

Applying rigid body modes

Domain decomposition

Results

Conclusions

Enhancing iterative solvers in Diana June 27, 2014

3

Page 4: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite element analysis

1. Real-life application

2. Model with elements

3. Assign properties

4. Analysis

Enhancing iterative solvers in Diana June 27, 2014

4

Page 5: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite element analysis

1. Real-life application

2. Model with elements

3. Assign properties

4. Analysis

Enhancing iterative solvers in Diana June 27, 2014

4

Page 6: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite element analysis

1. Real-life application

2. Model with elements

3. Assign properties

4. Analysis

Enhancing iterative solvers in Diana June 27, 2014

4

Page 7: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite element analysis

1. Real-life application

2. Model with elements

3. Assign properties

4. Analysis

Enhancing iterative solvers in Diana June 27, 2014

4

Page 8: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite elements applications

I Structures

I Geomechanics

I Dams and dikes

I Tunneling

I Oil and gas industry

Enhancing iterative solvers in Diana June 27, 2014

5

Page 9: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite elements applications

I Structures

I Geomechanics

I Dams and dikes

I Tunneling

I Oil and gas industry

Enhancing iterative solvers in Diana June 27, 2014

5

Page 10: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite elements applications

I Structures

I Geomechanics

I Dams and dikes

I Tunneling

I Oil and gas industry

Enhancing iterative solvers in Diana June 27, 2014

5

Page 11: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite elements applications

I Structures

I Geomechanics

I Dams and dikes

I Tunneling

I Oil and gas industry

Enhancing iterative solvers in Diana June 27, 2014

5

Page 12: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite elements applications

I Structures

I Geomechanics

I Dams and dikes

I Tunneling

I Oil and gas industry

Enhancing iterative solvers in Diana June 27, 2014

5

Page 13: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

One-dimensional Poisson problem

A 1D problem consisting of soft clay and granite:

− d

dx

(cdu

dx

)= f, x ∈ (0, 20)

u = 0, x ∈ 0, 20.

Enhancing iterative solvers in Diana June 27, 2014

6

Page 14: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

One-dimensional Poisson problem

A 1D problem consisting of soft clay and granite:

− d

dx

(cdu

dx

)= f, x ∈ (0, 20)

u = 0, x ∈ 0, 20.

Enhancing iterative solvers in Diana June 27, 2014

6

Page 15: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite elements for Poisson problem

1. Mesh the model into 40 equal-sized elements

2. Compute each element stiffness matrix and vector:

Kem =

(c(xm) −c(xm+1)−c(xm) c(xm+1)

), fem =

(f(xm)f(xm+1)

).

Jumps in c(x20) and c(x25).

3. Assemble the stiffness matrix and vector:

K =⋃40

m=1Kem , f =

⋃40m=1 f

em .

4. Solve Ku = f .

Enhancing iterative solvers in Diana June 27, 2014

7

Page 16: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite elements for Poisson problem

1. Mesh the model into 40 equal-sized elements

2. Compute each element stiffness matrix and vector:

Kem =

(c(xm) −c(xm+1)−c(xm) c(xm+1)

), fem =

(f(xm)f(xm+1)

).

Jumps in c(x20) and c(x25).

3. Assemble the stiffness matrix and vector:

K =⋃40

m=1Kem , f =

⋃40m=1 f

em .

4. Solve Ku = f .

Enhancing iterative solvers in Diana June 27, 2014

7

Page 17: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite elements for Poisson problem

1. Mesh the model into 40 equal-sized elements

2. Compute each element stiffness matrix and vector:

Kem =

(c(xm) −c(xm+1)−c(xm) c(xm+1)

), fem =

(f(xm)f(xm+1)

).

Jumps in c(x20) and c(x25).

3. Assemble the stiffness matrix and vector:

K =⋃40

m=1Kem , f =

⋃40m=1 f

em .

4. Solve Ku = f .

Enhancing iterative solvers in Diana June 27, 2014

7

Page 18: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Finite elements for Poisson problem

1. Mesh the model into 40 equal-sized elements

2. Compute each element stiffness matrix and vector:

Kem =

(c(xm) −c(xm+1)−c(xm) c(xm+1)

), fem =

(f(xm)f(xm+1)

).

Jumps in c(x20) and c(x25).

3. Assemble the stiffness matrix and vector:

K =⋃40

m=1Kem , f =

⋃40m=1 f

em .

4. Solve Ku = f .

Enhancing iterative solvers in Diana June 27, 2014

7

Page 19: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Iterative solvers

Solve Ku = f step by step.

I Popular algorithms:

I Conjugate Gradient (CG) for symmetric K

I Restarted GMRES (GMRES(s)) for non-symmetric K

I Convergence speed depends on eigensystem of KI Clustered eigenvalues ⇒ fast convergence

I Preconditioning may improve convergence

I P−1Ku = P−1f

I P ≈ KI Px = y is easy to solve

Enhancing iterative solvers in Diana June 27, 2014

8

Page 20: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Iterative solvers

Solve Ku = f step by step.

I Popular algorithms:

I Conjugate Gradient (CG) for symmetric K

I Restarted GMRES (GMRES(s)) for non-symmetric K

I Convergence speed depends on eigensystem of KI Clustered eigenvalues ⇒ fast convergence

I Preconditioning may improve convergence

I P−1Ku = P−1f

I P ≈ KI Px = y is easy to solve

Enhancing iterative solvers in Diana June 27, 2014

8

Page 21: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Iterative solvers

Solve Ku = f step by step.

I Popular algorithms:

I Conjugate Gradient (CG) for symmetric K

I Restarted GMRES (GMRES(s)) for non-symmetric K

I Convergence speed depends on eigensystem of KI Clustered eigenvalues ⇒ fast convergence

I Preconditioning may improve convergence

I P−1Ku = P−1f

I P ≈ KI Px = y is easy to solve

Enhancing iterative solvers in Diana June 27, 2014

8

Page 22: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Iterative solvers

Solve Ku = f step by step.

I Popular algorithms:

I Conjugate Gradient (CG) for symmetric K

I Restarted GMRES (GMRES(s)) for non-symmetric K

I Convergence speed depends on eigensystem of KI Clustered eigenvalues ⇒ fast convergence

I Preconditioning may improve convergence

I P−1Ku = P−1f

I P ≈ KI Px = y is easy to solve

Enhancing iterative solvers in Diana June 27, 2014

8

Page 23: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Solving the Poisson problem

Solve the Jacobi preconditioned system:

P−1Ku = P−1f

The convergence of Preconditioned CG depends on λ(P−1K):

Enhancing iterative solvers in Diana June 27, 2014

9

Page 24: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Solving the Poisson problem

Solve the Jacobi preconditioned system:

P−1Ku = P−1f

The convergence of Preconditioned CG:

Enhancing iterative solvers in Diana June 27, 2014

9

Page 25: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Stiffness matrix of Poisson problem

|K| =

Enhancing iterative solvers in Diana June 27, 2014

10

Page 26: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Solving the Poisson problem

Deflation: Apply Π⊥

Enhancing iterative solvers in Diana June 27, 2014

11

Page 27: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Solving the Poisson problem

Deflation: Apply Π⊥

Enhancing iterative solvers in Diana June 27, 2014

11

Page 28: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Solving the deflated Poisson problem

Solve the deflated Jacobi preconditioned system:

P−1Π⊥Ku = P−1Π⊥f

The convergence of Deflated PCG depends on λ(P−1Π⊥K):

Enhancing iterative solvers in Diana June 27, 2014

12

Page 29: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Solving the deflated Poisson problem

Solve the deflated Jacobi preconditioned system:

P−1Π⊥Ku = P−1Π⊥f

The convergence of Deflated PCG:

Enhancing iterative solvers in Diana June 27, 2014

12

Page 30: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Approximate rigid bodies

True rigid bodies

Kx = 0 for some x 6= 0.

Approximate rigid bodies

Represents “weak coupling” in the model.

Enhancing iterative solvers in Diana June 27, 2014

13

Page 31: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Approximate rigid bodies

True rigid bodies

Kx = 0 for some x 6= 0.

Approximate rigid bodies

Represents “weak coupling” in the model.

Enhancing iterative solvers in Diana June 27, 2014

13

Page 32: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Identifying approximate rigid bodies

I Diana is general FE softwareI Wide range of elementsI Wide range of materials

I Element matrices!I Always presentI Fair comparison

1

ntr(Kem) =

1

n

n∑i=1

Kemii

Enhancing iterative solvers in Diana June 27, 2014

14

Page 33: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Identifying approximate rigid bodies

I Diana is general FE softwareI Wide range of elementsI Wide range of materials

I Element matrices!I Always presentI Fair comparison

1

ntr(Kem) =

1

n

n∑i=1

Kemii

Enhancing iterative solvers in Diana June 27, 2014

14

Page 34: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Identifying approximate rigid bodies

I Diana is general FE softwareI Wide range of elementsI Wide range of materials

I Element matrices!I Always presentI Fair comparison

1

ntr(Kem) =

1

n

n∑i=1

Kemii

Enhancing iterative solvers in Diana June 27, 2014

14

Page 35: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coloring algorithm

Consider this two-dimensional finite element mesh

Nonlinear iteration loop

I Reuse the coloring if 1n tr(Kem) changes less than 50%.

Enhancing iterative solvers in Diana June 27, 2014

15

Page 36: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coloring algorithm

Consider this two-dimensional finite element mesh

Nonlinear iteration loop

I Reuse the coloring if 1n tr(Kem) changes less than 50%.

Enhancing iterative solvers in Diana June 27, 2014

15

Page 37: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coloring algorithm

Consider this two-dimensional finite element mesh

Nonlinear iteration loop

I Reuse the coloring if 1n tr(Kem) changes less than 50%.

Enhancing iterative solvers in Diana June 27, 2014

15

Page 38: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coloring algorithm

Consider this two-dimensional finite element mesh

Nonlinear iteration loop

I Reuse the coloring if 1n tr(Kem) changes less than 50%.

Enhancing iterative solvers in Diana June 27, 2014

15

Page 39: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coloring algorithm

Consider this two-dimensional finite element mesh

Nonlinear iteration loop

I Reuse the coloring if 1n tr(Kem) changes less than 50%.

Enhancing iterative solvers in Diana June 27, 2014

15

Page 40: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coloring algorithm

Consider this two-dimensional finite element mesh

Nonlinear iteration loop

I Reuse the coloring if 1n tr(Kem) changes less than 50%.

Enhancing iterative solvers in Diana June 27, 2014

15

Page 41: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coloring algorithm

Consider this two-dimensional finite element mesh

Nonlinear iteration loop

I Reuse the coloring if 1n tr(Kem) changes less than 50%.

Enhancing iterative solvers in Diana June 27, 2014

15

Page 42: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coloring algorithm

Consider this two-dimensional finite element mesh

Nonlinear iteration loop

I Reuse the coloring if 1n tr(Kem) changes less than 50%.

Enhancing iterative solvers in Diana June 27, 2014

15

Page 43: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coloring algorithm

Consider this two-dimensional finite element mesh

Nonlinear iteration loop

I Reuse the coloring if 1n tr(Kem) changes less than 50%.

Enhancing iterative solvers in Diana June 27, 2014

15

Page 44: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coloring algorithm

Consider this two-dimensional finite element mesh

Nonlinear iteration loop

I Reuse the coloring if 1n tr(Kem) changes less than 50%.

Enhancing iterative solvers in Diana June 27, 2014

15

Page 45: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coloring algorithm

Consider this two-dimensional finite element mesh

Nonlinear iteration loop

I Reuse the coloring if 1n tr(Kem) changes less than 50%.

Enhancing iterative solvers in Diana June 27, 2014

15

Page 46: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation

Define

Π∈ = I − Z(ZTKZ)−1ZTK,

Π⊥ = I −KZ(ZTKZ)−1ZT ,

so that Π⊥K = KΠ∈.

Split u by

u = u⊥ + u∈

= (I −Π∈)u+ Π∈u.

First part u⊥: u⊥ = (I −Π∈)u = Z(ZTKZ)−1ZT f.Second part u∈: Ku∈ = KΠ∈u = Π⊥Ku.

⇒ Π⊥Ku = Π⊥f.

Enhancing iterative solvers in Diana June 27, 2014

16

Page 47: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation

Define

Π∈ = I − Z(ZTKZ)−1ZTK,

Π⊥ = I −KZ(ZTKZ)−1ZT ,

so that Π⊥K = KΠ∈.

Split u by

u = u⊥ + u∈

= (I −Π∈)u+ Π∈u.

First part u⊥: u⊥ = (I −Π∈)u = Z(ZTKZ)−1ZT f.Second part u∈: Ku∈ = KΠ∈u = Π⊥Ku.

⇒ Π⊥Ku = Π⊥f.

Enhancing iterative solvers in Diana June 27, 2014

16

Page 48: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation

Define

Π∈ = I − Z(ZTKZ)−1ZTK,

Π⊥ = I −KZ(ZTKZ)−1ZT ,

so that Π⊥K = KΠ∈.

Split u by

u = u⊥ + u∈

= (I −Π∈)u+ Π∈u.

First part u⊥: u⊥ = (I −Π∈)u = Z(ZTKZ)−1ZT f.

Second part u∈: Ku∈ = KΠ∈u = Π⊥Ku.

⇒ Π⊥Ku = Π⊥f.

Enhancing iterative solvers in Diana June 27, 2014

16

Page 49: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation

Define

Π∈ = I − Z(ZTKZ)−1ZTK,

Π⊥ = I −KZ(ZTKZ)−1ZT ,

so that Π⊥K = KΠ∈.

Split u by

u = u⊥ + u∈

= (I −Π∈)u+ Π∈u.

First part u⊥: u⊥ = (I −Π∈)u = Z(ZTKZ)−1ZT f.

Second part u∈: Ku∈ = KΠ∈u = Π⊥Ku.

⇒ Π⊥Ku = Π⊥f.

Enhancing iterative solvers in Diana June 27, 2014

16

Page 50: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation

Define

Π∈ = I − Z(ZTKZ)−1ZTK,

Π⊥ = I −KZ(ZTKZ)−1ZT ,

so that Π⊥K = KΠ∈.

Split u by

u = u⊥ + u∈

= (I −Π∈)u+ Π∈u.

First part u⊥: u⊥ = (I −Π∈)u = Z(ZTKZ)−1ZT f.Second part u∈: Ku∈ = KΠ∈u = Π⊥Ku.

⇒ Π⊥Ku = Π⊥f.

Enhancing iterative solvers in Diana June 27, 2014

16

Page 51: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation

Define

Π∈ = I − Z(ZTKZ)−1ZTK,

Π⊥ = I −KZ(ZTKZ)−1ZT ,

so that Π⊥K = KΠ∈.

Split u by

u = u⊥ + u∈

= (I −Π∈)u+ Π∈u.

First part u⊥: u⊥ = (I −Π∈)u = Z(ZTKZ)−1ZT f.Second part u∈: Ku∈ = KΠ∈u = Π⊥Ku.

⇒ Π⊥Ku = Π⊥f.

Enhancing iterative solvers in Diana June 27, 2014

16

Page 52: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation

Define

Π∈ = I − Z(ZTKZ)−1ZTK,

Π⊥ = I −KZ(ZTKZ)−1ZT ,

so that Π⊥K = KΠ∈.

Split u by

u = u⊥ + u∈

= (I −Π∈)u+ Π∈u.

First part u⊥: u⊥ = (I −Π∈)u = Z(ZTKZ)−1ZT f.Second part u∈: Ku∈ = KΠ∈u = Π⊥Ku.

⇒ Π⊥Ku = Π⊥f.

Enhancing iterative solvers in Diana June 27, 2014

16

Page 53: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coarse grid correction

The coarse grid correction

PC = I + Z(ZTKZ)−1ZT

corrects the solution during the iteration process:

uk+1 = uk + Z(ZTKZ)−1ZT r0.

In two-level Additive Schwarz form (dual preconditioning):

PC,P−1 = P−1 + Z(ZTKZ)−1ZT .

Enhancing iterative solvers in Diana June 27, 2014

17

Page 54: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Coarse grid correction

The coarse grid correction

PC = I + Z(ZTKZ)−1ZT

corrects the solution during the iteration process:

uk+1 = uk + Z(ZTKZ)−1ZT r0.

In two-level Additive Schwarz form (dual preconditioning):

PC,P−1 = P−1 + Z(ZTKZ)−1ZT .

Enhancing iterative solvers in Diana June 27, 2014

17

Page 55: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation vs. coarse grid correction

Define the coarse matrix

E = ZTKZ.

Deflation Coarse grid

correction

Π⊥ = I −KZE−1ZT PC = I + ZE−1ZT

Cost per iteration + +

Parallelizability – +

Effectiveness + –

Numerical sensitivity – +

Note: Z needs to have linearly independent vectors

Enhancing iterative solvers in Diana June 27, 2014

18

Page 56: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation vs. coarse grid correction

Define the coarse matrix

E = ZTKZ.

Deflation Coarse grid

correction

Π⊥ = I −KZE−1ZT PC = I + ZE−1ZT

Cost per iteration + +

Parallelizability – +

Effectiveness + –

Numerical sensitivity – +

Note: Z needs to have linearly independent vectors

Enhancing iterative solvers in Diana June 27, 2014

18

Page 57: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation vs. coarse grid correction

Define the coarse matrix

E = ZTKZ.

Deflation Coarse grid

correction

Π⊥ = I −KZE−1ZT PC = I + ZE−1ZT

Cost per iteration + +

Parallelizability – +

Effectiveness + –

Numerical sensitivity – +

Note: Z needs to have linearly independent vectors

Enhancing iterative solvers in Diana June 27, 2014

18

Page 58: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation vs. coarse grid correction

Define the coarse matrix

E = ZTKZ.

Deflation Coarse grid

correction

Π⊥ = I −KZE−1ZT PC = I + ZE−1ZT

Cost per iteration + +

Parallelizability – +

Effectiveness + –

Numerical sensitivity – +

Note: Z needs to have linearly independent vectors

Enhancing iterative solvers in Diana June 27, 2014

18

Page 59: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation vs. coarse grid correction

Define the coarse matrix

E = ZTKZ.

Deflation Coarse grid

correction

Π⊥ = I −KZE−1ZT PC = I + ZE−1ZT

Cost per iteration + +

Parallelizability – +

Effectiveness + –

Numerical sensitivity – +

Note: Z needs to have linearly independent vectors

Enhancing iterative solvers in Diana June 27, 2014

18

Page 60: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Deflation vs. coarse grid correction

Define the coarse matrix

E = ZTKZ.

Deflation Coarse grid

correction

Π⊥ = I −KZE−1ZT PC = I + ZE−1ZT

Cost per iteration + +

Parallelizability – +

Effectiveness + –

Numerical sensitivity – +

Note: Z needs to have linearly independent vectors

Enhancing iterative solvers in Diana June 27, 2014

18

Page 61: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Domain decomposition

Consider model Ω with two rigid bodies Ωa and Ωb.

Ωb1 = Ωb

2!Linear dependent columns Zb

1 and Zb2!

Enhancing iterative solvers in Diana June 27, 2014

19

Page 62: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Domain decomposition

Consider model Ω with two rigid bodies Ωa and Ωb.

Z =

Za

Zb

Za

Ωb1 = Ωb

2!Linear dependent columns Zb

1 and Zb2!

Enhancing iterative solvers in Diana June 27, 2014

19

Page 63: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Domain decomposition

Consider model Ω with two rigid bodies Ωa and Ωb.

Ωb1 = Ωb

2!Linear dependent columns Zb

1 and Zb2!

Enhancing iterative solvers in Diana June 27, 2014

19

Page 64: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Domain decomposition

Consider model Ω with two rigid bodies Ωa and Ωb.

Ωb1 = Ωb

2!

Linear dependent columns Zb1 and Zb

2!

Enhancing iterative solvers in Diana June 27, 2014

19

Page 65: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Domain decomposition

Consider model Ω with two rigid bodies Ωa and Ωb.

Z =

Z1

Z2

Ωb1 = Ωb

2!

Linear dependent columns Zb1 and Zb

2!

Enhancing iterative solvers in Diana June 27, 2014

19

Page 66: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Domain decomposition

Consider model Ω with two rigid bodies Ωa and Ωb.

Z =

Za1

Za2

Zb1 Zb

2

Za1

Za2

Ωb1 = Ωb

2!

Linear dependent columns Zb1 and Zb

2!

Enhancing iterative solvers in Diana June 27, 2014

19

Page 67: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Domain decomposition

Consider model Ω with two rigid bodies Ωa and Ωb.

Z =

Za1

Za2

Zb1 Zb

2

Za1

Za2

Ωb1 = Ωb

2!Linear dependent columns Zb

1 and Zb2!

Enhancing iterative solvers in Diana June 27, 2014

19

Page 68: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Measures concerning the coarse matrix

I Remove small overlapping bodies

Z =

Za1

Za2

Zb1 Zb

2

Za1

Za2

⇒ Z =

Za1

Za2

Zb1

Za1

Za2

I Switch from deflation to coarse grid correction if

κ(E) 1.

Enhancing iterative solvers in Diana June 27, 2014

20

Page 69: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Measures concerning the coarse matrix

I Remove small overlapping bodies

Z =

Za1

Za2

Zb1 Zb

2

Za1

Za2

⇒ Z =

Za1

Za2

Zb1

Za1

Za2

I Switch from deflation to coarse grid correction if

κ(E) 1.

Enhancing iterative solvers in Diana June 27, 2014

20

Page 70: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Measures concerning the coarse matrix

I Remove small overlapping bodies

Z =

Za1

Za2

Zb1 Zb

2

Za1

Za2

⇒ Z =

Za1

Za2

Zb1

Za1

Za2

I Switch from deflation to coarse grid correction if

κ(E) 1.

Enhancing iterative solvers in Diana June 27, 2014

20

Page 71: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

The SplittedCube case

I Layer of interface elements splits a cube ⇒ two bodies

I 161.711 degrees of freedom

I Constraints at three planes

I Uniform load on top

Enhancing iterative solvers in Diana June 27, 2014

21

Page 72: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Results for SplittedCube case

Figure: Preconditioned Conjugate Gradient (PCG)

Enhancing iterative solvers in Diana June 27, 2014

22

Page 73: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Results for SplittedCube case

Figure: Deflated PCG

Enhancing iterative solvers in Diana June 27, 2014

22

Page 74: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Results for SplittedCube case

Figure: Coarse grid correction PCG

Enhancing iterative solvers in Diana June 27, 2014

22

Page 75: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

The Geo case

I Eight layers of different materials ⇒ two bodies

I 73.336 degrees of freedom

I Constraints at two planes and all edges

I Pressure load at center

Enhancing iterative solvers in Diana June 27, 2014

23

Page 76: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Results for Geo case

Figure: Computation with one domain

Enhancing iterative solvers in Diana June 27, 2014

24

Page 77: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Conclusions

Enhancements

I Identify rigid bodies based on element matrices

I Reuse of rigid bodies

I Remove significantly overlapping rigid bodies

I Switch from deflation to coarse grid correction

I Tested on 2572 test problems

I Great advantage for stiffness jumps of 103 or larger

Future research

I (Physics-based) preconditioner for elements with scalardegrees of freedom

I Identify rigid bodies before domain decomposition

I Alternative non-symmetric solver: IDR(s)

Enhancing iterative solvers in Diana June 27, 2014

25

Page 78: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Conclusions

Enhancements

I Identify rigid bodies based on element matrices

I Reuse of rigid bodies

I Remove significantly overlapping rigid bodies

I Switch from deflation to coarse grid correction

I Tested on 2572 test problems

I Great advantage for stiffness jumps of 103 or larger

Future research

I (Physics-based) preconditioner for elements with scalardegrees of freedom

I Identify rigid bodies before domain decomposition

I Alternative non-symmetric solver: IDR(s)

Enhancing iterative solvers in Diana June 27, 2014

25

Page 79: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Enhancing iterative solvers in DianaEnhancing iterative solution methods for general FEM

computations using rigid body modes.

Alex Sangers

Delft Institute of Applied MathematicsTNO DIANA

June 27, 2014

Enhancing iterative solvers in Diana June 27, 2014

26

Page 80: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Additional slides

Enhancing iterative solvers in Diana June 27, 2014

1

Page 81: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Approximate rigid bodies

I Stiffness jumps in the underlying model

I Domain decomposition

1. Divide domain Ω into subdomains Ωi.2. Compute the local solutions of subdomains Ωi.3. Compute the global solution.

Enhancing iterative solvers in Diana June 27, 2014

2

Page 82: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Approximate rigid bodies

I Stiffness jumps in the underlying model

I Domain decomposition

1. Divide domain Ω into subdomains Ωi.2. Compute the local solutions of subdomains Ωi.3. Compute the global solution.

Enhancing iterative solvers in Diana June 27, 2014

2

Page 83: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Choosing Z

I Eigenvectors:Z =

(v1 . . . vk

).

I Subdomains:

Zij =

1 if i ∈ Ωj ,0 otherwise.

I Rigid body modes:Z is the rigid body modes of the approximate rigid bodies.

Enhancing iterative solvers in Diana June 27, 2014

3

Page 84: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Rigid body modes

Consider a one-element rigid body with nodes x1 = (x1, y1, z1)and x2 = (x2, y2, z2).

x1

x2

y1

y2

z1

z2

Z =

1 0 0 0 −z1 y11 0 0 0 −z2 y20 1 0 z1 0 −x10 1 0 z2 0 −x20 0 1 −y1 x1 00 0 1 −y2 x2 0

Enhancing iterative solvers in Diana June 27, 2014

4

Page 85: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

The coarse matrix

Recall the coarse matrix

E = ZTKZ.

I Deflation: Π⊥ = I −KZE−1ZT ,

I Coarse grid correction: PC = I + ZE−1ZT .

The condition (quality) of E is

κ(E) = ‖E‖ · ‖E−1‖.

I κ(E) ≈ 1

I κ(E) ≈ 1016

I Z needs to have linearly independent vectors

Enhancing iterative solvers in Diana June 27, 2014

5

Page 86: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Condition number of the coarse matrix

The inverse of E is computed by a QR-decomposition:

E−1 = R−1QT ,

where R−1 is explicitly computed.

The condition number κ2(E) is bounded by:

κ2(E) ≤ κF (E),

with

κF (E) = ‖E‖F ‖E−1‖F= ‖QR‖F ‖R−1QT ‖F= ‖R‖F ‖R−1‖F .

Enhancing iterative solvers in Diana June 27, 2014

6

Page 87: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Results for SplittedCube case

κ(E) PCG PARDISO DPCG PPCGiter CPU(s) iter CPU(s) iter CPU(s) iter CPU(s)

1 3 · 108 248 66.2 1 132.0 122 37.8 126 38.72 6 · 108 229 43.1 1 78.0 n/a n/a 144 30.74 9 · 108 255 35.4 1 47.1 n/a n/a 151 23.38 3 · 1019 248 37.5 1 47.9 n/a n/a 128 23.4

Enhancing iterative solvers in Diana June 27, 2014

7

Page 88: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Results for Geo case

κ(E) PCG PARDISO DPCG PPCGiter CPU(s) iter CPU(s) iter CPU(s) iter CPU(s)

1 2 · 104 289 17.5 1 18.6 248 16.6 251 16.72 7 · 104 255 10.3 1 11.1 255 10.9 258 10.84 1 · 105 284 9.2 1 7.1 279 10.1 283 9.88 4 · 105 256 9.2 1 6.5 251 10.6 255 9.9

Enhancing iterative solvers in Diana June 27, 2014

8

Page 89: Enhancing iterative solvers in Diana - Enhancing iterative ...ta.twi.tudelft.nl/nw/users/vuik/numanal/sangers_presentation2.pdf · Diana is a general nite element software package

Future research

I Identify rigid bodies before the partitioning

I Specialize the rigid body modesI Better reuse information in nonlinear iteration loop

I Eigenvector deflationI Optimize the parameter for rigid body reuse

I (Physics-based) preconditioner for models withtemperature or pressure

I The non-symmetric iterative solver IDR(s)

Enhancing iterative solvers in Diana June 27, 2014

9