/[escript]/branches/doubleplusgood/dudley/src/ElementFile_markNodes.c
ViewVC logotype

Diff of /branches/doubleplusgood/dudley/src/ElementFile_markNodes.c

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

revision 3145 by jfenwick, Fri Sep 3 01:25:52 2010 UTC revision 3152 by jfenwick, Fri Sep 3 05:48:31 2010 UTC
# Line 25  Line 25 
25  /**************************************************************/  /**************************************************************/
26    
27  void Dudley_ElementFile_markNodes(index_t* mask,index_t offset,dim_t numNodes,Dudley_ElementFile* in,bool_t useLinear) {  void Dudley_ElementFile_markNodes(index_t* mask,index_t offset,dim_t numNodes,Dudley_ElementFile* in,bool_t useLinear) {
28     dim_t i,NN,NN2,e;      dim_t i,NN,e;
29     Dudley_ReferenceElement* refElement=NULL;      Dudley_ReferenceElement* refElement=NULL;
30        
31     if (in!=NULL) {      if (in!=NULL)
32           refElement=Dudley_ReferenceElementSet_borrowReferenceElement(in->referenceElementSet, FALSE);          {
33           NN2=in->numNodes;      refElement=Dudley_ReferenceElementSet_borrowReferenceElement(in->referenceElementSet, FALSE);      
34               NN=refElement->numLinearNodes;      NN=in->numNodes;
35               #pragma omp parallel for private(e,i) schedule(static)      #pragma omp parallel for private(e,i) schedule(static)
36               for (e=0;e<in->numElements;e++) {      for (e=0;e<in->numElements;e++)
37                   for (i=0;i<NN;i++) {      {
38                         mask[in->Nodes[INDEX2(i,e,NN2)]-offset]=1;          for (i=0;i<NN;i++)
39                   }          {
40               }          mask[in->Nodes[INDEX2(i,e,NN)]-offset]=1;
41      }          }
42        }
43        }
44  }  }
45    
46  void Dudley_ElementFile_markDOFsConnectedToRange(index_t* mask,index_t offset,index_t marker,index_t firstDOF,index_t lastDOF,index_t *dofIndex,Dudley_ElementFile*in ,bool_t useLinear)  void Dudley_ElementFile_markDOFsConnectedToRange(index_t* mask,index_t offset,index_t marker,index_t firstDOF,index_t lastDOF,index_t *dofIndex,Dudley_ElementFile*in ,bool_t useLinear)
47  {  {
48     dim_t i,NN,NN2,e,j;      dim_t i,NN,e,j;
49     index_t color;      index_t color;
50     Dudley_ReferenceElement* refElement=NULL;      Dudley_ReferenceElement* refElement=NULL;
51     register index_t k;      register index_t k;
52        
53     if (in!=NULL) {      if (in!=NULL)
54           refElement=Dudley_ReferenceElementSet_borrowReferenceElement(in->referenceElementSet, FALSE);          {
55           NN2=in->numNodes;      refElement=Dudley_ReferenceElementSet_borrowReferenceElement(in->referenceElementSet, FALSE);      
56               NN=refElement->numLinearNodes;      NN=in->numNodes;
57               for (color=in->minColor;color<=in->maxColor;color++) {      for (color=in->minColor;color<=in->maxColor;color++)
58                   #pragma omp parallel for private(e,i,j,k) schedule(static)      {
59                   for (e=0;e<in->numElements;e++) {          #pragma omp parallel for private(e,i,j,k) schedule(static)
60                       if (in->Color[e]==color) {          for (e=0;e<in->numElements;e++)
61                           for (i=0;i<NN;i++) {          {
62                               k=dofIndex[in->Nodes[INDEX2(i,e,NN2)]];              if (in->Color[e]==color)
63                               if ( (firstDOF<=k) && (k<lastDOF) ) {              {
64                                   for (j=0;j<NN;j++) mask[dofIndex[in->Nodes[INDEX2(j,e,NN2)]]-offset]=marker;                  for (i=0;i<NN;i++)
65                                   break;                  {
66                               }                      k=dofIndex[in->Nodes[INDEX2(i,e,NN)]];
67                           }                      if ( (firstDOF<=k) && (k<lastDOF) )
68                       }                      {
69                   }                           for (j=0;j<NN;j++) mask[dofIndex[in->Nodes[INDEX2(j,e,NN)]]-offset]=marker;
70               }                           break;
71      }                            }
72                    }
73                }
74            }
75        }
76        }      
77  }  }
78    

Legend:
Removed from v.3145  
changed lines
  Added in v.3152

  ViewVC Help
Powered by ViewVC 1.1.26