Download presentation
Presentation is loading. Please wait.
Published byAnne Jenkins Modified over 9 years ago
1
Marching Solver for Poisson Equation 大氣四 簡睦樺
2
Outline A brief review for Poisson equation and marching method Parallel algorithm and consideration for efficiency Results Future works
3
Poisson Equation A second order partial differential equation with inhomogeneous forcing term is called Poisson equation. i.e. Ω is the domain, L is some operator for boundary condition.
4
Numerical approximation Let U ij =u(x,y), approximate the equation with finite difference method. For marching method
5
Marching method Let, where U i,j is the exact solution, U’ i,j is guess solution, e i,j is the difference between U i,j and U’ i,j. ij=0…n+1(U i,0, U 0,j, U i,n+1 and U n+1,j are boundary) We have a initial guess for U’ i,1 and compute U’ i,2 via marching equation.
6
Let a vector of equation of e, i.e. E 1,1 =[1 0...0] T and E 2,1 =[0 1 0...0] T and compute the equation of e. Thus, we can construct and system of e in+1 and U’ in+1 –U in+1. i.e. We solve the system and get e i,1, so we can get U i,1
7
Domain decomposition idea However, the above method may fail easily because the condition number of the system may be to huge. To construct error vector from E i,1, E n+1,1 and other interior point. we can have the local equation for some marching points for which different initial condition march and should have same value.
9
Parallel Algorithm Use MPI to compute the decomposed domain. Separate the computation into preprocessor and marching.
10
Preprocessor To compute inverse matrix of the system preprocessor Compute error vector Parallel LU Out put Compute error vector Parallel LU Out put
11
Marching marching Read data marching Read data marching
12
Collect error vector Matrix product
13
Connect Boundary data Marching again to get exact sol.
14
Operation count For general case, define nx for grid points at x-direction, ny for grid points at y direction, nb is number of sub-domain ~ nx/5. For serial case, preprocessor: Error vector: O(ny*ny*nx) LU: O((ny*nb) 3 ) marching: marching: O(ny*nx) matrix product: O((ny*nb) 2 )
15
Parallel case ng is number of MPI world. nb>=ng preprocessor: Error vector: O(ny*ny*nx/ng) LU: O((ny*nb) 3 ) marching: marching: O(ny*nx/ng) matrix product: O((ny*nb/ng) 2 )
16
Compare with other method SerialMarchLUIteration +prep Iteration Prep(ny*nb) 3 (ny*nx) 3 0 march(ny*nb) 2 (ny*nx) 2 (ny*nx) 3 1 time problem (ny*nb) 3 (ny*nx) 3
17
results Converge error Efficiency improvement Annulus testing case
18
Converge error Testing case
19
Error table HErrorRatioorder 0.06254.987e-5NaN 0.031251.328e-53.755271.90892 0.15633.425e-63.877371.95508 0.007818.697e-73.938141.97751
20
Log-log plot
21
Efficiency For 128*128 case NPTime 10.0412 20.0345 40.0181 80.0134 160.0123
22
Annulus
23
Future work Parallel LU 3D marching method
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.