Fix errors to make gromacs approach compilable so far
Signed-off-by: Rafael Ravedutti <rafaelravedutti@gmail.com>
This commit is contained in:
		| @@ -52,6 +52,7 @@ typedef struct { | ||||
|     MD_FLOAT *cutforcesq; | ||||
|     MD_FLOAT *cutneighsq; | ||||
|     Cluster *clusters; | ||||
|     int *PBCx, *PBCy, *PBCz; | ||||
| } Atom; | ||||
|  | ||||
| extern void initAtom(Atom*); | ||||
|   | ||||
| @@ -101,7 +101,7 @@ double setup( | ||||
|     if(param->input_file == NULL) { adjustThermo(param, atom); } | ||||
|     setupPbc(atom, param); | ||||
|     updatePbc(atom, param); | ||||
|     buildNeighbor(atom, neighbor); | ||||
|     buildNeighbor(param, atom, neighbor); | ||||
|     E = getTimeStamp(); | ||||
|  | ||||
|     return E-S; | ||||
| @@ -120,7 +120,7 @@ double reneighbour( | ||||
|     setupPbc(atom, param); | ||||
|     updatePbc(atom, param); | ||||
|     //sortAtom(atom); | ||||
|     buildNeighbor(atom, neighbor); | ||||
|     buildNeighbor(param, atom, neighbor); | ||||
|     LIKWID_MARKER_STOP("reneighbour"); | ||||
|     E = getTimeStamp(); | ||||
|  | ||||
|   | ||||
| @@ -54,8 +54,6 @@ static MD_FLOAT binsizex, binsizey; | ||||
| static int coord2bin(MD_FLOAT, MD_FLOAT); | ||||
| static MD_FLOAT bindist(int, int); | ||||
|  | ||||
| extern int *PBCx, *PBCy, *PBCz; | ||||
|  | ||||
| /* exported subroutines */ | ||||
| void initNeighbor(Neighbor *neighbor, Parameter *param) | ||||
| { | ||||
| @@ -510,10 +508,10 @@ void binGhostClusters(Parameter *param, Atom *atom) { | ||||
|             coord2bin2D(xtmp, ytmp, &nix, &niy); | ||||
|             // Always put the cluster on the bin of its innermost atom so | ||||
|             // the cluster should be closer to local clusters | ||||
|             if(PBCx[ci] > 0 && ix > nix) { ix = nix; } | ||||
|             if(PBCx[ci] < 0 && ix < nix) { ix = nix; } | ||||
|             if(PBCy[ci] > 0 && iy > niy) { iy = niy; } | ||||
|             if(PBCy[ci] < 0 && iy < niy) { iy = niy; } | ||||
|             if(atom->PBCx[ci] > 0 && ix > nix) { ix = nix; } | ||||
|             if(atom->PBCx[ci] < 0 && ix < nix) { ix = nix; } | ||||
|             if(atom->PBCy[ci] > 0 && iy > niy) { iy = niy; } | ||||
|             if(atom->PBCy[ci] < 0 && iy < niy) { iy = niy; } | ||||
|         } | ||||
|  | ||||
|         int bin = iy * mbinx + ix + 1; | ||||
|   | ||||
| @@ -30,7 +30,6 @@ | ||||
| #define DELTA 20000 | ||||
|  | ||||
| static int NmaxGhost; | ||||
| static int *PBCx, *PBCy, *PBCz; | ||||
|  | ||||
| static void growPbc(Atom*); | ||||
|  | ||||
| @@ -38,7 +37,7 @@ static void growPbc(Atom*); | ||||
| void initPbc(Atom* atom) { | ||||
|     NmaxGhost = 0; | ||||
|     atom->border_map = NULL; | ||||
|     PBCx = NULL; PBCy = NULL; PBCz = NULL; | ||||
|     atom->PBCx = NULL; atom->PBCy = NULL; atom->PBCz = NULL; | ||||
| } | ||||
|  | ||||
| /* update coordinates of ghost atoms */ | ||||
| @@ -55,9 +54,9 @@ void updatePbc(Atom *atom, Parameter *param) { | ||||
|         MD_FLOAT *bmap_cptr = cluster_ptr(border_map[ci]); | ||||
|  | ||||
|         for(int cii = 0; cii < atom->clusters[ci].natoms; cii++) { | ||||
|             cluster_x(cptr, cii) = cluster_x(bmap_cptr, cii) + PBCx[ci] * xprd; | ||||
|             cluster_y(cptr, cii) = cluster_y(bmap_cptr, cii) + PBCy[ci] * yprd; | ||||
|             cluster_z(cptr, cii) = cluster_z(bmap_cptr, cii) + PBCz[ci] * zprd; | ||||
|             cluster_x(cptr, cii) = cluster_x(bmap_cptr, cii) + atom->PBCx[ci] * xprd; | ||||
|             cluster_y(cptr, cii) = cluster_y(bmap_cptr, cii) + atom->PBCy[ci] * yprd; | ||||
|             cluster_z(cptr, cii) = cluster_z(bmap_cptr, cii) + atom->PBCz[ci] * zprd; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -74,6 +73,7 @@ void updateAtomsPbc(Atom *atom, Parameter *param) { | ||||
|             atom_x(i) += xprd; | ||||
|         } else if(atom_x(i) >= xprd) { | ||||
|             atom_x(i) -= xprd; | ||||
|         } | ||||
|  | ||||
|         if(atom_y(i) < 0.0) { | ||||
|             atom_y(i) += yprd; | ||||
| @@ -96,9 +96,9 @@ void updateAtomsPbc(Atom *atom, Parameter *param) { | ||||
| #define ADDGHOST(dx,dy,dz)                                          \ | ||||
|     Nghost++;                                                       \ | ||||
|     border_map[Nghost] = ci;                                        \ | ||||
|     PBCx[Nghost] = dx;                                              \ | ||||
|     PBCy[Nghost] = dy;                                              \ | ||||
|     PBCz[Nghost] = dz;                                              \ | ||||
|     atom->PBCx[Nghost] = dx;                                        \ | ||||
|     atom->PBCy[Nghost] = dy;                                        \ | ||||
|     atom->PBCz[Nghost] = dz;                                        \ | ||||
|     copy_cluster_types(atom, atom->Nclusters_local + Nghost, ci) | ||||
|  | ||||
| void copy_cluster_types(Atom *atom, int dest, int src) { | ||||
| @@ -107,6 +107,17 @@ void copy_cluster_types(Atom *atom, int dest, int src) { | ||||
|     } | ||||
| } | ||||
|  | ||||
| /* internal subroutines */ | ||||
| void growPbc(Atom* atom) { | ||||
|     int nold = NmaxGhost; | ||||
|     NmaxGhost += DELTA; | ||||
|  | ||||
|     atom->border_map = (int*) reallocate(atom->border_map, ALIGNMENT, NmaxGhost * sizeof(int), nold * sizeof(int)); | ||||
|     atom->PBCx = (int*) reallocate(atom->PBCx, ALIGNMENT, NmaxGhost * sizeof(int), nold * sizeof(int)); | ||||
|     atom->PBCy = (int*) reallocate(atom->PBCy, ALIGNMENT, NmaxGhost * sizeof(int), nold * sizeof(int)); | ||||
|     atom->PBCz = (int*) reallocate(atom->PBCz, ALIGNMENT, NmaxGhost * sizeof(int), nold * sizeof(int)); | ||||
| } | ||||
|  | ||||
| void setupPbc(Atom *atom, Parameter *param) { | ||||
|     int *border_map = atom->border_map; | ||||
|     MD_FLOAT xprd = param->xprd; | ||||
| @@ -131,7 +142,6 @@ void setupPbc(Atom *atom, Parameter *param) { | ||||
|         MD_FLOAT bbmaxy = atom->clusters[ci].bbmaxy; | ||||
|         MD_FLOAT bbminz = atom->clusters[ci].bbminz; | ||||
|         MD_FLOAT bbmaxz = atom->clusters[ci].bbmaxz; | ||||
|  | ||||
|         /* Setup ghost atoms */ | ||||
|         /* 6 planes */ | ||||
|         if (bbminx < Cutneigh)         { ADDGHOST(+1,0,0); } | ||||
| @@ -168,14 +178,3 @@ void setupPbc(Atom *atom, Parameter *param) { | ||||
|     atom->Nclusters_ghost = Nghost + 1; | ||||
|     atom->Nclusters = atom->Nclusters_local + Nghost + 1; | ||||
| } | ||||
|  | ||||
| /* internal subroutines */ | ||||
| void growPbc(Atom* atom) { | ||||
|     int nold = NmaxGhost; | ||||
|     NmaxGhost += DELTA; | ||||
|  | ||||
|     atom->border_map = (int*) reallocate(atom->border_map, ALIGNMENT, NmaxGhost * sizeof(int), nold * sizeof(int)); | ||||
|     PBCx = (int*) reallocate(PBCx, ALIGNMENT, NmaxGhost * sizeof(int), nold * sizeof(int)); | ||||
|     PBCy = (int*) reallocate(PBCy, ALIGNMENT, NmaxGhost * sizeof(int), nold * sizeof(int)); | ||||
|     PBCz = (int*) reallocate(PBCz, ALIGNMENT, NmaxGhost * sizeof(int), nold * sizeof(int)); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user