资源描述:
《二维poisson方程的并行求解算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八讲二维Poisson方程的并行求解算法1主要内容二维Poisson方程的差分离散差分方程的Jacobi算法串行算法并行算法红黑排序的GS算法2二维Poisson方程二维Poisson方程其中=(0,a)(0,b),为边界oab……1234……1234……五点差分离散x-方向和y-方向的步长分别取为网格点:(xi,yj),其中xi=i*hx,yj=j*hy,i=0,1,...,m,j=0,1,...,nu在(xi,yj)点的近似值记为ui,j30123......m0123......n蓝色为内点黑色
2、为边界点4ui,jui,j-1ui+1,jui,j+1ui-1,j5二维Poisson方程离散后的差分方程为整理后可得ui,jui,j-1ui+1,jui,j+1ui-1,ji=1,...,m-1,j=1,...,n-1边界条件:其中6Jacobi迭代求解该差分方程组的Jacobi迭代格式为i=1,...,n-1,j=1,...,m-1k=0,1,2,...7程序示例例:取串行程序:jacobi.f此时Poisson方程的解析解为8并行算法并行求解的基本思想:区域分解采用区域分解技术:假设使用np个进程并行求解
3、,则将整个求解区域分解成npxnpy个子区域,其中npxnpy=np每个进程负责求解一个子区域相邻两个子区域有一个网格步的重叠:便于子区域间的数据传递每个子区域包含的网格点大致相等以33的区域分解为例9蓝色为内点黑色为边界点01234567810蓝色为内点黑色为边界点01234567811并行算法程序中使用的一些参数:np进程个数npx,npyx-方向和y-方向的进程个数myid当前进程的进程号myidx,myidy当前进程的x-方向和y-方向的进程坐标nx,ny整个区域x-方向和y-方向的网格点数-1n
4、lx,nly子区域的x-向和y-方向的网格点数-1x0,y0子区域的左下角网格点(0,0)在整个区域中的位置(用于计算解析解)12并行算法子区域蓝色为子区域内点黑色为子区域边界点(伪边界)网格点:(0:nlx,0:nly)内点:(1:nlx-1,1:nly-1)“边界点”:(0,1:nly-1)(nlx,1:nly-1)(1:nlx-1,0)(1:nlx-1,nly)(0,0):子区域的左下角13并行算法几个关系式:myidx,myidy与myid的关系式:nlx与nx的关系式:myidx=myid%n
5、pxmyidy=myid/npxmyid=myidx+myidy*npxnlx=(nx-1)/npx+2,(myidx6、机作业将Jacobi迭代改为红黑排序的Gauss-Seidel迭代012345678红点:i+j=2k黑点:i+j=2k+1红黑排序GS算法:先更新红点的值再更新黑点的值依次类推,不断循环16012345678(x0,y0)(i,j)?红、黑?17