Presentation is loading. Please wait.

Presentation is loading. Please wait.

Multigrid Methods The Implementation Wei E Universität München. Ferien Akademie 19 th Sep. 2005.

Similar presentations


Presentation on theme: "Multigrid Methods The Implementation Wei E Universität München. Ferien Akademie 19 th Sep. 2005."— Presentation transcript:

1 Multigrid Methods The Implementation Wei E CSE@Technische Universität München. Ferien Akademie 19 th Sep. 2005

2 Content Introduction Algorithm Results & Performance A Failing Example Conclusion

3 Content Introduction Algorithm Results & Performance A Failing Example Conclusion

4 Introduction Fluid Dynamics Solving PDEs Computational Fluid Dynamics Numerical Solution

5 The Navier-Stokes Equations (1) Non-stationary incompressible viscous fluids 2D Cartesian coordinates system of partial differential equations two momentum equations + continuity equation

6 The Navier-Stokes Equations (2)

7 Poisson Equation Where f(x,y) is the right-hand side calculated by the quantities in the previous time step; the unknown u is to be solved in the current time step.

8 Discretization (1) Finite Difference Scheme:

9 Discretization (2) The corresponding matrix representation is: where

10 Content Introduction Algorithm Results & Performance A Failing Example Conclusion

11 Multigrid Implementation The two classical schemes: V-Cycle Full Multigrid (FMG)

12 V-Cycle: The Algorithm grid = { double Ddim_array f // the right hand side double Ddim_array v // the current approximation } Grid = array of structure grid. for j = 0 to coarsest - 1 Grid[j].v <- relax(Grid[j].v, Grid[j].f, num_sweeps_down); Grid[j+1].f <- restrict(Grid[j].f- calculate_rhs(Grid[j].v)); endfor Grid[coarsest].v = direct_solve(Grid[coarsest].v, Grid[coarsest].f); for j = coarsest – 1 to 0 Grid[j].v <- Grid[j].v + interpolate(Grid[j+1].v); Grid[j].v <- relax(Grid[j].v, Grid[j].f, num_sweeps_up); endfor

13 V-Cycle: Comments (1) a) Non-recursive structure; b) Gauss-Seidel is used as the relaxation method; c) calculate_rhs() is a function to calculate the right-hand side based on current approximation; d) Several methods can be used to solve the small-size problem, we choose SOR (successive over relaxation);

14 V-Cycle: Comments (2) e) For restriction, we take the mean value of the four neighbors as the result f) For interpolation, we use the similar method as restriction: spreading the value into it’s four neighbors. restriction interpolation

15 FMG: The Algorithm Once we have the V-cycle, FMG would be rather easy to implement : for j = 0 to coarsest - 1 Grid[coarsest-j+1].v <- Grid[coarsest-j+1].v + interpolate_fine(Grid[coarsest-j].v); Grid[coarsest-j+1].v <- V-cycle(Grid[coarsest-j+1].v, Grid[coarsest-j+1].f); endfor

16 FMG: Comments a) Initialization for all the approximations and right-hand sides should be made before executing the FMG main loop; b) interpolate_fine() stands for a higher order interpolator. In practice, we use the interpolation matrix:

17 Content Introduction Algorithm Results & Performance A Failing Example Conclusion

18 Model Problem (1): Hidden Step Fluid flows with a constant velocity through a channel with a hidden obstacle on one side. No-slip conditions are imposed at the upper and lower walls.

19 Simulation result (1) The Hidden Step:

20 Model Problem (2): Karman Vortex The flow in a channel can meet a tilted plate. At the left boundary, the fluid inflow has a constant velocity profile, while at the upper and lower boundaries no-slip conditions are imposed.

21 Simulation result (2) Von Karman Vortex

22 Performance (1) Size Method 128*32256*64128*128256*128 SOR 18 sec289 sec700 sec1635 sec V-Cycle 10 sec76 sec80 sec172 sec FMG 7 sec33 sec35 sec75 sec Testing platform: P4 2.4GHz, 1GB Memory, SUSE Linux 9.3

23 Performance (2)

24 Content Introduction Algorithm Results & Performance A Failing Example Conclusion

25 A Failing Example Throttle :

26 Simulation Result

27 The Reason

28 Content Introduction Algorithm Results & Performance A Failing Example Conclusion

29 An Optimal (i.e., O(N)) Solver. Highly Modular Program Structure Advanced Debugging Technique

30 Reference [1] Practical Course – Scientific Computing and Visualization Worksheet, Lehrstuhl für Informatik mit Schwerpunkt Wissenschaftliches Rechnen, TU-Muenchen, 2005. [2] Krzysztof J. Fidkowski, A High-Order Discontinuous Galerkin Multigrid Solver for Aerodynamic Applications, Master Thesis in Aerospace Engineering at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY [3] S. McCormick, B. Briggs, and V. Henson, "A Multigrid Tutorial”, second edition, SIAM,Philadelphia, June 2000.

31 Thank You!


Download ppt "Multigrid Methods The Implementation Wei E Universität München. Ferien Akademie 19 th Sep. 2005."

Similar presentations


Ads by Google