source: issm/oecreview/Archive/23390-24306/ISSM-23558-23559.diff

Last change on this file was 24307, checked in by Mathieu Morlighem, 5 years ago

NEW: adding Archive/23390-24306

File size: 30.5 KB
RevLine 
[24307]1Index: ../trunk-jpl/src/c/classes/Node.cpp
2===================================================================
3--- ../trunk-jpl/src/c/classes/Node.cpp (revision 23558)
4+++ ../trunk-jpl/src/c/classes/Node.cpp (revision 23559)
5@@ -20,7 +20,7 @@
6 this->approximation=0;
7 }
8 /*}}}*/
9-Node::Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int in_approximation){/*{{{*/
10+Node::Node(int node_id,int node_sid,int node_lid,int node_pid,int io_index, IoModel* iomodel,int analysis_enum,int in_approximation){/*{{{*/
11
12 /*Intermediary*/
13 int k,l;
14@@ -30,6 +30,7 @@
15 this->id = node_id;
16 this->sid = node_sid;
17 this->lid = node_lid;
18+ this->pid = node_pid;
19 this->analysis_enum = analysis_enum;
20
21 /*Initialize coord_system: Identity matrix by default*/
22@@ -136,6 +137,7 @@
23 output->id = this->id;
24 output->sid = this->sid;
25 output->lid = this->lid;
26+ output->pid = this->pid;
27 output->analysis_enum = this->analysis_enum;
28 output->approximation = this->approximation;
29
30@@ -155,6 +157,7 @@
31 MARSHALLING(id);
32 MARSHALLING(sid);
33 MARSHALLING(lid);
34+ MARSHALLING(pid);
35 MARSHALLING(indexingupdate);
36 indexing.Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
37 MARSHALLING(analysis_enum);
38@@ -181,6 +184,8 @@
39 _printf_("Node:\n");
40 _printf_(" id : " << id << "\n");
41 _printf_(" sid: " << sid << "\n");
42+ _printf_(" lid: " << lid << "\n");
43+ _printf_(" pid: " << pid << "\n");
44 _printf_(" analysis_enum: " << EnumToStringx(analysis_enum) << "\n");
45 _printf_(" approximation: " << EnumToStringx(approximation) << "\n");
46 _printf_(" indexingupdate: " << indexingupdate << "\n");
47Index: ../trunk-jpl/src/c/classes/Node.h
48===================================================================
49--- ../trunk-jpl/src/c/classes/Node.h (revision 23558)
50+++ ../trunk-jpl/src/c/classes/Node.h (revision 23559)
51@@ -31,6 +31,7 @@
52 int id; // unique arbitrary id.
53 int sid; // "serial" id (rank of this node if the dataset was serial on 1 cpu)
54 int lid; // "local" id (rank of this node in current partition)
55+ int pid; // parallel id (specific to this partition)
56
57 int analysis_enum;
58 IssmDouble coord_system[3][3];
59@@ -39,7 +40,7 @@
60
61 /*Node constructors, destructors*/
62 Node();
63- Node(int node_id,int node_sid,int node_lid,int io_index, IoModel* iomodel,int analysis_enum,int approximation_in);
64+ Node(int node_id,int node_sid,int node_lid,int node_pid,int io_index, IoModel* iomodel,int analysis_enum,int approximation_in);
65 ~Node();
66
67 /*Object virtual functions definitions:*/
68Index: ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp
69===================================================================
70--- ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp (revision 23558)
71+++ ../trunk-jpl/src/c/analyses/StressbalanceSIAAnalysis.cpp (revision 23559)
72@@ -98,7 +98,7 @@
73 if(iomodel->my_vertices[i]){
74
75 /*Create new node if is in this processor's partition*/
76- node = new Node(i+1,i,lid++,i,iomodel,StressbalanceSIAAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i])));
77+ node = new Node(i+1,i,lid++,0,i,iomodel,StressbalanceSIAAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i])));
78
79 /*Deactivate node if not SIA*/
80 if(IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]))!=SIAApproximationEnum){
81Index: ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp
82===================================================================
83--- ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp (revision 23558)
84+++ ../trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp (revision 23559)
85@@ -557,12 +557,12 @@
86 if(iomodel->my_vertices[i]){
87 approximation=IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]));
88 if(approximation==FSApproximationEnum) approximation=FSvelocityEnum;
89- nodes->AddObject(new Node(i+1,i,lid++,i,iomodel,StressbalanceAnalysisEnum,approximation));
90+ nodes->AddObject(new Node(i+1,i,lid++,0,i,iomodel,StressbalanceAnalysisEnum,approximation));
91 }
92 }
93 for(int i=0;i<iomodel->numberofelements;i++){
94 if(iomodel->my_elements[i]){
95- node = new Node(iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,StressbalanceAnalysisEnum,FSvelocityEnum);
96+ node = new Node(iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,StressbalanceAnalysisEnum,FSvelocityEnum);
97 node->Deactivate();
98 nodes->AddObject(node);
99 }
100@@ -571,7 +571,7 @@
101 for(int i=0;i<iomodel->numberofvertices;i++){
102 if(iomodel->my_vertices[i]){
103 approximation=IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]));
104- node = new Node(iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,StressbalanceAnalysisEnum,FSpressureEnum);
105+ node = new Node(iomodel->numberofvertices+iomodel->numberofelements+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,0,i,iomodel,StressbalanceAnalysisEnum,FSpressureEnum);
106 if(approximation==HOApproximationEnum || approximation==SSAApproximationEnum){
107 node->Deactivate();
108 }
109@@ -582,7 +582,7 @@
110 else{
111 for(int i=0;i<iomodel->numberofvertices;i++){
112 if(iomodel->my_vertices[i]){
113- nodes->AddObject(new Node(i+1,i,lid++,i,iomodel,StressbalanceAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]))));
114+ nodes->AddObject(new Node(i+1,i,lid++,0,i,iomodel,StressbalanceAnalysisEnum,IoCodeToEnumVertexEquation(reCast<int>(iomodel->Data("md.flowequation.vertex_equation")[i]))));
115 }
116 }
117 }
118Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
119===================================================================
120--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp (revision 23558)
121+++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp (revision 23559)
122@@ -267,7 +267,7 @@
123 int* vertices_ranks = xNew<int>(MAXCONNECTIVITY*iomodel->numberofvertices);
124 for(int i=0;i<MAXCONNECTIVITY*iomodel->numberofvertices;i++) vertices_ranks[i] = -1;
125
126- /*For all vertices, cound how many cpus hold vertex i (initialize with 0)*/
127+ /*For all vertices, count how many cpus hold vertex i (initialize with 0)*/
128 int* vertices_proc_count = xNewZeroInit<int>(iomodel->numberofvertices);
129
130 /*Create vector of size total nbv, initialized with -1, that will keep track of local ids*/
131Index: ../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp
132===================================================================
133--- ../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp (revision 23558)
134+++ ../trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp (revision 23559)
135@@ -21,7 +21,7 @@
136 case P1Enum:
137 for(i=0;i<iomodel->numberofvertices;i++){
138 if(iomodel->my_vertices[i]){
139- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
140+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
141 }
142 }
143 break;
144@@ -31,7 +31,7 @@
145 for(i=0;i<iomodel->numberofelements;i++){
146 for(j=0;j<3;j++){
147 if(my_nodes[3*i+j]){
148- nodes->AddObject(new Node(id0+3*i+j+1,id0+3*i+j,lid++,iomodel->elements[3*i+j]-1,iomodel,analysis,approximation));
149+ nodes->AddObject(new Node(id0+3*i+j+1,id0+3*i+j,lid++,0,iomodel->elements[3*i+j]-1,iomodel,analysis,approximation));
150
151 }
152 }
153@@ -41,12 +41,12 @@
154 case P1bubbleEnum:
155 for(i=0;i<iomodel->numberofvertices;i++){
156 if(iomodel->my_vertices[i]){
157- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
158+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
159 }
160 }
161 for(i=0;i<iomodel->numberofelements;i++){
162 if(iomodel->my_elements[i]){
163- nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation));
164+ nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation));
165 }
166 }
167 break;
168@@ -54,12 +54,12 @@
169 case P1bubblecondensedEnum:
170 for(i=0;i<iomodel->numberofvertices;i++){
171 if(iomodel->my_vertices[i]){
172- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
173+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
174 }
175 }
176 for(i=0;i<iomodel->numberofelements;i++){
177 if(iomodel->my_elements[i]){
178- node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation);
179+ node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation);
180 node->HardDeactivate();
181 nodes->AddObject(node);
182 }
183@@ -70,7 +70,7 @@
184 EdgesPartitioning(iomodel);
185 for(i=0;i<iomodel->numberofvertices;i++){
186 if(iomodel->my_vertices[i]){
187- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
188+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
189 }
190 }
191
192@@ -78,7 +78,7 @@
193 for(i=0;i<iomodel->numberofedges;i++){
194 if(iomodel->edges[i*3+2]==2){
195 if(iomodel->my_edges[i]){
196- node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,iomodel,analysis,approximation);
197+ node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
198 nodes->AddObject(node);
199 }
200 counter++;
201@@ -90,7 +90,7 @@
202 EdgesPartitioning(iomodel);
203 for(i=0;i<iomodel->numberofvertices;i++){
204 if(iomodel->my_vertices[i]){
205- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
206+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
207 }
208 }
209
210@@ -98,9 +98,9 @@
211 for(i=0;i<iomodel->numberofedges;i++){
212 if(iomodel->edges[i*3+2]==2){
213 if(iomodel->my_edges[i]){
214- node = new Node(id0+iomodel->numberofvertices+2*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
215+ node = new Node(id0+iomodel->numberofvertices+2*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
216 nodes->AddObject(node);
217- node = new Node(id0+iomodel->numberofvertices+2*i+2,counter+2,lid++,0,iomodel,analysis,approximation);
218+ node = new Node(id0+iomodel->numberofvertices+2*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation);
219 nodes->AddObject(node);
220 }
221 counter=counter+2;
222@@ -111,7 +111,7 @@
223 EdgesPartitioning(iomodel);
224 for(i=0;i<iomodel->numberofvertices;i++){
225 if(iomodel->my_vertices[i]){
226- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
227+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
228 }
229 }
230 counter = iomodel->numberofvertices;
231@@ -118,11 +118,11 @@
232 for(i=0;i<iomodel->numberofedges;i++){
233 if(iomodel->edges[i*3+2]==2){/*Vertical edges*/
234 if(iomodel->my_edges[i]){
235- node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
236+ node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
237 nodes->AddObject(node);
238- node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,iomodel,analysis,approximation);
239+ node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation);
240 nodes->AddObject(node);
241- node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,iomodel,analysis,approximation);
242+ node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,0,iomodel,analysis,approximation);
243 nodes->AddObject(node);
244 }
245 counter=counter+3;
246@@ -134,7 +134,7 @@
247 EdgesPartitioning(iomodel);
248 for(i=0;i<iomodel->numberofvertices;i++){
249 if(iomodel->my_vertices[i]){
250- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
251+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
252 }
253 }
254
255@@ -142,7 +142,7 @@
256 for(i=0;i<iomodel->numberofedges;i++){
257 if(iomodel->edges[i*3+2]!=2){
258 if(iomodel->my_edges[i]){
259- node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,iomodel,analysis,approximation);
260+ node = new Node(id0+iomodel->numberofvertices+i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
261 nodes->AddObject(node);
262 }
263 counter++;
264@@ -154,12 +154,12 @@
265 EdgesPartitioning(iomodel);
266 for(i=0;i<iomodel->numberofvertices;i++){
267 if(iomodel->my_vertices[i]){
268- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
269+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
270 }
271 }
272 for(i=0;i<iomodel->numberofedges;i++){
273 if(iomodel->my_edges[i]){
274- nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation));
275+ nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation));
276 }
277 }
278 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
279@@ -168,7 +168,7 @@
280 for(i=0;i<iomodel->numberoffaces;i++){
281 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
282 if(iomodel->my_faces[i]){
283- node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,approximation);
284+ node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,approximation);
285 nodes->AddObject(node);
286 }
287 }
288@@ -185,12 +185,12 @@
289 EdgesPartitioning(iomodel);
290 for(i=0;i<iomodel->numberofvertices;i++){
291 if(iomodel->my_vertices[i]){
292- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
293+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
294 }
295 }
296 for(i=0;i<iomodel->numberofedges;i++){
297 if(iomodel->my_edges[i]){
298- nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,approximation));
299+ nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,approximation));
300 }
301 }
302 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
303@@ -199,7 +199,7 @@
304 for(i=0;i<iomodel->numberoffaces;i++){
305 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
306 if(iomodel->my_faces[i]){
307- node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,approximation);
308+ node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,approximation);
309 nodes->AddObject(node);
310 }
311 }
312@@ -214,7 +214,7 @@
313 }
314 for(i=0;i<iomodel->numberofelements;i++){
315 if(iomodel->my_elements[i]){
316- nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,iomodel,analysis,approximation));
317+ nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,0,iomodel,analysis,approximation));
318 }
319 }
320 break;
321@@ -223,7 +223,7 @@
322 FacesPartitioning(iomodel);
323 for(i=0;i<iomodel->numberofvertices;i++){
324 if(iomodel->my_vertices[i]){
325- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
326+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,approximation));
327 }
328 }
329 counter = iomodel->numberofvertices;
330@@ -230,11 +230,11 @@
331 for(i=0;i<iomodel->numberofedges;i++){
332 if(iomodel->edges[i*3+2]==2){/*Vertical edges*/
333 if(iomodel->my_edges[i]){
334- node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
335+ node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
336 nodes->AddObject(node);
337- node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,iomodel,analysis,approximation);
338+ node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation);
339 nodes->AddObject(node);
340- node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,iomodel,analysis,approximation);
341+ node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,0,iomodel,analysis,approximation);
342 nodes->AddObject(node);
343 }
344 counter=counter+3;
345@@ -241,7 +241,7 @@
346 }
347 else if(iomodel->edges[i*3+2]==1){/*Horizontal edges*/
348 if(iomodel->my_edges[i]){
349- node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
350+ node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
351 nodes->AddObject(node);
352 }
353 counter=counter+1;
354@@ -254,11 +254,11 @@
355 for(i=0;i<iomodel->numberoffaces;i++){
356 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
357 if(iomodel->my_faces[i]){
358- node = new Node(id0+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
359+ node = new Node(id0+3*i+1,counter+1,lid++,0,0,iomodel,analysis,approximation);
360 nodes->AddObject(node);
361- node = new Node(id0+3*i+2,counter+2,lid++,0,iomodel,analysis,approximation);
362+ node = new Node(id0+3*i+2,counter+2,lid++,0,0,iomodel,analysis,approximation);
363 nodes->AddObject(node);
364- node = new Node(id0+3*i+3,counter+3,lid++,0,iomodel,analysis,approximation);
365+ node = new Node(id0+3*i+3,counter+3,lid++,0,0,iomodel,analysis,approximation);
366 nodes->AddObject(node);
367 }
368 counter=counter+3;
369@@ -278,7 +278,7 @@
370 /*P1 velocity*/
371 for(i=0;i<iomodel->numberofvertices;i++){
372 if(iomodel->my_vertices[i]){
373- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
374+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
375 }
376 }
377 /*P1 pressure*/
378@@ -285,7 +285,7 @@
379 vnodes = id0+iomodel->numberofvertices;
380 for(i=0;i<iomodel->numberofvertices;i++){
381 if(iomodel->my_vertices[i]){
382- nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,i,iomodel,analysis,FSpressureEnum));
383+ nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,0,i,iomodel,analysis,FSpressureEnum));
384 }
385 }
386 break;
387@@ -294,7 +294,7 @@
388 /*P1 velocity*/
389 for(i=0;i<iomodel->numberofvertices;i++){
390 if(iomodel->my_vertices[i]){
391- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
392+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
393 }
394 }
395 /*P1 pressure*/
396@@ -301,7 +301,7 @@
397 vnodes = id0+iomodel->numberofvertices;
398 for(i=0;i<iomodel->numberofvertices;i++){
399 if(iomodel->my_vertices[i]){
400- nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,i,iomodel,analysis,FSpressureEnum));
401+ nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+i,lid++,0,i,iomodel,analysis,FSpressureEnum));
402 }
403 }
404 break;
405@@ -310,12 +310,12 @@
406 /*P1+ velocity (bubble statically condensed)*/
407 for(i=0;i<iomodel->numberofvertices;i++){
408 if(iomodel->my_vertices[i]){
409- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
410+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
411 }
412 }
413 for(i=0;i<iomodel->numberofelements;i++){
414 if(iomodel->my_elements[i]){
415- node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum);
416+ node = new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum);
417 node->HardDeactivate();
418 nodes->AddObject(node);
419 }
420@@ -324,7 +324,7 @@
421 vnodes = id0+iomodel->numberofvertices+iomodel->numberofelements;
422 for(i=0;i<iomodel->numberofvertices;i++){
423 if(iomodel->my_vertices[i]){
424- nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,analysis,FSpressureEnum));
425+ nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,0,i,iomodel,analysis,FSpressureEnum));
426 }
427 }
428 break;
429@@ -333,12 +333,12 @@
430 /*P1+ velocity*/
431 for(i=0;i<iomodel->numberofvertices;i++){
432 if(iomodel->my_vertices[i]){
433- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
434+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
435 }
436 }
437 for(i=0;i<iomodel->numberofelements;i++){
438 if(iomodel->my_elements[i]){
439- nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
440+ nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
441 }
442 }
443 /*P1 pressure*/
444@@ -345,7 +345,7 @@
445 vnodes = id0+iomodel->numberofvertices+iomodel->numberofelements;
446 for(i=0;i<iomodel->numberofvertices;i++){
447 if(iomodel->my_vertices[i]){
448- nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,i,iomodel,analysis,FSpressureEnum));
449+ nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofelements+i,lid++,0,i,iomodel,analysis,FSpressureEnum));
450 }
451 }
452 break;
453@@ -356,12 +356,12 @@
454 EdgesPartitioning(iomodel);
455 for(i=0;i<iomodel->numberofvertices;i++){
456 if(iomodel->my_vertices[i]){
457- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
458+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
459 }
460 }
461 for(i=0;i<iomodel->numberofedges;i++){
462 if(iomodel->my_edges[i]){
463- nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
464+ nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
465 }
466 }
467 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
468@@ -370,7 +370,7 @@
469 for(i=0;i<iomodel->numberoffaces;i++){
470 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
471 if(iomodel->my_faces[i]){
472- node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum);
473+ node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum);
474 nodes->AddObject(node);
475 }
476 }
477@@ -393,7 +393,7 @@
478 vnodes = id0+numberoffaces;
479 for(i=0;i<iomodel->numberofvertices;i++){
480 if(iomodel->my_vertices[i]){
481- nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofedges+numberoffaces+i,lid++,i,iomodel,analysis,FSpressureEnum));
482+ nodes->AddObject(new Node(vnodes+i+1,iomodel->numberofvertices+iomodel->numberofedges+numberoffaces+i,lid++,0,i,iomodel,analysis,FSpressureEnum));
483 }
484 }
485 break;
486@@ -403,12 +403,12 @@
487 EdgesPartitioning(iomodel);
488 for(i=0;i<iomodel->numberofvertices;i++){
489 if(iomodel->my_vertices[i]){
490- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
491+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
492 }
493 }
494 for(i=0;i<iomodel->numberofedges;i++){
495 if(iomodel->my_edges[i]){
496- nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
497+ nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
498 }
499 }
500 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
501@@ -417,7 +417,7 @@
502 for(i=0;i<iomodel->numberoffaces;i++){
503 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
504 if(iomodel->my_faces[i]){
505- node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum);
506+ node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum);
507 nodes->AddObject(node);
508 }
509 }
510@@ -439,7 +439,7 @@
511 /*P2xP4 velocity*/
512 for(i=0;i<iomodel->numberofvertices;i++){
513 if(iomodel->my_vertices[i]){
514- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
515+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
516 }
517 }
518 counter = iomodel->numberofvertices;
519@@ -446,11 +446,11 @@
520 for(i=0;i<iomodel->numberofedges;i++){
521 if(iomodel->edges[i*3+2]==2){/*Vertical edges*/
522 if(iomodel->my_edges[i]){
523- node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum);
524+ node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,FSvelocityEnum);
525 nodes->AddObject(node);
526- node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,iomodel,analysis,FSvelocityEnum);
527+ node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,0,iomodel,analysis,FSvelocityEnum);
528 nodes->AddObject(node);
529- node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,iomodel,analysis,FSvelocityEnum);
530+ node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,0,iomodel,analysis,FSvelocityEnum);
531 nodes->AddObject(node);
532 }
533 counter=counter+3;
534@@ -457,7 +457,7 @@
535 }
536 else if(iomodel->edges[i*3+2]==1){/*Horizontal edges*/
537 if(iomodel->my_edges[i]){
538- node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum);
539+ node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,0,iomodel,analysis,FSvelocityEnum);
540 nodes->AddObject(node);
541 }
542 counter=counter+1;
543@@ -470,11 +470,11 @@
544 for(i=0;i<iomodel->numberoffaces;i++){
545 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
546 if(iomodel->my_faces[i]){
547- node = new Node(id0+3*i+1,counter+1,lid++,0,iomodel,analysis,FSvelocityEnum);
548+ node = new Node(id0+3*i+1,counter+1,lid++,0,0,iomodel,analysis,FSvelocityEnum);
549 nodes->AddObject(node);
550- node = new Node(id0+3*i+2,counter+2,lid++,0,iomodel,analysis,FSvelocityEnum);
551+ node = new Node(id0+3*i+2,counter+2,lid++,0,0,iomodel,analysis,FSvelocityEnum);
552 nodes->AddObject(node);
553- node = new Node(id0+3*i+3,counter+3,lid++,0,iomodel,analysis,FSvelocityEnum);
554+ node = new Node(id0+3*i+3,counter+3,lid++,0,0,iomodel,analysis,FSvelocityEnum);
555 nodes->AddObject(node);
556 }
557 counter=counter+3;
558@@ -491,7 +491,7 @@
559 vnodes = id0+3*iomodel->numberoffaces;
560 for(i=0;i<iomodel->numberofvertices;i++){
561 if(iomodel->my_vertices[i]){
562- nodes->AddObject(new Node(vnodes+i+1,counter+1,lid++,i,iomodel,analysis,FSpressureEnum));
563+ nodes->AddObject(new Node(vnodes+i+1,counter+1,lid++,0,i,iomodel,analysis,FSpressureEnum));
564 }
565 counter++;
566 }
567@@ -502,12 +502,12 @@
568 EdgesPartitioning(iomodel);
569 for(i=0;i<iomodel->numberofvertices;i++){
570 if(iomodel->my_vertices[i]){
571- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
572+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
573 }
574 }
575 for(i=0;i<iomodel->numberofedges;i++){
576 if(iomodel->my_edges[i]){
577- nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
578+ nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
579 }
580 }
581 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
582@@ -516,7 +516,7 @@
583 for(i=0;i<iomodel->numberoffaces;i++){
584 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
585 if(iomodel->my_faces[i]){
586- node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum);
587+ node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum);
588 nodes->AddObject(node);
589 }
590 }
591@@ -531,7 +531,7 @@
592 }
593 for(i=0;i<iomodel->numberofelements;i++){
594 if(iomodel->my_elements[i]){
595- nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,iomodel,analysis,FSvelocityEnum));
596+ nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
597 }
598 }
599
600@@ -546,7 +546,7 @@
601 for(i=0;i<iomodel->numberofelements;i++){
602 if(iomodel->my_elements[i]){
603 for(j=0;j<elementnbv;j++){
604- nodes->AddObject(new Node(vnodes+elementnbv*i+j+1,vnodes+elementnbv*i+j,lid++,iomodel->elements[+elementnbv*i+j]-1,iomodel,analysis,FSpressureEnum));
605+ nodes->AddObject(new Node(vnodes+elementnbv*i+j+1,vnodes+elementnbv*i+j,lid++,0,iomodel->elements[+elementnbv*i+j]-1,iomodel,analysis,FSpressureEnum));
606
607 }
608 }
609@@ -558,12 +558,12 @@
610 EdgesPartitioning(iomodel);
611 for(i=0;i<iomodel->numberofvertices;i++){
612 if(iomodel->my_vertices[i]){
613- nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,FSvelocityEnum));
614+ nodes->AddObject(new Node(id0+i+1,i,lid++,0,i,iomodel,analysis,FSvelocityEnum));
615 }
616 }
617 for(i=0;i<iomodel->numberofedges;i++){
618 if(iomodel->my_edges[i]){
619- nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,iomodel,analysis,FSvelocityEnum));
620+ nodes->AddObject(new Node(id0+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
621 }
622 }
623 id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
624@@ -572,7 +572,7 @@
625 for(i=0;i<iomodel->numberoffaces;i++){
626 if(iomodel->faces[i*iomodel->facescols+2]==2){/*Vertical quads*/
627 if(iomodel->my_faces[i]){
628- node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,iomodel,analysis,FSvelocityEnum);
629+ node = new Node(id0+i+1,iomodel->numberofvertices+iomodel->numberofedges+i,lid++,0,0,iomodel,analysis,FSvelocityEnum);
630 nodes->AddObject(node);
631 }
632 }
633@@ -587,7 +587,7 @@
634 }
635 for(i=0;i<iomodel->numberofelements;i++){
636 if(iomodel->my_elements[i]){
637- nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,iomodel,analysis,FSvelocityEnum));
638+ nodes->AddObject(new Node(id0+i+1,id0+i,lid++,0,0,iomodel,analysis,FSvelocityEnum));
639 }
640 }
641
Note: See TracBrowser for help on using the repository browser.