Actual source code: ex2.c
petsc-3.11.4 2019-09-28
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*/