Accu
header.h
Go to the documentation of this file.
00001 //      general header for all functions in directory
00002 
00003 #ifndef HEADER_FILE
00004 #define HEADER_FILE
00005 
00006 //      ----------      dexx.cpp        --------------
00015 void Send_ProcD(const int to, const int nin, const double xin[], const MPI::Intracomm& icomm);
00016 
00025 void Recv_ProcD(const int from, int& nout, double xout[], const int maxbuf,
00026         const MPI::Intracomm& icomm);
00027 
00038 void ExchangeD(const int yourid, const int nin, const double xin[],
00039         int& nout, double xout[], const int maxbuf, const MPI::Intracomm& icomm);
00040 
00041 
00042 //      ----------      debugd.cpp      --------------
00048 int ReadIn();
00049 
00058 void DebugD(const int n, const double x[]);
00059 
00065 void PivotD(const int n, double x[]);
00066 
00067 
00068 //      ----------      vdop.cpp        --------------
00069 
00070 void vdcopy(const int n, double xp[], const int ix,
00071                    const double yp[], const int iy);
00072 
00073 void vdplus(const int n, double x[], const int ix,
00074                    const double y[], const int iy,
00075                    const double z[], const int iz);
00076 
00077 void vddiv(const int n,  double x[], const int ix,
00078                    const double y[], const int iy,
00079                    const double z[], const int iz);
00080 
00081 void vdmult(const int n, double x[], const int ix,
00082                    const double y[], const int iy,
00083                    const double z[], const int iz);
00084 
00085 double dscapr(const int n, const double x[], const double y[]);
00086 
00087 void vdaxpy(const int n, double x[], const double y[],
00088                    const double& a,  const double z[] );
00089 
00090 void vicopy(const int n, int xp[], const int ix,
00091                    const int yp[], const int iy);
00092 
00093 //      ----------      vdop.cpp        --------------
00094 
00095 /*
00096    (0,1) * (0,1) is divided into procx * procy subdomains
00097    numbered row by row.
00098    according to myid, the array neigh contains the id's
00099    of the neighbors at South, East, North, West
00100 
00101         IN:     myid      process id
00102                 procx     number of subdomains in x-direction
00103                 procy     number of subdomains in x-direction
00104         OUT     neigh     id's of neighbors
00105                 color     black/white coloring (check board) of subdomains
00106 */
00107 
00119 void IniGeom(const int myid, const int procx, const int procy, int neigh[], int& color);
00120 
00121 /*
00122    (0,1) * (0,1) is divided into procx * procy subdomains
00123    numbered row by row,
00124    according to myid, the coordinates of the lower left corner
00125    (xl,yb) and the upper right corner (xr,yt) are generated
00126 
00127         IN:     myid      process id
00128                 procx     number of subdomains in x-direction
00129                 procy     number of subdomains in x-direction
00130         OUT:    (xl,yb)   coordinates of the lower left corner
00131                 (xr,yt)   coordinates the upper right corner
00132 */
00146 void IniCoord(const int myid, const int procx, const int procy,
00147               double& xl, double& xr, double& yb, double& yt);
00148 
00149 
00150 //      ----------      addbound.cpp    --------------
00151 
00152 /*
00153         Compute w:= w + s at nodes on  the boundary
00154         South (ib==1), East (ib==2), North (ib==3), West (ib==4)
00155 
00156         IN:     ib      define piece of boundary
00157                 nx, ny  number of intervals in x/y direction
00158                 s       vector of boundary values
00159         I/O:    w       vector
00160 */
00170 void AddBound(const int ib, const int nx, const int ny, double w[], const double s[]);
00171 
00172 
00173 //      ----------      getbound.cpp    --------------
00174 
00175 /*
00176         Copy the values of w corresponding to the boundary
00177         South (ib==1), East (ib==2), North (ib==3), West (ib==4)
00178         onto s
00179 
00180         IN:     ib      define piece of boundary
00181                 nx, ny  number of intervals in x/y direction
00182                 w       vector
00183         OUT:    s       vector of boundary values
00184 */
00195 // GH_NOTE: Absicherung bei s !!
00196 void GetBound(const int ib, const int nx, const int ny, const double w[], double s[]);
00197 
00198 
00199 //      ----------      vecaccu.cpp     --------------
00212 void VecAccu(const int nx, const int ny, double w[],
00213         const int neigh[], const int color, const MPI::Intracomm& icomm);
00218 void FreeVecAccu();
00219 
00220 
00221 
00222 
00223 
00224 #endif
 All Files Functions Variables