\begin{frame}
  \frametitle{Description of the graph}
  \begin{block}{}
    The  graph corresponds to the non-zeros pattern of the matrix  (ie: the matrix
    non null coefficients without their values).\\
    Usually, the graph can be build directly from the discretization mesh.\\
    It is used to compute preprocessing and to distribute the
    matrix on the processes.\\
    We have an edge (i,j) on the graph for every non zero $a_{ij}$ in the matrix. 
  \end{block}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Defining edge by edge}
  \lstset{language=C}
  \lstset{emph={INTS},emphstyle=\bfseries}
  \begin{tiny}
    \begin{block}{}

      \begin{type-func-type-mod-var}
        \tftmv{INTS}{MURGE\_GraphBegin}{INTS}{}{id},\\
        \tmv{INTS}{}{N},\\
        \tmv{INTL}{}{edgenbr});\\
      \end{type-func-type-mod-var}

      \textit{\textcolor{DarkOrchid}{\ \ /* foreach edge */}}

      \begin{type-func-type-mod-var}
        \tftmv{INTS}{MURGE\_GraphEdge}{INTS}{}{id},\\
        \tmv{INTS}{}{COL},\\
        \tmv{INTS}{}{ROW});\\
      \end{type-func-type-mod-var}

      \begin{type-func-type-mod-var}
        \tftmv{INTS}{MURGE\_GraphEnd}{INTS}{}{id});\\
      \end{type-func-type-mod-var}

    \end{block}
  \end{tiny}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Defining giving the global matrix (I)}
  \begin{tiny}
    \begin{block}{}
      \begin{type-func-type-mod-var}
        \tftv{INTS}{MURGE\_GraphGlobalIJV}{INTS}{id},\\ 
        \tv{INTS}{N},\\
        \tv{INTS}{NNZ},\\
        \tmv{INTL}{\st{}}{ROWS},\\
        \tmv{INTS}{\st{}}{COLS},\\
        \tv{INTS}{root})\\
      \end{type-func-type-mod-var}
    \end{block}
  \end{tiny}  
  The whole matrix is given by the processor root, 
  the solver is in charge to distribute it onto processes.
\end{frame}
\begin{frame}[fragile]
  \frametitle{Defining giving the global matrix (II)}
  \begin{tiny}
    \begin{block}{}
      \begin{type-func-type-mod-var}
        \tftv{INTS}{MURGE\_GraphGlobalCSR}{INTS}{id},\\ 
        \tmv{INTS}{     }{N},\\
        \tmv{INTL}{\st{}}{rowptr},\\
        \tmv{INTS}{\st{}}{COLS},\\
        \tmv{INTS}{     }{root})\\
      \end{type-func-type-mod-var} 
    \end{block}
    \begin{block}{}
      \begin{type-func-type-mod-var}
        \tftv{INTS}{MURGE\_GraphGlobalCSC}{INTS}{id}, \\
        \tmv{INTS}{     }{N},\\
        \tmv{INTL}{\st{}}{colptr},\\
        \tmv{INTS}{\st{}}{ROWS},\\
        \tmv{INTS}{     }{root})\\
      \end{type-func-type-mod-var}
    \end{block}  
  \end{tiny}
\end{frame}
