\doxysection{Vmp class}
\label{a00049}\index{Vmp class@{Vmp class}}


A Virtual MPI communication layer object.  


\doxysubsubsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \textbf{ vmp.\+h}
\begin{DoxyCompactList}\small\item\em Class Vmp\+: a Virtual MPI communication layer object. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ s\+Vmp}
\begin{DoxyCompactList}\small\item\em Contains public data members for Vmp class. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \textbf{ s\+Vmp} \textbf{ Vmp}
\begin{DoxyCompactList}\small\item\em Declaration of the Vmp class as teh Vmp structure. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ Vmp\+\_\+init} (int $\ast$argc, char $\ast$$\ast$$\ast$argv)
\begin{DoxyCompactList}\small\item\em The Vmp initializer. \end{DoxyCompactList}\item 
int \textbf{ Vmp\+\_\+finalize} (void)
\begin{DoxyCompactList}\small\item\em The Vmp finalizer. \end{DoxyCompactList}\item 
\textbf{ Vmp} $\ast$ \textbf{ Vmp\+\_\+ctor} (void)
\begin{DoxyCompactList}\small\item\em The Vmp constructor. \end{DoxyCompactList}\item 
void \textbf{ Vmp\+\_\+dtor} (\textbf{ Vmp} $\ast$$\ast$thee)
\begin{DoxyCompactList}\small\item\em The Vmp destructor. \end{DoxyCompactList}\item 
int \textbf{ Vmp\+\_\+rank} (\textbf{ Vmp} $\ast$thee)
\begin{DoxyCompactList}\small\item\em Return my processor ID. \end{DoxyCompactList}\item 
int \textbf{ Vmp\+\_\+size} (\textbf{ Vmp} $\ast$thee)
\begin{DoxyCompactList}\small\item\em Return the number of processors involved. ~\newline
 \end{DoxyCompactList}\item 
int \textbf{ Vmp\+\_\+barr} (\textbf{ Vmp} $\ast$thee)
\begin{DoxyCompactList}\small\item\em An MPI barrier. ~\newline
 \end{DoxyCompactList}\item 
int \textbf{ Vmp\+\_\+send} (\textbf{ Vmp} $\ast$thee, int des, char $\ast$buf, int bufsize)
\begin{DoxyCompactList}\small\item\em An MPI blocking send. ~\newline
 \end{DoxyCompactList}\item 
int \textbf{ Vmp\+\_\+recv} (\textbf{ Vmp} $\ast$thee, int src, char $\ast$buf, int bufsize)
\begin{DoxyCompactList}\small\item\em An MPI blocking receive. ~\newline
 \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
A Virtual MPI communication layer object. 



\doxysubsection{Typedef Documentation}
\index{Vmp class@{Vmp class}!Vmp@{Vmp}}
\index{Vmp@{Vmp}!Vmp class@{Vmp class}}
\doxysubsubsection{Vmp}
{\footnotesize\ttfamily \label{a00049_ga1592e34b3071e22d7fcd50f1679d6ad3} 
typedef struct \textbf{ s\+Vmp} \textbf{ Vmp}}



Declaration of the Vmp class as teh Vmp structure. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}


\doxysubsection{Function Documentation}
\index{Vmp class@{Vmp class}!Vmp\_barr@{Vmp\_barr}}
\index{Vmp\_barr@{Vmp\_barr}!Vmp class@{Vmp class}}
\doxysubsubsection{Vmp\_barr()}
{\footnotesize\ttfamily \label{a00049_ga9fffcb9ce0156d89586bfd1405b3488e} 
int Vmp\+\_\+barr (\begin{DoxyParamCaption}\item[{\textbf{ Vmp} $\ast$}]{thee}{}\end{DoxyParamCaption})}



An MPI barrier. ~\newline
 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class Vmp\+: Non-\/inlineable method (vmp.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the Vmp object \\
\hline
\end{DoxyParams}
\index{Vmp class@{Vmp class}!Vmp\_ctor@{Vmp\_ctor}}
\index{Vmp\_ctor@{Vmp\_ctor}!Vmp class@{Vmp class}}
\doxysubsubsection{Vmp\_ctor()}
{\footnotesize\ttfamily \label{a00049_ga889bd860feeab152f2fd0df4bf2e1183} 
\textbf{ Vmp} $\ast$ Vmp\+\_\+ctor (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}



The Vmp constructor. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class Vmp\+: Non-\/inlineable method (vmp.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}
\index{Vmp class@{Vmp class}!Vmp\_dtor@{Vmp\_dtor}}
\index{Vmp\_dtor@{Vmp\_dtor}!Vmp class@{Vmp class}}
\doxysubsubsection{Vmp\_dtor()}
{\footnotesize\ttfamily \label{a00049_ga9afe35a3bee7572eda0c46aab12ad58a} 
void Vmp\+\_\+dtor (\begin{DoxyParamCaption}\item[{\textbf{ Vmp} $\ast$$\ast$}]{thee}{}\end{DoxyParamCaption})}



The Vmp destructor. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class Vmp\+: Non-\/inlineable method (vmp.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
None 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to pointer of Vmp object \\
\hline
\end{DoxyParams}
\index{Vmp class@{Vmp class}!Vmp\_finalize@{Vmp\_finalize}}
\index{Vmp\_finalize@{Vmp\_finalize}!Vmp class@{Vmp class}}
\doxysubsubsection{Vmp\_finalize()}
{\footnotesize\ttfamily \label{a00049_ga18e91b02dbce0cacf5146fa0f01aca47} 
int Vmp\+\_\+finalize (\begin{DoxyParamCaption}\item[{void}]{}{}\end{DoxyParamCaption})}



The Vmp finalizer. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class Vmp\+: Non-\/inlineable method (vmp.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}
\index{Vmp class@{Vmp class}!Vmp\_init@{Vmp\_init}}
\index{Vmp\_init@{Vmp\_init}!Vmp class@{Vmp class}}
\doxysubsubsection{Vmp\_init()}
{\footnotesize\ttfamily \label{a00049_ga45e1307da5143b3066f75b08dbddfc8c} 
int Vmp\+\_\+init (\begin{DoxyParamCaption}\item[{int $\ast$}]{argc}{, }\item[{char $\ast$$\ast$$\ast$}]{argv}{}\end{DoxyParamCaption})}



The Vmp initializer. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class Vmp\+: Non-\/inlineable method (vmp.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em argc} & number of the command line arguments \\
\hline
{\em argv} & the command line arguments \\
\hline
\end{DoxyParams}
\index{Vmp class@{Vmp class}!Vmp\_rank@{Vmp\_rank}}
\index{Vmp\_rank@{Vmp\_rank}!Vmp class@{Vmp class}}
\doxysubsubsection{Vmp\_rank()}
{\footnotesize\ttfamily \label{a00049_ga552506a098aff62d06adc34c7b896d26} 
int Vmp\+\_\+rank (\begin{DoxyParamCaption}\item[{\textbf{ Vmp} $\ast$}]{thee}{}\end{DoxyParamCaption})}



Return my processor ID. 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class Vmp\+: Non-\/inlineable method (vmp.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the Vmp object \\
\hline
\end{DoxyParams}
\index{Vmp class@{Vmp class}!Vmp\_recv@{Vmp\_recv}}
\index{Vmp\_recv@{Vmp\_recv}!Vmp class@{Vmp class}}
\doxysubsubsection{Vmp\_recv()}
{\footnotesize\ttfamily \label{a00049_ga61f69e46851adb8a5b4dad5cabe860be} 
int Vmp\+\_\+recv (\begin{DoxyParamCaption}\item[{\textbf{ Vmp} $\ast$}]{thee}{, }\item[{int}]{src}{, }\item[{char $\ast$}]{buf}{, }\item[{int}]{bufsize}{}\end{DoxyParamCaption})}



An MPI blocking receive. ~\newline
 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class Vmp\+: Non-\/inlineable method (vmp.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the Vmp object \\
\hline
{\em src} & rank of receiving processor \\
\hline
{\em buf} & buffer containing message \\
\hline
{\em bufsize} & number of items (of declared type) in buffer \\
\hline
\end{DoxyParams}
\index{Vmp class@{Vmp class}!Vmp\_send@{Vmp\_send}}
\index{Vmp\_send@{Vmp\_send}!Vmp class@{Vmp class}}
\doxysubsubsection{Vmp\_send()}
{\footnotesize\ttfamily \label{a00049_ga3f6bc7fb6e386edac47df9d9efe5ca7b} 
int Vmp\+\_\+send (\begin{DoxyParamCaption}\item[{\textbf{ Vmp} $\ast$}]{thee}{, }\item[{int}]{des}{, }\item[{char $\ast$}]{buf}{, }\item[{int}]{bufsize}{}\end{DoxyParamCaption})}



An MPI blocking send. ~\newline
 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class Vmp\+: Non-\/inlineable method (vmp.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the Vmp object \\
\hline
{\em des} & rank of receiving processor \\
\hline
{\em buf} & buffer containing message \\
\hline
{\em bufsize} & number of items (of declared type) in buffer \\
\hline
\end{DoxyParams}
\index{Vmp class@{Vmp class}!Vmp\_size@{Vmp\_size}}
\index{Vmp\_size@{Vmp\_size}!Vmp class@{Vmp class}}
\doxysubsubsection{Vmp\_size()}
{\footnotesize\ttfamily \label{a00049_gae3fefc943dd5c0585f01597a33649b11} 
int Vmp\+\_\+size (\begin{DoxyParamCaption}\item[{\textbf{ Vmp} $\ast$}]{thee}{}\end{DoxyParamCaption})}



Return the number of processors involved. ~\newline
 

\begin{DoxyAuthor}{Author}
Michael Holst 
\end{DoxyAuthor}
\begin{DoxyNote}{Note}
Class Vmp\+: Non-\/inlineable method (vmp.\+c) 
\end{DoxyNote}
\begin{DoxyReturn}{Returns}
Success enumeration 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em thee} & Pointer to the Vmp object \\
\hline
\end{DoxyParams}
