\item Initialization of Pu\;
\item Initialization of the solution vector $Z^{0}$\;
\item Allocate and copy initial data to the GPU global memory\;
-\item k=0\;
\item \While {$\Delta z_{max} > \epsilon$}{
-\item Let $\Delta z_{max}=0$\;
\item $ kernel\_save(ZPrec,Z)$\;
-\item k=k+1\;
\item $ kernel\_update(Z,P,Pu)$\;
-\item $kernel\_testConverge(\Delta z_{max},Z,ZPrec)$\;
+\item $\Delta z_{max}=kernel\_testConverge(Z,ZPrec)$\;
}
\item Copy results from GPU memory to CPU memory\;