--- manual/s_phys_pkgs/text/exch2.tex 2004/03/17 19:49:22 1.13 +++ manual/s_phys_pkgs/text/exch2.tex 2004/03/17 21:44:02 1.14 @@ -1,4 +1,4 @@ -% $Header: /home/ubuntu/mnt/e9_copy/manual/s_phys_pkgs/text/exch2.tex,v 1.13 2004/03/17 19:49:22 afe Exp $ +% $Header: /home/ubuntu/mnt/e9_copy/manual/s_phys_pkgs/text/exch2.tex,v 1.14 2004/03/17 21:44:02 afe Exp $ % $Name: $ %% * Introduction @@ -401,37 +401,72 @@ orientation will have \code{(0,1)}, whereas those in the opposite index direction will have \code{(0,-1)}. \\ - -\varlink{exch2\_oi}{exch2_oi}, +The arrays \varlink{exch2\_oi}{exch2_oi}, \varlink{exch2\_oj}{exch2_oj}, \varlink{exch2\_oi\_f}{exch2_oi_f}, and -\varlink{exch2\_oj\_f}{exch2_oj_f} +\varlink{exch2\_oj\_f}{exch2_oj_f} are indexed to tile number and +neighbor and specify the relative offset within the subdomain of the +array index of a variable going from a neighboring tile $N$ to a local +tile $T$. Consider the six-tile case (Fig. \ref{fig:6tile}), where +\code{exch2\_oi(1,1)=33}, \code{exch2\_oi(2,1)=0}, +\code{exch2\_oi(3,1)=32}, and \code{exch2\_oi(4,1)=-32}. Each of these +indicates the offset in the $x$ direction \\ + +Finally, \varlink{exch2\_itlo\_c}{exch2_itlo_c}, +\varlink{exch2\_ithi\_c}{exch2_ithi_c}, +\varlink{exch2\_jtlo\_c}{exch2_jtlo_c} and +\varlink{exch2\_jthi\_c}{exch2_jthi_c} hold the location and index +bounds of the edge segment of the neighbor tile \code{N}'s subdomain +that gets exchanged with the local tile \code{T}. To take the example +of tile \code{T=2} in the twelve-tile topology +(Fig. \ref{fig:12tile}): \\ +\begin{verbatim} + exch2_itlo_c(4,2)=17 + exch2_ithi_c(4,2)=17 + exch2_jtlo_c(4,2)=0 + exch2_jthi_c(4,2)=33 +\end{verbatim} + +Here \code{N=4}, indicating the western neighbor, which is \code{Tn=1}. +\code{Tn=1} resides on the same subdomain as \code{T=2}, so the tiles +have the same orientation and the same $x$ and $y$ axes. The $i$ +component is orthogonal to the western edge and the tile is 16 points +wide, so \code{exch2\_itlo\_c} and \code{exch2\_ithi\_c} indicate the +column beyond \code{Tn=1}'s eastern edge, in that tile's halo +region. Since the border of the tiles extends through the entire +height of the subdomain, the $y$ axis bounds \code{exch2\_jtlo\_c} to +\code{exch2\_jthi\_c} cover the height, plus 1 in either direction to +cover part of the halo. \\ +For the north edge of the same tile \code{T=2} where \code{N=1} and +the neighbor tile is \code{Tn=5}: +\begin{verbatim} + exch2_itlo_c(1,2)=0 + exch2_ithi_c(1,2)=0 + exch2_jtlo_c(1,2)=0 + exch2_jthi_c(1,2)=17 +\end{verbatim} + +\code{T}'s northern edge is parallel to the $x$ axis, but since +\code{Tn}'s $y$ axis corresponds to \code{T}'s $x$ axis, +\code{T}'s northern edge exchanges with \code{Tn}'s western edge. +The western edge of the tiles corresponds to the lower bound of the +$x$ axis, so \code{exch2\_itlo\_c} \code{exch2\_ithi\_c} are \code{0}. The +range of \code{exch2\_jtlo\_c} and \code{exch2\_jthi\_c} correspond to the +width of \code{T}'s northern edge, plus the halo. \\ -This needs some diagrams. \\ -{\footnotesize -\begin{verbatim} -C exch2_pi :: X index row of target to source permutation -C :: matrix for each neighbour entry. -C exch2_pj :: Y index row of target to source permutation -C :: matrix for each neighbour entry. -C exch2_oi :: X index element of target to source -C :: offset vector for cell-centered quantities -C :: of each neighbor entry. -C exch2_oj :: Y index element of target to source -C :: offset vector for cell-centered quantities -C :: of each neighbor entry. -C exch2_oi_f :: X index element of target to source -C :: offset vector for face quantities -C :: of each neighbor entry. -C exch2_oj_f :: Y index element of target to source -C :: offset vector for face quantities -C :: of each neighbor entry. -\end{verbatim} -} + + + + + + + + +This needs some diagrams. \\