Actual source code: ex2.c

petsc-3.11.4 2019-09-28
Report Typos and Errors
  1: static char help[] = "Directly check a DMStag local-to-global scatter";

  3:  #include <petscdm.h>
  4:  #include <petscdmstag.h>

  6: static PetscErrorCode Test_3d_4x4x4_3x3x3(DM dmstag);

  8: int main(int argc,char **argv)
  9: {
 11:   DM             dmstag;
 12:   PetscInt       dim,dof[4],i,elx,ely,elz;

 14:   PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr;
 15:   dim = 3;
 16:   for (i=0; i<4; ++i) dof[i] = 1;
 17:   elx = ely = elz = 4;
 18:   switch (dim) {
 19:     case 3:
 20:       DMStagCreate3d(PETSC_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,elx,ely,elz,PETSC_DECIDE,PETSC_DECIDE,PETSC_DECIDE,dof[0],dof[1],dof[2],dof[3],DMSTAG_STENCIL_BOX,1,NULL,NULL,NULL,&dmstag);
 21:       break;
 22:     default:
 23:       SETERRQ1(PETSC_COMM_WORLD,PETSC_ERR_SUP,"No support for dimension %D",dim);
 24:   }
 25:   DMSetFromOptions(dmstag);
 26:   DMSetUp(dmstag);
 27:   Test_3d_4x4x4_3x3x3(dmstag);
 28:   DMDestroy(&dmstag);
 29:   PetscFinalize();
 30:   return ierr;
 31: }

 33: static PetscErrorCode Test_3d_4x4x4_3x3x3(DM dmstag)
 34: {
 36:   Vec            vecLocal,vecGlobal;
 37:   PetscInt       i,low,high,n;
 38:   PetscScalar    *arr;


 42:   /* Check that grid and rank grid is as expected for this test */
 43:   {
 44:     PetscInt nRanks[3],n[3],dim;
 45:     DMGetDimension(dmstag,&dim);
 46:     if (dim != 3) SETERRQ(PetscObjectComm((PetscObject)dmstag),PETSC_ERR_SUP,"This is a 3d test");
 47:     DMStagGetNumRanks(dmstag,&nRanks[0],&nRanks[1],&nRanks[2]);
 48:     for (i=0; i<3; ++i) if (nRanks[i] != 3) SETERRQ(PetscObjectComm((PetscObject)dmstag),PETSC_ERR_SUP,"This test requires a 3x3x3 rank grid (run on 27 ranks)");
 49:     DMStagGetGlobalSizes(dmstag,&n[0],&n[1],&n[2]);
 50:     for (i=0; i<3; ++i) if (n[i] != 4) SETERRQ(PetscObjectComm((PetscObject)dmstag),PETSC_ERR_SUP,"This test requires a 4x4x4 element grid");
 51:   }

 53:   /* Populate global vector by converting the global index number to a scalar value. */
 54:   DMCreateGlobalVector(dmstag,&vecGlobal);
 55:   VecGetOwnershipRange(vecGlobal,&low,&high);
 56:   n = high-low;
 57:   VecGetArray(vecGlobal,&arr);
 58:   for (i=0; i<n; ++i) {
 59:    arr[i] = (PetscScalar) (i + low);
 60:   }
 61:   VecRestoreArray(vecGlobal,&arr);

 63:   /* Populate a local vector initially with -1, then glocal->local scatter */
 64:   DMCreateLocalVector(dmstag,&vecLocal);
 65:   VecSet(vecLocal,-1.0);
 66:   DMGlobalToLocalBegin(dmstag,vecGlobal,INSERT_VALUES,vecLocal);
 67:   DMGlobalToLocalEnd  (dmstag,vecGlobal,INSERT_VALUES,vecLocal);

 69:   /* Check that entries are as expected */
 70:   {
 71:     PetscInt entriesGhost,nerr;
 72:     const PetscInt maxErrPerRank = 3;
 73:     PetscScalar *arrLocalExpected;
 74:     const PetscScalar *arrLocal;
 75:     PetscMPIInt rank;

 77:     MPI_Comm_rank(PetscObjectComm((PetscObject)dmstag),&rank);
 78:     VecGetSize(vecLocal,&entriesGhost); /* entriesGhost happens to always be 216 here */
 79:     PetscMalloc1(entriesGhost,&arrLocalExpected);

 81:     /* Hand-computed expected entries (27 blocks of 8 in all cases) */
 82:     if (rank == 0) {
 83:           const PetscScalar arrLocalExpectedHere[] = {
 84:             0,  1,  2,  3,  4,  5,  6,  7,
 85:             8,  9,  10, 11, 12, 13, 14, 15,
 86:             64, 65, 66, 67, 68, 69, 70, 71,
 87:             16, 17, 18, 19, 20, 21, 22, 23,
 88:             24, 25, 26, 27, 28, 29 ,30, 31,
 89:             72, 73, 74, 75, 76, 77, 78, 79,
 90:             144,145,146,147,148,149,150,151,
 91:             152,153,154,155,156,157,158,159,
 92:             176,177,178,179,180,181,182,183,
 93:             32, 33, 34, 35, 36, 37, 38, 39,
 94:             40, 41, 42, 43, 44, 45, 46, 47,
 95:             80, 81, 82, 83, 84, 85, 86, 87,
 96:             48, 49, 50, 51, 52, 53, 54, 55,
 97:             56, 57, 58, 59, 60, 61, 62, 63,
 98:             88, 89, 90, 91, 92, 93, 94, 95,
 99:             160,161,162,163,164,165,166,167,
100:             168,169,170,171,172,173,174,175,
101:             184,185,186,187,188,189,190,191,
102:             324,325,326,327,328,329,330,331,
103:             332,333,334,335,336,337,338,339,
104:             356,357,358,359,360,361,362,363,
105:             340,341,342,343,344,345,346,347,
106:             348,349,350,351,352,353,354,355,
107:             364,365,366,367,368,369,370,371,
108:             396,397,398,399,400,401,402,403,
109:             404,405,406,407,408,409,410,411,
110:             412,413,414,415,416,417,418,419,
111:           };
112:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
113:     } else if (rank == 1) {
114:           const PetscScalar arrLocalExpectedHere[] = {
115:             8,  9,  10, 11, 12, 13, 14, 15,
116:             64, 65, 66, 67, 68, 69, 70, 71,
117:             96, 97, 98, 99, 100,101,102,103,
118:             24, 25, 26, 27, 28, 29 ,30, 31,
119:             72, 73, 74, 75, 76, 77, 78, 79,
120:             108,109,110,111,112,113,114,115,
121:             152,153,154,155,156,157,158,159,
122:             176,177,178,179,180,181,182,183,
123:             192,193,194,195,196,197,198,199,
124:             40, 41, 42, 43, 44, 45, 46, 47,
125:             80, 81, 82, 83, 84, 85, 86, 87,
126:             120,121,122,123,124,125,126,127,
127:             56, 57, 58, 59, 60, 61, 62, 63,
128:             88, 89, 90, 91, 92, 93, 94, 95,
129:             132,133,134,135,136,137,138,139,
130:             168,169,170,171,172,173,174,175,
131:             184,185,186,187,188,189,190,191,
132:             204,205,206,207,208,209,210,211,
133:             332,333,334,335,336,337,338,339,
134:             356,357,358,359,360,361,362,363,
135:             372,373,374,375,376,377,378,379,
136:             348,349,350,351,352,353,354,355,
137:             364,365,366,367,368,369,370,371,
138:             384,385,386,387,388,389,390,391,
139:             404,405,406,407,408,409,410,411,
140:             412,413,414,415,416,417,418,419,
141:             420,421,422,423,424,425,426,427,
142:           };
143:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
144:     } else if (rank == 2) {
145:           const PetscScalar arrLocalExpectedHere[] = {
146:             64, 65, 66, 67, 68, 69, 70, 71,
147:             96, 97, 98, 99, 100,101,102,103,
148:             104,-1, 105, -1,106,-1, 107,-1,
149:             72, 73, 74, 75, 76, 77, 78, 79,
150:             108,109,110,111,112,113,114,115,
151:             116,-1, 117,-1, 118,-1, 119,-1,
152:             176,177,178,179,180,181,182,183,
153:             192,193,194,195,196,197,198,199,
154:             200,-1, 201,-1, 202,-1, 203,-1,
155:             80, 81, 82, 83, 84, 85, 86, 87,
156:             120,121,122,123,124,125,126,127,
157:             128,-1, 129,-1, 130,-1, 131, -1,
158:             88, 89, 90, 91, 92, 93, 94, 95,
159:             132,133,134,135,136,137,138,139,
160:             140,-1 ,141,-1, 142,-1, 143,-1,
161:             184,185,186,187,188,189,190,191,
162:             204,205,206,207,208,209,210,211,
163:             212,-1, 213,-1, 214,-1, 215,-1,
164:             356,357,358,359,360,361,362,363,
165:             372,373,374,375,376,377,378,379,
166:             380,-1, 381,-1, 382,-1, 383,-1,
167:             364,365,366,367,368,369,370,371,
168:             384,385,386,387,388,389,390,391,
169:             392,-1, 393,-1, 394,-1, 395,-1,
170:             412,413,414,415,416,417,418,419,
171:             420,421,422,423,424,425,426,427,
172:             428,-1, 429,-1, 430,-1 ,431,-1,
173:           };
174:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
175:     } else if (rank == 3) {
176:           const PetscScalar arrLocalExpectedHere[] = {
177:             16, 17, 18, 19, 20, 21, 22, 23,
178:             24, 25, 26, 27, 28, 29 ,30, 31,
179:             72, 73, 74, 75, 76, 77, 78, 79,
180:             144,145,146,147,148,149,150,151,
181:             152,153,154,155,156,157,158,159,
182:             176,177,178,179,180,181,182,183,
183:             216,217,218,219,220,221,222,223,
184:             224,225,226,227,228,229,230,231,
185:             264,265,266,267,268,269,270,271,
186:             48, 49, 50, 51, 52, 53, 54, 55,
187:             56, 57, 58, 59, 60, 61, 62, 63,
188:             88, 89, 90, 91, 92, 93, 94, 95,
189:             160,161,162,163,164,165,166,167,
190:             168,169,170,171,172,173,174,175,
191:             184,185,186,187,188,189,190,191,
192:             240,241,242,243,244,245,246,247,
193:             248,249,250,251,252,253,254,255,
194:             276,277,278,279,280,281,282,283,
195:             340,341,342,343,344,345,346,347,
196:             348,349,350,351,352,353,354,355,
197:             364,365,366,367,368,369,370,371,
198:             396,397,398,399,400,401,402,403,
199:             404,405,406,407,408,409,410,411,
200:             412,413,414,415,416,417,418,419,
201:             432,433,434,435,436,437,438,439,
202:             440,441,442,443,444,445,446,447,
203:             456,457,458,459,460,461,462,463,
204:           };
205:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
206:     } else if (rank == 4) {
207:           const PetscScalar arrLocalExpectedHere[] = {
208:             24, 25, 26, 27, 28, 29 ,30, 31,
209:             72, 73, 74, 75, 76, 77, 78, 79,
210:             108,109,110,111,112,113,114,115,
211:             152,153,154,155,156,157,158,159,
212:             176,177,178,179,180,181,182,183,
213:             192,193,194,195,196,197,198,199,
214:             224,225,226,227,228,229,230,231,
215:             264,265,266,267,268,269,270,271,
216:             288,289,290,291,292,293,294,295,
217:             56, 57, 58, 59, 60, 61, 62, 63,
218:             88, 89, 90, 91, 92, 93, 94, 95,
219:             132,133,134,135,136,137,138,139,
220:             168,169,170,171,172,173,174,175,
221:             184,185,186,187,188,189,190,191,
222:             204,205,206,207,208,209,210,211,
223:             248,249,250,251,252,253,254,255,
224:             276,277,278,279,280,281,282,283,
225:             306,307,308,309,310,311,312,313,
226:             348,349,350,351,352,353,354,355,
227:             364,365,366,367,368,369,370,371,
228:             384,385,386,387,388,389,390,391,
229:             404,405,406,407,408,409,410,411,
230:             412,413,414,415,416,417,418,419,
231:             420,421,422,423,424,425,426,427,
232:             440,441,442,443,444,445,446,447,
233:             456,457,458,459,460,461,462,463,
234:             468,469,470,471,472,473,474,475,
235:           };
236:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
237:     } else if (rank == 5) {
238:           const PetscScalar arrLocalExpectedHere[] = {
239:             72, 73, 74, 75, 76, 77, 78, 79,
240:             108,109,110,111,112,113,114,115,
241:             116,-1, 117,-1, 118,-1, 119,-1,
242:             176,177,178,179,180,181,182,183,
243:             192,193,194,195,196,197,198,199,
244:             200,-1, 201,-1, 202,-1, 203,-1,
245:             264,265,266,267,268,269,270,271,
246:             288,289,290,291,292,293,294,295,
247:             296,-1, 297,-1, 298,-1, 299,-1,
248:             88, 89, 90, 91, 92, 93, 94, 95,
249:             132,133,134,135,136,137,138,139,
250:             140,-1 ,141,-1, 142,-1, 143,-1,
251:             184,185,186,187,188,189,190,191,
252:             204,205,206,207,208,209,210,211,
253:             212,-1, 213,-1, 214,-1, 215,-1,
254:             276,277,278,279,280,281,282,283,
255:             306,307,308,309,310,311,312,313,
256:             314,-1, 315,-1, 316,-1, 317,-1,
257:             364,365,366,367,368,369,370,371,
258:             384,385,386,387,388,389,390,391,
259:             392,-1, 393,-1, 394,-1, 395,-1,
260:             412,413,414,415,416,417,418,419,
261:             420,421,422,423,424,425,426,427,
262:             428,-1, 429,-1, 430,-1, 431,-1,
263:             456,457,458,459,460,461,462,463,
264:             468,469,470,471,472,473,474,475,
265:             476,-1, 477,-1, 478,-1, 479,-1,
266:           };
267:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
268:     } else if (rank == 6) {
269:           const PetscScalar arrLocalExpectedHere[] = {
270:             144,145,146,147,148,149,150,151,
271:             152,153,154,155,156,157,158,159,
272:             176,177,178,179,180,181,182,183,
273:             216,217,218,219,220,221,222,223,
274:             224,225,226,227,228,229,230,231,
275:             264,265,266,267,268,269,270,271,
276:             232,233,-1, -1, 234,235,-1, -1,
277:             236,237,-1, -1, 238,239,-1, -1,
278:             272,273,-1, -1, 274,275,-1, -1,
279:             160,161,162,163,164,165,166,167,
280:             168,169,170,171,172,173,174,175,
281:             184,185,186,187,188,189,190,191,
282:             240,241,242,243,244,245,246,247,
283:             248,249,250,251,252,253,254,255,
284:             276,277,278,279,280,281,282,283,
285:             256,257,-1, -1, 258,259,-1, -1,
286:             260,261,-1, -1, 262,263,-1, -1,
287:             284,285,-1, -1, 286,287,-1, -1,
288:             396,397,398,399,400,401,402,403,
289:             404,405,406,407,408,409,410,411,
290:             412,413,414,415,416,417,418,419,
291:             432,433,434,435,436,437,438,439,
292:             440,441,442,443,444,445,446,447,
293:             456,457,458,459,460,461,462,463,
294:             448,449,-1, -1, 450,451,-1, -1,
295:             452,453,-1, -1, 454,455,-1, -1,
296:             464,465,-1, -1, 466,467,-1, -1,
297:           };
298:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
299:     } else if (rank == 7) {
300:           const PetscScalar arrLocalExpectedHere[] = {
301:             152,153,154,155,156,157,158,159,
302:             176,177,178,179,180,181,182,183,
303:             192,193,194,195,196,197,198,199,
304:             224,225,226,227,228,229,230,231,
305:             264,265,266,267,268,269,270,271,
306:             288,289,290,291,292,293,294,295,
307:             236,237,-1, -1, 238,239,-1, -1,
308:             272,273,-1, -1, 274,275,-1, -1,
309:             300,301,-1, -1, 302,303,-1, -1,
310:             168,169,170,171,172,173,174,175,
311:             184,185,186,187,188,189,190,191,
312:             204,205,206,207,208,209,210,211,
313:             248,249,250,251,252,253,254,255,
314:             276,277,278,279,280,281,282,283,
315:             306,307,308,309,310,311,312,313,
316:             260,261,-1, -1, 262,263,-1, -1,
317:             284,285,-1, -1, 286,287,-1, -1,
318:             318,319,-1, -1, 320,321,-1, -1,
319:             404,405,406,407,408,409,410,411,
320:             412,413,414,415,416,417,418,419,
321:             420,421,422,423,424,425,426,427,
322:             440,441,442,443,444,445,446,447,
323:             456,457,458,459,460,461,462,463,
324:             468,469,470,471,472,473,474,475,
325:             452,453,-1, -1, 454,455,-1, -1,
326:             464,465,-1, -1, 466,467,-1, -1,
327:             480,481,-1, -1, 482,483,-1, -1,
328:           };
329:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
330:     } else if (rank == 8) {
331:           const PetscScalar arrLocalExpectedHere[] = {
332:             176,177,178,179,180,181,182,183,
333:             192,193,194,195,196,197,198,199,
334:             200,-1, 201,-1, 202,-1, 203,-1,
335:             264,265,266,267,268,269,270,271,
336:             288,289,290,291,292,293,294,295,
337:             296,-1, 297,-1, 298,-1, 299,-1,
338:             272,273,-1, -1, 274,275,-1, -1,
339:             300,301,-1, -1, 302,303,-1, -1,
340:             304,-1, -1, -1, 305,-1, -1, -1,
341:             184,185,186,187,188,189,190,191,
342:             204,205,206,207,208,209,210,211,
343:             212,-1, 213,-1, 214,-1, 215,-1,
344:             276,277,278,279,280,281,282,283,
345:             306,307,308,309,310,311,312,313,
346:             314,-1, 315,-1, 316,-1, 317,-1,
347:             284,285,-1, -1, 286,287,-1, -1,
348:             318,319,-1, -1, 320,321,-1, -1,
349:             322,-1, -1, -1, 323,-1, -1, -1,
350:             412,413,414,415,416,417,418,419,
351:             420,421,422,423,424,425,426,427,
352:             428,-1, 429,-1, 430,-1 ,431,-1,
353:             456,457,458,459,460,461,462,463,
354:             468,469,470,471,472,473,474,475,
355:             476,-1, 477,-1, 478,-1, 479,-1,
356:             464,465,-1, -1, 466,467,-1, -1,
357:             480,481,-1, -1, 482,483,-1, -1,
358:             484,-1, -1, -1, 485,-1, -1, -1,
359:           };
360:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
361:     } else if (rank == 9) {
362:           const PetscScalar arrLocalExpectedHere[] = {
363:             32, 33, 34, 35, 36, 37, 38, 39,
364:             40, 41, 42, 43, 44, 45, 46, 47,
365:             80, 81, 82, 83, 84, 85, 86, 87,
366:             48, 49, 50, 51, 52, 53, 54, 55,
367:             56, 57, 58, 59, 60, 61, 62, 63,
368:             88, 89, 90, 91, 92, 93, 94, 95,
369:             160,161,162,163,164,165,166,167,
370:             168,169,170,171,172,173,174,175,
371:             184,185,186,187,188,189,190,191,
372:             324,325,326,327,328,329,330,331,
373:             332,333,334,335,336,337,338,339,
374:             356,357,358,359,360,361,362,363,
375:             340,341,342,343,344,345,346,347,
376:             348,349,350,351,352,353,354,355,
377:             364,365,366,367,368,369,370,371,
378:             396,397,398,399,400,401,402,403,
379:             404,405,406,407,408,409,410,411,
380:             412,413,414,415,416,417,418,419,
381:             486,487,488,489,490,491,492,493,
382:             494,495,496,497,498,499,500,501,
383:             534,535,536,537,538,539,540,541,
384:             502,503,504,505,506,507,508,509,
385:             510,511,512,513,514,515,516,517,
386:             542,543,544,545,546,547,548,549,
387:             594,595,596,597,598,599,600,601,
388:             602,603,604,605,606,607,608,609,
389:             618,619,620,621,622,623,624,625,
390:           };
391:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
392:     } else if (rank == 10) {
393:           const PetscScalar arrLocalExpectedHere[] = {
394:             40, 41, 42, 43, 44, 45, 46, 47,
395:             80, 81, 82, 83, 84, 85, 86, 87,
396:             120,121,122,123,124,125,126,127,
397:             56, 57, 58, 59, 60, 61, 62, 63,
398:             88, 89, 90, 91, 92, 93, 94, 95,
399:             132,133,134,135,136,137,138,139,
400:             168,169,170,171,172,173,174,175,
401:             184,185,186,187,188,189,190,191,
402:             204,205,206,207,208,209,210,211,
403:             332,333,334,335,336,337,338,339,
404:             356,357,358,359,360,361,362,363,
405:             372,373,374,375,376,377,378,379,
406:             348,349,350,351,352,353,354,355,
407:             364,365,366,367,368,369,370,371,
408:             384,385,386,387,388,389,390,391,
409:             404,405,406,407,408,409,410,411,
410:             412,413,414,415,416,417,418,419,
411:             420,421,422,423,424,425,426,427,
412:             494,495,496,497,498,499,500,501,
413:             534,535,536,537,538,539,540,541,
414:             558,559,560,561,562,563,564,565,
415:             510,511,512,513,514,515,516,517,
416:             542,543,544,545,546,547,548,549,
417:             570,571,572,573,574,575,576,577,
418:             602,603,604,605,606,607,608,609,
419:             618,619,620,621,622,623,624,625,
420:             630,631,632,633,634,635,636,637,
421:           };
422:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
423:     } else if (rank == 11) {
424:           const PetscScalar arrLocalExpectedHere[] = {
425:             80, 81, 82, 83, 84, 85, 86, 87,
426:             120,121,122,123,124,125,126,127,
427:             128,-1, 129,-1, 130,-1, 131, -1,
428:             88, 89, 90, 91, 92, 93, 94, 95,
429:             132,133,134,135,136,137,138,139,
430:             140,-1 ,141,-1, 142,-1, 143,-1,
431:             184,185,186,187,188,189,190,191,
432:             204,205,206,207,208,209,210,211,
433:             212,-1, 213,-1, 214,-1, 215,-1,
434:             356,357,358,359,360,361,362,363,
435:             372,373,374,375,376,377,378,379,
436:             380,-1, 381,-1, 382,-1, 383,-1,
437:             364,365,366,367,368,369,370,371,
438:             384,385,386,387,388,389,390,391,
439:             392,-1, 393,-1, 394,-1, 395,-1,
440:             412,413,414,415,416,417,418,419,
441:             420,421,422,423,424,425,426,427,
442:             428,-1, 429,-1, 430,-1 ,431,-1,
443:             534,535,536,537,538,539,540,541,
444:             558,559,560,561,562,563,564,565,
445:             566,-1, 567,-1, 568,-1, 569,-1,
446:             542,543,544,545,546,547,548,549,
447:             570,571,572,573,574,575,576,577,
448:             578,-1, 579,-1, 580,-1, 581,-1,
449:             618,619,620,621,622,623,624,625,
450:             630,631,632,633,634,635,636,637,
451:             638,-1, 639,-1, 640,-1, 641,-1,
452:           };
453:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
454:     } else if (rank == 12) {
455:           const PetscScalar arrLocalExpectedHere[] = {
456:             48, 49, 50, 51, 52, 53, 54, 55,
457:             56, 57, 58, 59, 60, 61, 62, 63,
458:             88, 89, 90, 91, 92, 93, 94, 95,
459:             160,161,162,163,164,165,166,167,
460:             168,169,170,171,172,173,174,175,
461:             184,185,186,187,188,189,190,191,
462:             240,241,242,243,244,245,246,247,
463:             248,249,250,251,252,253,254,255,
464:             276,277,278,279,280,281,282,283,
465:             340,341,342,343,344,345,346,347,
466:             348,349,350,351,352,353,354,355,
467:             364,365,366,367,368,369,370,371,
468:             396,397,398,399,400,401,402,403,
469:             404,405,406,407,408,409,410,411,
470:             412,413,414,415,416,417,418,419,
471:             432,433,434,435,436,437,438,439,
472:             440,441,442,443,444,445,446,447,
473:             456,457,458,459,460,461,462,463,
474:             502,503,504,505,506,507,508,509,
475:             510,511,512,513,514,515,516,517,
476:             542,543,544,545,546,547,548,549,
477:             594,595,596,597,598,599,600,601,
478:             602,603,604,605,606,607,608,609,
479:             618,619,620,621,622,623,624,625,
480:             648,649,650,651,652,653,654,655,
481:             656,657,658,659,660,661,662,663,
482:             684,685,686,687,688,689,690,691,
483:           };
484:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
485:     } else if (rank == 13) {
486:           const PetscScalar arrLocalExpectedHere[] = {
487:             56, 57, 58, 59, 60, 61, 62, 63,
488:             88, 89, 90, 91, 92, 93, 94, 95,
489:             132,133,134,135,136,137,138,139,
490:             168,169,170,171,172,173,174,175,
491:             184,185,186,187,188,189,190,191,
492:             204,205,206,207,208,209,210,211,
493:             248,249,250,251,252,253,254,255,
494:             276,277,278,279,280,281,282,283,
495:             306,307,308,309,310,311,312,313,
496:             348,349,350,351,352,353,354,355,
497:             364,365,366,367,368,369,370,371,
498:             384,385,386,387,388,389,390,391,
499:             404,405,406,407,408,409,410,411,
500:             412,413,414,415,416,417,418,419,
501:             420,421,422,423,424,425,426,427,
502:             440,441,442,443,444,445,446,447,
503:             456,457,458,459,460,461,462,463,
504:             468,469,470,471,472,473,474,475,
505:             510,511,512,513,514,515,516,517,
506:             542,543,544,545,546,547,548,549,
507:             570,571,572,573,574,575,576,577,
508:             602,603,604,605,606,607,608,609,
509:             618,619,620,621,622,623,624,625,
510:             630,631,632,633,634,635,636,637,
511:             656,657,658,659,660,661,662,663,
512:             684,685,686,687,688,689,690,691,
513:             702,703,704,705,706,707,708,709,
514:           };
515:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
516:     } else if (rank == 14) {
517:           const PetscScalar arrLocalExpectedHere[] = {
518:             88, 89, 90, 91, 92, 93, 94, 95,
519:             132,133,134,135,136,137,138,139,
520:             140,-1 ,141,-1, 142,-1, 143,-1,
521:             184,185,186,187,188,189,190,191,
522:             204,205,206,207,208,209,210,211,
523:             212,-1, 213,-1, 214,-1, 215,-1,
524:             276,277,278,279,280,281,282,283,
525:             306,307,308,309,310,311,312,313,
526:             314,-1, 315,-1, 316,-1, 317,-1,
527:             364,365,366,367,368,369,370,371,
528:             384,385,386,387,388,389,390,391,
529:             392,-1, 393,-1, 394,-1, 395,-1,
530:             412,413,414,415,416,417,418,419,
531:             420,421,422,423,424,425,426,427,
532:             428,-1, 429,-1, 430,-1, 431,-1,
533:             456,457,458,459,460,461,462,463,
534:             468,469,470,471,472,473,474,475,
535:             476,-1, 477,-1, 478,-1, 479,-1,
536:             542,543,544,545,546,547,548,549,
537:             570,571,572,573,574,575,576,577,
538:             578,-1, 579,-1, 580,-1, 581,-1,
539:             618,619,620,621,622,623,624,625,
540:             630,631,632,633,634,635,636,637,
541:             638,-1, 639,-1, 640,-1, 641,-1,
542:             684,685,686,687,688,689,690,691,
543:             702,703,704,705,706,707,708,709,
544:             710,-1, 711,-1, 712,-1, 713,-1,
545:           };
546:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
547:     } else if (rank == 15) {
548:           const PetscScalar arrLocalExpectedHere[] = {
549:             160,161,162,163,164,165,166,167,
550:             168,169,170,171,172,173,174,175,
551:             184,185,186,187,188,189,190,191,
552:             240,241,242,243,244,245,246,247,
553:             248,249,250,251,252,253,254,255,
554:             276,277,278,279,280,281,282,283,
555:             256,257,-1, -1, 258,259,-1, -1,
556:             260,261,-1, -1, 262,263,-1, -1,
557:             284,285,-1, -1, 286,287,-1, -1,
558:             396,397,398,399,400,401,402,403,
559:             404,405,406,407,408,409,410,411,
560:             412,413,414,415,416,417,418,419,
561:             432,433,434,435,436,437,438,439,
562:             440,441,442,443,444,445,446,447,
563:             456,457,458,459,460,461,462,463,
564:             448,449,-1, -1, 450,451,-1, -1,
565:             452,453,-1, -1, 454,455,-1, -1,
566:             464,465,-1, -1, 466,467,-1, -1,
567:             594,595,596,597,598,599,600,601,
568:             602,603,604,605,606,607,608,609,
569:             618,619,620,621,622,623,624,625,
570:             648,649,650,651,652,653,654,655,
571:             656,657,658,659,660,661,662,663,
572:             684,685,686,687,688,689,690,691,
573:             664,665,-1, -1, 666,667,-1, -1,
574:             668,669,-1, -1, 670,671,-1, -1,
575:             692,693,-1, -1, 694,695,-1, -1,
576:           };
577:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
578:     } else if (rank == 16) {
579:           const PetscScalar arrLocalExpectedHere[] = {
580:             168,169,170,171,172,173,174,175,
581:             184,185,186,187,188,189,190,191,
582:             204,205,206,207,208,209,210,211,
583:             248,249,250,251,252,253,254,255,
584:             276,277,278,279,280,281,282,283,
585:             306,307,308,309,310,311,312,313,
586:             260,261,-1, -1, 262,263,-1, -1,
587:             284,285,-1, -1, 286,287,-1, -1,
588:             318,319,-1, -1, 320,321,-1, -1,
589:             404,405,406,407,408,409,410,411,
590:             412,413,414,415,416,417,418,419,
591:             420,421,422,423,424,425,426,427,
592:             440,441,442,443,444,445,446,447,
593:             456,457,458,459,460,461,462,463,
594:             468,469,470,471,472,473,474,475,
595:             452,453,-1, -1, 454,455,-1, -1,
596:             464,465,-1, -1, 466,467,-1, -1,
597:             480,481,-1, -1, 482,483,-1, -1,
598:             602,603,604,605,606,607,608,609,
599:             618,619,620,621,622,623,624,625,
600:             630,631,632,633,634,635,636,637,
601:             656,657,658,659,660,661,662,663,
602:             684,685,686,687,688,689,690,691,
603:             702,703,704,705,706,707,708,709,
604:             668,669,-1, -1, 670,671,-1, -1,
605:             692,693,-1, -1, 694,695,-1, -1,
606:             714,715,-1, -1, 716,717,-1, -1,
607:           };
608:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
609:     } else if (rank == 17) {
610:           const PetscScalar arrLocalExpectedHere[] = {
611:             184,185,186,187,188,189,190,191,
612:             204,205,206,207,208,209,210,211,
613:             212,-1, 213,-1, 214,-1, 215,-1,
614:             276,277,278,279,280,281,282,283,
615:             306,307,308,309,310,311,312,313,
616:             314,-1, 315,-1, 316,-1, 317,-1,
617:             284,285,-1, -1, 286,287,-1, -1,
618:             318,319,-1, -1, 320,321,-1, -1,
619:             322,-1, -1, -1, 323,-1, -1, -1,
620:             412,413,414,415,416,417,418,419,
621:             420,421,422,423,424,425,426,427,
622:             428,-1, 429,-1, 430,-1 ,431,-1,
623:             456,457,458,459,460,461,462,463,
624:             468,469,470,471,472,473,474,475,
625:             476,-1, 477,-1, 478,-1, 479,-1,
626:             464,465,-1, -1, 466,467,-1, -1,
627:             480,481,-1, -1, 482,483,-1, -1,
628:             484,-1, -1, -1, 485,-1, -1, -1,
629:             618,619,620,621,622,623,624,625,
630:             630,631,632,633,634,635,636,637,
631:             638,-1, 639,-1, 640,-1, 641,-1,
632:             684,685,686,687,688,689,690,691,
633:             702,703,704,705,706,707,708,709,
634:             710,-1, 711,-1, 712,-1, 713,-1,
635:             692,693,-1, -1, 694,695,-1, -1,
636:             714,715,-1, -1, 716,717,-1, -1,
637:             718,-1, -1, -1, 719,-1, -1, -1,
638:           };
639:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
640:     } else if (rank == 18) {
641:           const PetscScalar arrLocalExpectedHere[] = {
642:             324,325,326,327,328,329,330,331,
643:             332,333,334,335,336,337,338,339,
644:             356,357,358,359,360,361,362,363,
645:             340,341,342,343,344,345,346,347,
646:             348,349,350,351,352,353,354,355,
647:             364,365,366,367,368,369,370,371,
648:             396,397,398,399,400,401,402,403,
649:             404,405,406,407,408,409,410,411,
650:             412,413,414,415,416,417,418,419,
651:             486,487,488,489,490,491,492,493,
652:             494,495,496,497,498,499,500,501,
653:             534,535,536,537,538,539,540,541,
654:             502,503,504,505,506,507,508,509,
655:             510,511,512,513,514,515,516,517,
656:             542,543,544,545,546,547,548,549,
657:             594,595,596,597,598,599,600,601,
658:             602,603,604,605,606,607,608,609,
659:             618,619,620,621,622,623,624,625,
660:             518,519,520,521,-1, -1, -1, -1,
661:             522,523,524,525,-1, -1, -1, -1,
662:             550,551,552,553,-1, -1, -1, -1,
663:             526,527,528,529,-1, -1, -1, -1,
664:             530,531,532,533,-1, -1, -1, -1,
665:             554,555,556,557,-1, -1, -1, -1,
666:             610,611,612,613,-1, -1, -1, -1,
667:             614,615,616,617,-1, -1, -1, -1,
668:             626,627,628,629,-1, -1, -1, -1,
669:           };
670:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
671:     } else if (rank == 19) {
672:           const PetscScalar arrLocalExpectedHere[] = {
673:             332,333,334,335,336,337,338,339,
674:             356,357,358,359,360,361,362,363,
675:             372,373,374,375,376,377,378,379,
676:             348,349,350,351,352,353,354,355,
677:             364,365,366,367,368,369,370,371,
678:             384,385,386,387,388,389,390,391,
679:             404,405,406,407,408,409,410,411,
680:             412,413,414,415,416,417,418,419,
681:             420,421,422,423,424,425,426,427,
682:             494,495,496,497,498,499,500,501,
683:             534,535,536,537,538,539,540,541,
684:             558,559,560,561,562,563,564,565,
685:             510,511,512,513,514,515,516,517,
686:             542,543,544,545,546,547,548,549,
687:             570,571,572,573,574,575,576,577,
688:             602,603,604,605,606,607,608,609,
689:             618,619,620,621,622,623,624,625,
690:             630,631,632,633,634,635,636,637,
691:             522,523,524,525,-1, -1, -1, -1,
692:             550,551,552,553,-1, -1, -1, -1,
693:             582,583,584,585,-1, -1, -1, -1,
694:             530,531,532,533,-1, -1, -1, -1,
695:             554,555,556,557,-1, -1, -1, -1,
696:             588,589,590,591,-1, -1, -1, -1,
697:             614,615,616,617,-1, -1, -1, -1,
698:             626,627,628,629,-1, -1, -1, -1,
699:             642,643,644,645,-1, -1, -1, -1,
700:           };
701:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
702:     } else if (rank == 20) {
703:           const PetscScalar arrLocalExpectedHere[] = {
704:             356,357,358,359,360,361,362,363,
705:             372,373,374,375,376,377,378,379,
706:             380,-1, 381,-1, 382,-1, 383,-1,
707:             364,365,366,367,368,369,370,371,
708:             384,385,386,387,388,389,390,391,
709:             392,-1, 393,-1, 394,-1, 395,-1,
710:             412,413,414,415,416,417,418,419,
711:             420,421,422,423,424,425,426,427,
712:             428,-1, 429,-1, 430,-1 ,431,-1,
713:             534,535,536,537,538,539,540,541,
714:             558,559,560,561,562,563,564,565,
715:             566,-1, 567,-1, 568,-1, 569,-1,
716:             542,543,544,545,546,547,548,549,
717:             570,571,572,573,574,575,576,577,
718:             578,-1, 579,-1, 580,-1, 581,-1,
719:             618,619,620,621,622,623,624,625,
720:             630,631,632,633,634,635,636,637,
721:             638,-1, 639,-1, 640,-1, 641,-1,
722:             550,551,552,553,-1, -1, -1, -1,
723:             582,583,584,585,-1, -1, -1, -1,
724:             586,-1, 587,-1, -1, -1, -1, -1,
725:             554,555,556,557,-1, -1, -1, -1,
726:             588,589,590,591,-1, -1, -1, -1,
727:             592,-1, 593,-1, -1, -1, -1, -1,
728:             626,627,628,629,-1, -1, -1, -1,
729:             642,643,644,645,-1, -1, -1, -1,
730:             646,-1, 647,-1, -1, -1, -1, -1,
731:           };
732:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
733:     } else if (rank == 21) {
734:           const PetscScalar arrLocalExpectedHere[] = {
735:             340,341,342,343,344,345,346,347,
736:             348,349,350,351,352,353,354,355,
737:             364,365,366,367,368,369,370,371,
738:             396,397,398,399,400,401,402,403,
739:             404,405,406,407,408,409,410,411,
740:             412,413,414,415,416,417,418,419,
741:             432,433,434,435,436,437,438,439,
742:             440,441,442,443,444,445,446,447,
743:             456,457,458,459,460,461,462,463,
744:             502,503,504,505,506,507,508,509,
745:             510,511,512,513,514,515,516,517,
746:             542,543,544,545,546,547,548,549,
747:             594,595,596,597,598,599,600,601,
748:             602,603,604,605,606,607,608,609,
749:             618,619,620,621,622,623,624,625,
750:             648,649,650,651,652,653,654,655,
751:             656,657,658,659,660,661,662,663,
752:             684,685,686,687,688,689,690,691,
753:             526,527,528,529,-1, -1, -1, -1,
754:             530,531,532,533,-1, -1, -1, -1,
755:             554,555,556,557,-1, -1, -1, -1,
756:             610,611,612,613,-1, -1, -1, -1,
757:             614,615,616,617,-1, -1, -1, -1,
758:             626,627,628,629,-1, -1, -1, -1,
759:             672,673,674,675,-1, -1, -1, -1,
760:             676,677,678,679,-1, -1, -1, -1,
761:             696,697,698,699,-1, -1, -1, -1,
762:           };
763:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
764:     } else if (rank == 22) {
765:           const PetscScalar arrLocalExpectedHere[] = {
766:             348,349,350,351,352,353,354,355,
767:             364,365,366,367,368,369,370,371,
768:             384,385,386,387,388,389,390,391,
769:             404,405,406,407,408,409,410,411,
770:             412,413,414,415,416,417,418,419,
771:             420,421,422,423,424,425,426,427,
772:             440,441,442,443,444,445,446,447,
773:             456,457,458,459,460,461,462,463,
774:             468,469,470,471,472,473,474,475,
775:             510,511,512,513,514,515,516,517,
776:             542,543,544,545,546,547,548,549,
777:             570,571,572,573,574,575,576,577,
778:             602,603,604,605,606,607,608,609,
779:             618,619,620,621,622,623,624,625,
780:             630,631,632,633,634,635,636,637,
781:             656,657,658,659,660,661,662,663,
782:             684,685,686,687,688,689,690,691,
783:             702,703,704,705,706,707,708,709,
784:             530,531,532,533,-1, -1, -1, -1,
785:             554,555,556,557,-1, -1, -1, -1,
786:             588,589,590,591,-1, -1, -1, -1,
787:             614,615,616,617,-1, -1, -1, -1,
788:             626,627,628,629,-1, -1, -1, -1,
789:             642,643,644,645,-1, -1, -1, -1,
790:             676,677,678,679,-1, -1, -1, -1,
791:             696,697,698,699,-1, -1, -1, -1,
792:             720,721,722,723,-1, -1, -1, -1,
793:           };
794:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
795:     } else if (rank == 23) {
796:           const PetscScalar arrLocalExpectedHere[] = {
797:             364,365,366,367,368,369,370,371,
798:             384,385,386,387,388,389,390,391,
799:             392,-1, 393,-1, 394,-1, 395,-1,
800:             412,413,414,415,416,417,418,419,
801:             420,421,422,423,424,425,426,427,
802:             428,-1, 429,-1, 430,-1 ,431,-1,
803:             456,457,458,459,460,461,462,463,
804:             468,469,470,471,472,473,474,475,
805:             476,-1, 477,-1, 478,-1, 479,-1,
806:             542,543,544,545,546,547,548,549,
807:             570,571,572,573,574,575,576,577,
808:             578,-1, 579,-1, 580,-1, 581,-1,
809:             618,619,620,621,622,623,624,625,
810:             630,631,632,633,634,635,636,637,
811:             638,-1, 639,-1, 640,-1, 641,-1,
812:             684,685,686,687,688,689,690,691,
813:             702,703,704,705,706,707,708,709,
814:             710,-1, 711,-1, 712,-1, 713,-1,
815:             554,555,556,557,-1, -1, -1, -1,
816:             588,589,590,591,-1, -1, -1, -1,
817:             592,-1, 593,-1, -1, -1, -1, -1,
818:             626,627,628,629,-1, -1, -1, -1,
819:             642,643,644,645,-1, -1, -1, -1,
820:             646,-1, 647,-1, -1, -1, -1, -1,
821:             696,697,698,699,-1, -1, -1, -1,
822:             720,721,722,723,-1, -1, -1, -1,
823:             724,-1, 725,-1, -1, -1, -1, -1,
824:           };
825:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
826:     } else if (rank == 24) {
827:           const PetscScalar arrLocalExpectedHere[] = {
828:             396,397,398,399,400,401,402,403,
829:             404,405,406,407,408,409,410,411,
830:             412,413,414,415,416,417,418,419,
831:             432,433,434,435,436,437,438,439,
832:             440,441,442,443,444,445,446,447,
833:             456,457,458,459,460,461,462,463,
834:             448,449,-1, -1, 450,451,-1, -1,
835:             452,453,-1, -1, 454,455,-1, -1,
836:             464,465,-1, -1, 466,467,-1, -1,
837:             594,595,596,597,598,599,600,601,
838:             602,603,604,605,606,607,608,609,
839:             618,619,620,621,622,623,624,625,
840:             648,649,650,651,652,653,654,655,
841:             656,657,658,659,660,661,662,663,
842:             684,685,686,687,688,689,690,691,
843:             664,665,-1, -1, 666,667,-1, -1,
844:             668,669,-1, -1, 670,671,-1, -1,
845:             692,693,-1, -1, 694,695,-1, -1,
846:             610,611,612,613,-1, -1, -1, -1,
847:             614,615,616,617,-1, -1, -1, -1,
848:             626,627,628,629,-1, -1, -1, -1,
849:             672,673,674,675,-1, -1, -1, -1,
850:             676,677,678,679,-1, -1, -1, -1,
851:             696,697,698,699,-1, -1, -1, -1,
852:             680,681,-1, -1, -1, -1, -1, -1,
853:             682,683,-1, -1, -1, -1, -1, -1,
854:             700,701,-1, -1, -1, -1, -1, -1,
855:           };
856:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
857:     } else if (rank == 25) {
858:           const PetscScalar arrLocalExpectedHere[] = {
859:             404,405,406,407,408,409,410,411,
860:             412,413,414,415,416,417,418,419,
861:             420,421,422,423,424,425,426,427,
862:             440,441,442,443,444,445,446,447,
863:             456,457,458,459,460,461,462,463,
864:             468,469,470,471,472,473,474,475,
865:             452,453,-1, -1, 454,455,-1, -1,
866:             464,465,-1, -1, 466,467,-1, -1,
867:             480,481,-1, -1, 482,483,-1, -1,
868:             602,603,604,605,606,607,608,609,
869:             618,619,620,621,622,623,624,625,
870:             630,631,632,633,634,635,636,637,
871:             656,657,658,659,660,661,662,663,
872:             684,685,686,687,688,689,690,691,
873:             702,703,704,705,706,707,708,709,
874:             668,669,-1, -1, 670,671,-1, -1,
875:             692,693,-1, -1, 694,695,-1, -1,
876:             714,715,-1, -1, 716,717,-1, -1,
877:             614,615,616,617,-1, -1, -1, -1,
878:             626,627,628,629,-1, -1, -1, -1,
879:             642,643,644,645,-1, -1, -1, -1,
880:             676,677,678,679,-1, -1, -1, -1,
881:             696,697,698,699,-1, -1, -1, -1,
882:             720,721,722,723,-1, -1, -1, -1,
883:             682,683,-1, -1, -1, -1, -1, -1,
884:             700,701,-1, -1, -1, -1, -1, -1,
885:             726,727,-1, -1, -1, -1, -1, -1,
886:           };
887:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
888:     } else if (rank == 26) {
889:           const PetscScalar arrLocalExpectedHere[] = {
890:             412,413,414,415,416,417,418,419,
891:             420,421,422,423,424,425,426,427,
892:             428,-1, 429,-1, 430,-1 ,431,-1,
893:             456,457,458,459,460,461,462,463,
894:             468,469,470,471,472,473,474,475,
895:             476,-1, 477,-1, 478,-1, 479,-1,
896:             464,465,-1, -1, 466,467,-1, -1,
897:             480,481,-1, -1, 482,483,-1, -1,
898:             484,-1, -1, -1, 485,-1, -1, -1,
899:             618,619,620,621,622,623,624,625,
900:             630,631,632,633,634,635,636,637,
901:             638,-1, 639,-1, 640,-1, 641,-1,
902:             684,685,686,687,688,689,690,691,
903:             702,703,704,705,706,707,708,709,
904:             710,-1, 711,-1, 712,-1, 713,-1,
905:             692,693,-1, -1, 694,695,-1, -1,
906:             714,715,-1, -1, 716,717,-1, -1,
907:             718,-1, -1, -1, 719,-1, -1, -1,
908:             626,627,628,629,-1, -1, -1, -1,
909:             642,643,644,645,-1, -1, -1, -1,
910:             646,-1, 647,-1, -1, -1, -1, -1,
911:             696,697,698,699,-1, -1, -1, -1,
912:             720,721,722,723,-1, -1, -1, -1,
913:             724,-1, 725,-1, -1, -1, -1, -1,
914:             700,701,-1, -1, -1, -1, -1, -1,
915:             726,727,-1, -1, -1, -1, -1, -1,
916:             728,-1, -1, -1, -1, -1, -1, -1,
917:           };
918:          for(i=0; i<entriesGhost; ++i) arrLocalExpected[i] = arrLocalExpectedHere[i];
919:     }

921:     VecGetArrayRead(vecLocal,&arrLocal);
922:     for(i=0, nerr=0; i<entriesGhost; ++i) {
923:       if (arrLocal[i] != arrLocalExpected[i]) {
924:         ++nerr;
925:           if (nerr <= maxErrPerRank) {
926:             PetscPrintf(PETSC_COMM_SELF,"[%d] Entry %d has value %g instead of the expected %g\n",rank,i,arrLocal[i],arrLocalExpected[i]);
927:             if (nerr == maxErrPerRank + 1) {
928:               PetscPrintf(PETSC_COMM_SELF,"[%d] Skipping additional errors on this rank\n",rank);
929:             }
930:           }
931:       }
932:     }
933:     if (nerr > 0) {
934:       PetscPrintf(PETSC_COMM_SELF,"[%d] %D incorrect values on this rank\n",rank,nerr);
935:     }
936:     VecRestoreArrayRead(vecLocal,&arrLocal);
937:     PetscFree(arrLocalExpected);
938:   }

940:   VecDestroy(&vecLocal);
941:   VecDestroy(&vecGlobal);
942:   return(0);
943: }

945: /*TEST

947:    test:
948:       nsize: 27

950: TEST*/