|
Accu
|
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
1.7.6.1