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

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

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

revision 1339 by ksteube, Mon Oct 1 08:10:41 2007 UTC revision 1340 by ksteube, Thu Nov 8 06:24:43 2007 UTC
# Line 51  void Finley_Mesh_distributeByRankOfDOF(F Line 51  void Finley_Mesh_distributeByRankOfDOF(F
51          Finley_NodeFile_setDOFRange(&min_id,&max_id,self->Nodes);          Finley_NodeFile_setDOFRange(&min_id,&max_id,self->Nodes);
52          len=max_id-min_id+1;          len=max_id-min_id+1;
53          tmp_node_localDOF_mask=TMPMEMALLOC(len,index_t); /* local mask for used nodes */          tmp_node_localDOF_mask=TMPMEMALLOC(len,index_t); /* local mask for used nodes */
54          tmp_node_localDOF_map=TMPMEMALLOC(len,index_t);          tmp_node_localDOF_map=TMPMEMALLOC(self->Nodes->numNodes,index_t);
55          if (! ( (Finley_checkPtr(tmp_node_localDOF_mask) && Finley_checkPtr(tmp_node_localDOF_map) ) ) ) {          if (! ( (Finley_checkPtr(tmp_node_localDOF_mask) && Finley_checkPtr(tmp_node_localDOF_map) ) ) ) {
56        
57            #pragma omp parallel for private(n) schedule(static)            #pragma omp parallel for private(n) schedule(static)
58            for (n=0;n<len;n++) tmp_node_localDOF_mask[n]=-1;            for (n=0;n<len;n++) tmp_node_localDOF_mask[n]=-1;
59              #pragma omp parallel for private (n) schedule(static)
60              for (n=0;n<self->Nodes->numNodes;n++) tmp_node_localDOF_map[n]=-1;
61            #pragma omp parallel for private(n) schedule(static)            #pragma omp parallel for private(n) schedule(static)
62            for (n=0;n<self->Nodes->numNodes;n++) {            for (n=0;n<self->Nodes->numNodes;n++) {
63  #ifdef BOUNDS_CHECK  #ifdef BOUNDS_CHECK
# Line 68  void Finley_Mesh_distributeByRankOfDOF(F Line 70  void Finley_Mesh_distributeByRankOfDOF(F
70            for  (n=0;n<len;n++) {            for  (n=0;n<len;n++) {
71                k=tmp_node_localDOF_mask[n];                k=tmp_node_localDOF_mask[n];
72                if (k>=0) {                if (k>=0) {
73  #ifdef BOUNDS_CHECK                   tmp_node_localDOF_mask[n]=numDOFs;
                  if ((k) >= len || (k) < 0) { printf("BOUNDS_CHECK %s %d k=%d n=%d max_id=%d min_id=%d len=%d\n", __FILE__, __LINE__, k, n, max_id, min_id, len); exit(1); }  
 #endif  
                  tmp_node_localDOF_map[k]=numDOFs;  
74                   numDOFs++;                   numDOFs++;
75                }                }
76            }            }
77              #pragma omp parallel for private (n,k)
78              for  (n=0;n<self->Nodes->numNodes;n++) {
79                  k=tmp_node_localDOF_mask[self->Nodes->globalDegreesOfFreedom[n]-min_id];
80                  tmp_node_localDOF_map[n]=k;
81              }
82            /* create element coloring */            /* create element coloring */
83            if (Finley_noError()) Finley_Mesh_createColoring(self,tmp_node_localDOF_map);            if (Finley_noError()) Finley_Mesh_createColoring(self,tmp_node_localDOF_map);
84            

Legend:
Removed from v.1339  
changed lines
  Added in v.1340

  ViewVC Help
Powered by ViewVC 1.1.26