/[escript]/trunk/finley/src/Mesh_optimizeDOFLabeling.c
ViewVC logotype

Diff of /trunk/finley/src/Mesh_optimizeDOFLabeling.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3258 by jfenwick, Thu Jan 28 02:03:15 2010 UTC revision 3259 by jfenwick, Mon Oct 11 01:48:14 2010 UTC
# Line 29  void Finley_Mesh_optimizeDOFLabeling(Fin Line 29  void Finley_Mesh_optimizeDOFLabeling(Fin
29       register index_t k;       register index_t k;
30       dim_t mpiSize, myNumVertices,len, p, i;       dim_t mpiSize, myNumVertices,len, p, i;
31       Paso_Pattern *pattern=NULL;       Paso_Pattern *pattern=NULL;
32       Paso_MPI_rank myRank,dest,source,current_rank;       Esys_MPI_rank myRank,dest,source,current_rank;
33       Finley_IndexList* index_list=NULL;       Finley_IndexList* index_list=NULL;
34       #ifdef PASO_MPI       #ifdef ESYS_MPI
35       MPI_Status status;       MPI_Status status;
36       #endif       #endif
37    
# Line 84  void Finley_Mesh_optimizeDOFLabeling(Fin Line 84  void Finley_Mesh_optimizeDOFLabeling(Fin
84    
85             Paso_Pattern_free(pattern);             Paso_Pattern_free(pattern);
86        }        }
87        Paso_MPIInfo_noError(in->MPIInfo);        Esys_MPIInfo_noError(in->MPIInfo);
88        if (Finley_noError()) {        if (Finley_noError()) {
89                /* shift new labeling to create a global id */                /* shift new labeling to create a global id */
90                #pragma omp parallel for private(i)                #pragma omp parallel for private(i)
# Line 92  void Finley_Mesh_optimizeDOFLabeling(Fin Line 92  void Finley_Mesh_optimizeDOFLabeling(Fin
92    
93    
94                /* distribute new labeling to other processors */                /* distribute new labeling to other processors */
95                dest=Paso_MPIInfo_mod(mpiSize, myRank + 1);                dest=Esys_MPIInfo_mod(mpiSize, myRank + 1);
96                source=Paso_MPIInfo_mod(mpiSize, myRank - 1);                source=Esys_MPIInfo_mod(mpiSize, myRank - 1);
97                current_rank=myRank;                current_rank=myRank;
98                for (p=0; p< mpiSize; ++p) {                for (p=0; p< mpiSize; ++p) {
99                    firstVertex=distribution[current_rank];                    firstVertex=distribution[current_rank];
# Line 107  void Finley_Mesh_optimizeDOFLabeling(Fin Line 107  void Finley_Mesh_optimizeDOFLabeling(Fin
107                    }                    }
108        
109                    if (p<mpiSize-1) {  /* the final send can be skipped */                    if (p<mpiSize-1) {  /* the final send can be skipped */
110                       #ifdef PASO_MPI                       #ifdef ESYS_MPI
111                       MPI_Sendrecv_replace(newGlobalDOFID,len, MPI_INT,                       MPI_Sendrecv_replace(newGlobalDOFID,len, MPI_INT,
112                                            dest, in->MPIInfo->msg_tag_counter,                                            dest, in->MPIInfo->msg_tag_counter,
113                                            source, in->MPIInfo->msg_tag_counter,                                            source, in->MPIInfo->msg_tag_counter,
114                                            in->MPIInfo->comm,&status);                                            in->MPIInfo->comm,&status);
115                       #endif                       #endif
116                       in->MPIInfo->msg_tag_counter++;                       in->MPIInfo->msg_tag_counter++;
117                       current_rank=Paso_MPIInfo_mod(mpiSize, current_rank-1);                       current_rank=Esys_MPIInfo_mod(mpiSize, current_rank-1);
118                   }                   }
119                }                }
120       }       }

Legend:
Removed from v.3258  
changed lines
  Added in v.3259

  ViewVC Help
Powered by ViewVC 1.1.26