Multi - Grid Methods Press et al., “ Numerical Recipes in C ” , Section 19.6 http://www.nrbook.com/a/bookcpdf.php A Multigrid Tutorial, http://www.llnl.gov/casc/people/henson/mgtut/welcome.html Tuesday, June 26, 2007 1
Multi - Grid Methods • Introduced by Achi Brandt, “ Multi - Level Adaptive Solutions to Boundary V alue Problems ” , Math. Comp. 1977 • Solve elliptic PDEs ( such as the Poisson equation ) on N grid points in O ( N ) • General framework, whose components must be adjusted to solve speci fi c problems Tuesday, June 26, 2007 2
Motivation • Large sparse linear systems might converge slowly using standard iterative relaxation methods ( such as Jacobi, Gauss - Seidel ) . Tuesday, June 26, 2007 3
Example Au = 0 , u i − 1 − 2 u i + u i + 1 = 0 k = 1 1 0 . 8 k = 3 0 . 6 0 . 4 0 . 2 0 - 0 . 2 k = 6 - 0 . 4 - 0 . 6 - 0 . 8 1 k = 1 - 1 0 0 . 1 0 . 2 0 . 3 0 . 4 0 . 5 0 . 6 0 . 7 0 . 8 0 . 9 1 0.9 0.8 0.7 0.6 0.5 k = 3 0.4 0.3 k = 6 0.2 0.1 0 0 20 40 60 80 100 120 Tuesday, June 26, 2007 4
Multi - Grid • Many relaxation schemes have the smoothing property , where oscillatory modes of the error are eliminated e ff ectively, but smooth modes are damped very slowly! • Idea: use a sequence of progressively coarser grids in order to quickly get rid of smooth ( low - frequency ) errors! Tuesday, June 26, 2007 5
Two - Grid Case • Linear elliptic problem: L u = f • Discretized on a uniform grid with spacing h between grid points: L h u h = f h • Let be an approximate solution. u h ˜ • Error/correction: v h = u h − ˜ u h • Residual/defect: d h = L h ˜ u h − f h Tuesday, June 26, 2007 6
Two - Grid Case ( continued ) = d h L h ˜ u h − f h = L h ( u h − v h ) − f h = L h u h − L h v h − f h = − L h v h Error may be computed by solving: L h v h = − d h L H v H = − d H Idea: use a coarser grid to solve: Use the result to approximate the correction, and correct the fi ne grid solution! u new u h + ˜ v h ˜ = ˜ h Tuesday, June 26, 2007 7
Two - Grid Case ( continued ) How do we switch between coarse and fi ne grids? Need to de fi ne two linear operators: • Restriction/injection/ fi ne - to - coarse operator R • Prolongation/interpolation/coarse - to -fi ne operator P d H = Rd h v h = P ˜ v H ˜ Tuesday, June 26, 2007 8
Two - Grid Case ( summary ) Iterate until convergence: • Relaxation/smoothing on the fi ne grid • Compute the defect on fi ne grid d h = L h ˜ u h − f h • Restrict defect to coarse grid d H = Rd h • Solve the coarse problem L H v H = − d H • Interpolate the correction to fi ne grid v h = P ˜ v H ˜ • Apply correction to get a new u new u h + ˜ v h ˜ = ˜ approximation h Tuesday, June 26, 2007 9
Relaxation / Smoothing Relaxation ( smoothing ) operator: typically a few iterations of Gauss - Seidel: � � u i = − 1 ∑ L ij u j − f i i = 1 ,..., N L ii j � = i Tuesday, June 26, 2007 10
Relaxation / Smoothing Tuesday, June 26, 2007 11
Prolongation Prolongation operator in 1D: typically linear interpolation. Speci fi ed by the following stencil ( symbol ) : � � 1 / 2 1 / 2 1 Tuesday, June 26, 2007 12
Example The prolongation operator, written in matrix form ( in 1D, for interpolating 3 variables into 7 ) : 1 / 2 v h , 1 1 v h , 2 1 / 2 1 / 2 v H , 1 v h , 3 1 v H , 2 v h , 4 = 1 / 2 1 / 2 v H , 3 v h , 5 1 v h , 6 1 / 2 v h , 7 7 × 3 Tuesday, June 26, 2007 13
Prolongation in 2D Prolongation operator in 2D: typically bi - linear interpolation. Speci fi ed by the following stencil ( symbol ) , on a 2D grid: 0 . 25 0 . 5 0 . 25 0 . 5 1 0 . 5 0 . 25 0 . 5 0 . 25 Tuesday, June 26, 2007 14
Restriction [ 1 ] Simplest operator: straight injection Tuesday, June 26, 2007 15
Restriction Another operator: full - weighting [ 1 / 4 1 / 2 1 / 4 ] Tuesday, June 26, 2007 16
Example The restriction operator, written in matrix form ( in 1D, for restricting 7 variables into 3 ) : v h , 1 v h , 2 1 / 4 1 / 2 1 / 4 v h , 3 v H , 1 1 / 4 1 / 2 1 / 4 v h , 4 v H , 2 = 1 / 4 1 / 2 1 / 4 v h , 5 v H , 3 3 × 7 v h , 6 v h , 7 Tuesday, June 26, 2007 17
Restriction in 2D [ 1 ] Simplest operator: straight injection Other choices: 1 / 16 1 / 8 1 / 16 Full weighting 1 / 8 1 / 4 1 / 8 1 / 16 1 / 8 1 / 16 1 / 8 0 0 Half weighting 1 / 8 1 / 2 1 / 8 1 / 8 0 0 Tuesday, June 26, 2007 18
Prolongation & Restriction 1 2 1 1 1 2 1 1 1 2 1 2 1 2 4 1 1 1 2 1 2 1 P cP T Tuesday, June 26, 2007 19
Operator Coarsi fi cation • Discretize the continuous linear operator on progressively coarser grids or • Use the prolongation/restriction operators: L H = RL h P Tuesday, June 26, 2007 20
Cycle Strategies: V and W Tuesday, June 26, 2007 21
Cycle Strategies: FMG Tuesday, June 26, 2007 22
Recommend
More recommend