/[escript]/trunk-mpi-branch/finley/src/NodeFile.c
ViewVC logotype

Diff of /trunk-mpi-branch/finley/src/NodeFile.c

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

revision 1222 by ksteube, Tue Feb 13 22:56:57 2007 UTC revision 1223 by gross, Fri Aug 3 02:40:39 2007 UTC
# Line 14  Line 14 
14  /*                                                             */  /*                                                             */
15  /*   Finley: Mesh : NodeFile */  /*   Finley: Mesh : NodeFile */
16  /*                                                             */  /*                                                             */
17  /*   allocates and deallocates node files                      */  /*   allocates and freeates node files                      */
18  /*                                                             */  /*                                                             */
19  /**************************************************************/  /**************************************************************/
20    
# Line 29  Line 29 
29    
30  /*   allocates a node file to hold nodes */  /*   allocates a node file to hold nodes */
31  /*   use Finley_NodeFile_allocTable to allocate the node table (Id,Coordinatess). */  /*   use Finley_NodeFile_allocTable to allocate the node table (Id,Coordinatess). */
32  #ifdef PASO_MPI  
33  Finley_NodeFile* Finley_NodeFile_alloc(dim_t numDim, Paso_MPIInfo *MPIInfo){  Finley_NodeFile* Finley_NodeFile_alloc(dim_t numDim, Paso_MPIInfo *MPIInfo)
34  #else  {
 Finley_NodeFile* Finley_NodeFile_alloc(dim_t numDim){  
 #endif  
35    Finley_NodeFile *out;    Finley_NodeFile *out;
36        
37    /*  allocate the return value */    /*  allocate the return value */
# Line 42  Finley_NodeFile* Finley_NodeFile_alloc(d Line 40  Finley_NodeFile* Finley_NodeFile_alloc(d
40    if (Finley_checkPtr(out)) return NULL;    if (Finley_checkPtr(out)) return NULL;
41    out->isPrepared=FINLEY_UNKNOWN;    out->isPrepared=FINLEY_UNKNOWN;
42    out->numNodes=0;    out->numNodes=0;
   out->numDegreesOfFreedom=0;  
   out->reducedNumDegreesOfFreedom=0;  
   out->reducedNumNodes=0;  
43    out->numDim=numDim;    out->numDim=numDim;
44    out->Id=NULL;    out->Id=NULL;
45      out->globalDegreesOfFreedom=NULL;
46    out->Tag=NULL;    out->Tag=NULL;
47    out->Coordinates=NULL;    out->Coordinates=NULL;
   out->degreeOfFreedom=NULL;  
   out->degreeOfFreedomId=NULL;  
   out->reducedDegreeOfFreedom=NULL;  
   out->reducedDegreeOfFreedomId=NULL;  
   out->toReduced=NULL;  
48    out->status=FINLEY_INITIAL_STATUS;    out->status=FINLEY_INITIAL_STATUS;
49  #ifdef PASO_MPI  
50    out->Dom=NULL;    out->nodesMapping=NULL;
51      out->reducedNodesMapping=NULL;
52      out->degreesOfFreedomMapping=NULL;
53      out->reducedDegreesOfFreedomMapping=NULL;
54    
55    out->MPIInfo = Paso_MPIInfo_getReference( MPIInfo );    out->MPIInfo = Paso_MPIInfo_getReference( MPIInfo );
   out->degreeOfFreedomDistribution = Finley_NodeDistribution_alloc( MPIInfo );  
   out->reducedDegreeOfFreedomDistribution = Finley_NodeDistribution_alloc( MPIInfo );  
   out->CommBuffer = Paso_CommBuffer_alloc( MPIInfo, __g_nodeTag++ );  
   out->reducedCommBuffer = Paso_CommBuffer_alloc( MPIInfo, __g_nodeTag++ );  
 #endif  
56    return out;    return out;
57  }  }
58    
59  /*  deallocates a node file: */  /*  frees a node file: */
60    
61  void Finley_NodeFile_dealloc(Finley_NodeFile* in) {  void Finley_NodeFile_free(Finley_NodeFile* in) {
62    if (in!=NULL) {    if (in!=NULL) {
63       #ifdef Finley_TRACE       Finley_NodeFile_freeTable(in);
64       printf("node file is deallocated.\n");       Paso_MPIInfo_free( in->MPIInfo );
      #endif  
      Finley_NodeFile_deallocTable(in);  
 #ifdef PASO_MPI  
      Paso_MPIInfo_dealloc( in->MPIInfo );  
      Finley_NodeDistribution_dealloc( in->degreeOfFreedomDistribution );  
      Finley_NodeDistribution_dealloc( in->reducedDegreeOfFreedomDistribution );  
      Paso_CommBuffer_dealloc( in->CommBuffer );  
      Paso_CommBuffer_dealloc( in->reducedCommBuffer );  
 #endif  
65       MEMFREE(in);             MEMFREE(in);      
66    }    }
67  }  }
68    
69    index_t Finley_NodeFile_getFirstReducedNode(Finley_NodeFile* in) {
70      if (in!=NULL) {
71        return Paso_Distribution_getFirstComponent(in->reducedNodesDistribution);
72      } else {
73        return 0;
74      }
75    }
76    index_t Finley_NodeFile_getLastReducedNode(Finley_NodeFile* in){
77      if (in!=NULL) {
78        return Paso_Distribution_getLastComponent(in->reducedNodesDistribution);
79      } else {
80        return 0;
81      }
82    
83    }
84    
85    dim_t Finley_NodeFile_getGlobalNumReducedNodes(Finley_NodeFile* in){
86      if (in!=NULL) {
87        return Paso_Distribution_getGlobalNumComponents(in->reducedNodesDistribution);
88      } else {
89        return 0;
90      }
91    
92    }
93    index_t* Finley_NodeFile_borrowGlobalReducedNodesIndex(Finley_NodeFile* in){
94      if (in!=NULL) {
95        return in->globalReducedNodesIndex;
96      } else {
97        return NULL;
98      }
99    }
100    index_t Finley_NodeFile_getFirstNode(Finley_NodeFile* in) {
101      if (in!=NULL) {
102        return Paso_Distribution_getFirstComponent(in->nodesDistribution);
103      } else {
104        return 0;
105      }
106    }
107    index_t Finley_NodeFile_getLastNode(Finley_NodeFile* in){
108      if (in!=NULL) {
109        return Paso_Distribution_getLastComponent(in->nodesDistribution);
110      } else {
111        return 0;
112      }
113    
114    }
115    dim_t Finley_NodeFile_getGlobalNumNodes(Finley_NodeFile* in){
116      if (in!=NULL) {
117        return Paso_Distribution_getGlobalNumComponents(in->nodesDistribution);
118      } else {
119        return 0;
120      }
121    
122    }
123    index_t* Finley_NodeFile_borrowGlobalNodesIndex(Finley_NodeFile* in){
124      if (in!=NULL) {
125        return in->globalNodesIndex;
126      } else {
127        return NULL;
128      }
129    }
130    
131    dim_t Finley_NodeFile_getNumReducedNodes(Finley_NodeFile* in) {
132      if (in!=NULL) {
133           return in->reducedNodesMapping->numTargets;
134      } else {
135        return 0;
136      }
137    
138    }
139    dim_t Finley_NodeFile_getNumDegreesOfFreedom(Finley_NodeFile* in) {
140      if (in!=NULL) {
141          return Paso_Distribution_getMyNumComponents(in->degreesOfFreedomDistribution);
142      } else {
143        return 0;
144      }
145    }
146    dim_t Finley_NodeFile_getNumNodes(Finley_NodeFile* in) {
147      if (in!=NULL) {
148            return in->nodesMapping->numNodes;
149      } else {
150        return 0;
151      }
152    }
153    dim_t Finley_NodeFile_getNumReducedDegreesOfFreedom(Finley_NodeFile* in) {
154      if (in!=NULL) {
155          return Paso_Distribution_getMyNumComponents(in->reducedDegreesOfFreedomDistribution);
156      } else {
157        return 0;
158      }
159    }
160    
161    
162    index_t* Finley_NodeFile_borrowTargetReducedNodes(Finley_NodeFile* in){
163      if (in!=NULL) {
164        return in->reducedNodesMapping->target;
165      } else {
166        return NULL;
167      }
168    }
169    
170    index_t* Finley_NodeFile_borrowTargetDegreesOfFreedom(Finley_NodeFile* in){
171      if (in!=NULL) {
172        return in->degreesOfFreedomMapping->target;
173      } else {
174        return NULL;
175      }
176    }
177    
178    index_t* Finley_NodeFile_borrowTargetNodes(Finley_NodeFile* in){
179      if (in!=NULL) {
180        return in->nodesMapping->target;
181      } else {
182        return NULL;
183      }
184    }
185    
186    index_t* Finley_NodeFile_borrowTargetReducedDegreesOfFreedom(Finley_NodeFile* in){
187      if (in!=NULL) {
188        return in->reducedDegreesOfFreedomMapping->target;
189      } else {
190        return NULL;
191      }
192    }
193    
194    index_t* Finley_NodeFile_borrowReducedNodesTarget(Finley_NodeFile* in){
195      if (in!=NULL) {
196        return in->reducedNodesMapping->map;
197      } else {
198        return NULL;
199      }
200    }
201    
202    index_t* Finley_NodeFile_borrowDegreesOfFreedomTarget(Finley_NodeFile* in){
203      if (in!=NULL) {
204        return in->degreesOfFreedomMapping->map;
205      } else {
206        return NULL;
207      }
208    }
209    
210    index_t* Finley_NodeFile_borrowNodesTarget(Finley_NodeFile* in){
211      if (in!=NULL) {
212        return in->nodesMapping->map;
213      } else {
214        return NULL;
215      }
216    }
217    
218    index_t* Finley_NodeFile_borrowReducedDegreesOfFreedomTarget(Finley_NodeFile* in){
219      if (in!=NULL) {
220        return in->reducedDegreesOfFreedomMapping->map;
221      } else {
222        return NULL;
223      }
224    }
225    
226    

Legend:
Removed from v.1222  
changed lines
  Added in v.1223

  ViewVC Help
Powered by ViewVC 1.1.26