Main Page | Namespace List | Class List | File List | Namespace Members | Class Members | File Members

vector_mpicomm.hpp

Go to the documentation of this file.
00001 /*
00002 **  CXSC is a C++ library for eXtended Scientific Computing 
00003 **
00004 **  Copyright (C) 1990-2000 Institut fuer Angewandte Mathematik,
00005 **                          Universitaet Karlsruhe, Germany
00006 **            (C) 2000-2006 Wiss. Rechnen/Softwaretechnologie
00007 **                          Universitaet Wuppertal, Germany
00008 **
00009 **  MPI communication package for STL vectors
00010 **  of C-XSC data types and C-XSC Taylor arithmetic types
00011 **
00012 **  Copyright (C) 2004-2007 Markus Grimmer
00013 **
00014 **  markus.grimmer@math.uni-wuppertal.de
00015 **
00016 **  This library is free software; you can redistribute it and/or
00017 **  modify it under the terms of the GNU Library General Public
00018 **  License as published by the Free Software Foundation; either
00019 **  version 2 of the License, or (at your option) any later version.
00020 **
00021 **  This library is distributed in the hope that it will be useful,
00022 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
00023 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00024 **  Library General Public License for more details.
00025 **
00026 **  You should have received a copy of the GNU Library General Public
00027 **  License along with this library; if not, write to the Free
00028 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00029 */
00030 
00053 // Remark: templates have to be explicitly instantiated!
00054 // Remark: This strategy should work for all element data types that can be sent
00055 //         as MPI_Send(Pointer,int,int,MPI_Comm)!
00056 //         MPI_Send originally has the interface
00057 //         MPI_Send (Pointer,int,MPI_Datatype,int,int,MPI_Comm).
00058 
00059 #ifndef _VECTOR_MPICOMM_INCLUDE
00060 #define _VECTOR_MPICOMM_INCLUDE
00061 
00062 #include <mpi.h>
00063 #include <vector>
00064 
00065 // Taylor expansion modules (itaylor, dim2taylor)
00066 
00067 #include "itaylor.hpp"
00068 #include "dim2taylor.hpp"
00069 
00070 using namespace std;
00071 
00072 // MPI-Routinen fr STL-Vector
00073 
00078 template<class T> 
00079 int MPI_Pack (vector<T> &, void *, int, int *,  MPI_Comm);
00080 template<class T> 
00081 int MPI_Unpack (void*, int, int *, vector<T> &, MPI_Comm);
00083 
00088 template<class T>
00089 int MPI_Send(vector<T> &, int, int, MPI_Comm);
00090 template<class T>
00091 int MPI_Bsend(vector<T> &, int, int, MPI_Comm);
00092 template<class T>
00093 int MPI_Ssend(vector<T> &, int, int, MPI_Comm);
00094 template<class T>
00095 int MPI_Rsend(vector<T> &, int, int, MPI_Comm);
00096 
00097 template<class T>
00098 int MPI_Isend(vector<T> &, int, int, MPI_Comm, MPI_Request*);
00099 template<class T>
00100 int MPI_Ibsend(vector<T> &, int, int, MPI_Comm, MPI_Request*);
00101 template<class T>
00102 int MPI_Issend(vector<T> &, int, int, MPI_Comm, MPI_Request*);
00103 template<class T>
00104 int MPI_Irsend(vector<T> &, int, int, MPI_Comm, MPI_Request*);
00105 
00106 template<class T> 
00107 int MPI_Recv (vector<T> &, int, int, MPI_Comm, MPI_Status*);
00109 
00114 template<class T>
00115 int MPI_Bcast(vector<T>&, int, MPI_Comm);
00116 template<class T>
00117 int MPI_Bcast(vector<T>&, int, int, int, int, int, MPI_Comm);
00119 
00120 #endif

Generated on Tue Feb 27 21:19:13 2007 for VFIS by  doxygen 1.4.4