/[escript]/temp_trunk_copy/finley/src/IndexList.c
ViewVC logotype

Diff of /temp_trunk_copy/finley/src/IndexList.c

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

revision 971 by ksteube, Wed Feb 14 04:40:49 2007 UTC revision 1028 by gross, Wed Mar 14 00:15:24 2007 UTC
# Line 31  Line 31 
31  void Finley_IndexList_insertElements(Finley_IndexList* index_list, Finley_ElementFile* elements,  void Finley_IndexList_insertElements(Finley_IndexList* index_list, Finley_ElementFile* elements,
32                                         bool_t reduce_row_order, index_t* row_Label,                                         bool_t reduce_row_order, index_t* row_Label,
33                                         bool_t reduce_col_order, index_t* col_Label) {                                         bool_t reduce_col_order, index_t* col_Label) {
34    index_t color;    index_t color, *id=NULL;
35    dim_t e,kr,kc,NN_row,NN_col,i,icol,irow;    dim_t e,kr,kc,NN_row,NN_col,i,icol,irow, NN, *row_node=NULL,*col_node=NULL;
36    
37    if (elements!=NULL) {    if (elements!=NULL) {
38      dim_t NN=elements->ReferenceElement->Type->numNodes;      NN=elements->ReferenceElement->Type->numNodes;
39      index_t id[NN],*row_node,*col_node;      id=TMPMEMALLOC(NN, index_t);
40      for (i=0;i<NN;i++) id[i]=i;      if (! Finley_checkPtr(id) ) {
41      if (reduce_col_order) {          for (i=0;i<NN;i++) id[i]=i;
42         col_node=elements->ReferenceElement->Type->linearNodes;          if (reduce_col_order) {
43         NN_col=elements->LinearReferenceElement->Type->numNodes;             col_node=elements->ReferenceElement->Type->linearNodes;
44      } else {             NN_col=elements->LinearReferenceElement->Type->numNodes;
45         col_node=id;          } else {
46         NN_col=elements->ReferenceElement->Type->numNodes;             col_node=id;
47      }             NN_col=elements->ReferenceElement->Type->numNodes;
48      if (reduce_row_order) {          }
49         row_node=elements->ReferenceElement->Type->linearNodes;          if (reduce_row_order) {
50         NN_row=elements->LinearReferenceElement->Type->numNodes;             row_node=elements->ReferenceElement->Type->linearNodes;
51      } else {             NN_row=elements->LinearReferenceElement->Type->numNodes;
52         row_node=id;          } else {
53         NN_row=elements->ReferenceElement->Type->numNodes;             row_node=id;
54      }             NN_row=elements->ReferenceElement->Type->numNodes;
55      for (color=elements->minColor;color<=elements->maxColor;color++) {          }
56          #pragma omp for private(e,irow,kr,kc,icol) schedule(static)          for (color=elements->minColor;color<=elements->maxColor;color++) {
57          for (e=0;e<elements->numElements;e++) {              #pragma omp for private(e,irow,kr,kc,icol) schedule(static)
58              if (elements->Color[e]==color) {              for (e=0;e<elements->numElements;e++) {
59                  for (kr=0;kr<NN_row;kr++) {                  if (elements->Color[e]==color) {
60                    irow=row_Label[elements->Nodes[INDEX2(row_node[kr],e,NN)]];                      for (kr=0;kr<NN_row;kr++) {
61                    for (kc=0;kc<NN_col;kc++) {                        irow=row_Label[elements->Nodes[INDEX2(row_node[kr],e,NN)]];
62                         icol=col_Label[elements->Nodes[INDEX2(col_node[kc],e,NN)]];                        for (kc=0;kc<NN_col;kc++) {
63                         Finley_IndexList_insertIndex(&(index_list[irow]),icol);                             icol=col_Label[elements->Nodes[INDEX2(col_node[kc],e,NN)]];
64                    }                             Finley_IndexList_insertIndex(&(index_list[irow]),icol);
65                          }
66                        }
67                  }                  }
68              }              }
69          }          }
70            TMPMEMFREE(id);
71        }        }
72    }    }
73    return;    return;

Legend:
Removed from v.971  
changed lines
  Added in v.1028

  ViewVC Help
Powered by ViewVC 1.1.26