vtkPV3FoamMesh.C 14.4 KB
Newer Older
1
2
3
4
/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     |
Mark Olesen's avatar
Mark Olesen committed
5
    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
     \\/     M anipulation  |
-------------------------------------------------------------------------------
License
    This file is part of OpenFOAM.

    OpenFOAM is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2 of the License, or (at your
    option) any later version.

    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    for more details.

    You should have received a copy of the GNU General Public License
    along with OpenFOAM; if not, write to the Free Software Foundation,
    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

\*---------------------------------------------------------------------------*/

#include "vtkPV3Foam.H"

// Foam includes
#include "cellSet.H"
#include "faceSet.H"
#include "pointSet.H"
#include "fvMeshSubset.H"
#include "vtkPV3FoamReader.h"

// VTK includes
#include "vtkDataArraySelection.h"
#include "vtkMultiBlockDataSet.h"
#include "vtkPolyData.h"
#include "vtkUnstructuredGrid.h"

// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //

void Foam::vtkPV3Foam::convertMeshVolume
(
46
47
    vtkMultiBlockDataSet* output,
    int& blockNo
48
49
)
{
50
51
    arrayRange& range = arrayRangeVolume_;
    range.block(blockNo);      // set output block
Mark Olesen's avatar
Mark Olesen committed
52
53
54
55
    label datasetNo = 0;       // restart at dataset 0
    const fvMesh& mesh = *meshPtr_;

    // resize for decomposed polyhedra
56
    regionPolyDecomp_.setSize(range.size());
Mark Olesen's avatar
Mark Olesen committed
57

58
59
    if (debug)
    {
60
        Info<< "<beg> Foam::vtkPV3Foam::convertMeshVolume" << endl;
Mark Olesen's avatar
Mark Olesen committed
61
        printMemory();
62
63
    }

Mark Olesen's avatar
Mark Olesen committed
64
    // Convert the internalMesh
65
    // this looks like more than one part, but it isn't
66
    for (int partId = range.start(); partId < range.end(); ++partId)
Mark Olesen's avatar
Mark Olesen committed
67
68
    {
        const word partName = "internalMesh";
69

Mark Olesen's avatar
Mark Olesen committed
70
        if (!partStatus_[partId])
71
        {
Mark Olesen's avatar
Mark Olesen committed
72
            continue;
73
74
        }

Mark Olesen's avatar
Mark Olesen committed
75
76
77
        vtkUnstructuredGrid* vtkmesh = volumeVTKMesh
        (
            mesh,
Mark Olesen's avatar
Mark Olesen committed
78
            regionPolyDecomp_[datasetNo]
Mark Olesen's avatar
Mark Olesen committed
79
        );
80

Mark Olesen's avatar
Mark Olesen committed
81
82
        if (vtkmesh)
        {
83
            AddToBlock(output, vtkmesh, range, datasetNo, partName);
Mark Olesen's avatar
Mark Olesen committed
84
            vtkmesh->Delete();
85

Mark Olesen's avatar
Mark Olesen committed
86
            partDataset_[partId] = datasetNo++;
Mark Olesen's avatar
Mark Olesen committed
87
        }
88
89
    }

Mark Olesen's avatar
Mark Olesen committed
90
    // anything added?
Mark Olesen's avatar
Mark Olesen committed
91
    if (datasetNo)
92
93
    {
        ++blockNo;
94
    }
95
96
97
98

    if (debug)
    {
        Info<< "<end> Foam::vtkPV3Foam::convertMeshVolume" << endl;
Mark Olesen's avatar
Mark Olesen committed
99
        printMemory();
100
    }
101
102
103
104
105
}


void Foam::vtkPV3Foam::convertMeshLagrangian
(
106
107
    vtkMultiBlockDataSet* output,
    int& blockNo
108
109
)
{
110
111
    arrayRange& range = arrayRangeLagrangian_;
    range.block(blockNo);      // set output block
Mark Olesen's avatar
Mark Olesen committed
112
113
114
    label datasetNo = 0;       // restart at dataset 0
    const fvMesh& mesh = *meshPtr_;

115
116
    if (debug)
    {
117
        Info<< "<beg> Foam::vtkPV3Foam::convertMeshLagrangian" << endl;
Mark Olesen's avatar
Mark Olesen committed
118
        printMemory();
119
120
    }

121
    for (int partId = range.start(); partId < range.end(); ++partId)
Mark Olesen's avatar
Mark Olesen committed
122
123
124
125
    {
        const word cloudName = getPartName(partId);

        if (!partStatus_[partId])
126
127
128
129
        {
            continue;
        }

Mark Olesen's avatar
Mark Olesen committed
130
        vtkPolyData* vtkmesh = lagrangianVTKMesh(mesh, cloudName);
Mark Olesen's avatar
Mark Olesen committed
131

Mark Olesen's avatar
Mark Olesen committed
132
133
        if (vtkmesh)
        {
134
            AddToBlock(output, vtkmesh, range, datasetNo, cloudName);
Mark Olesen's avatar
Mark Olesen committed
135
            vtkmesh->Delete();
136

Mark Olesen's avatar
Mark Olesen committed
137
            partDataset_[partId] = datasetNo++;
Mark Olesen's avatar
Mark Olesen committed
138
        }
139
    }
140

Mark Olesen's avatar
Mark Olesen committed
141
    // anything added?
Mark Olesen's avatar
Mark Olesen committed
142
    if (datasetNo)
143
144
145
146
    {
        ++blockNo;
    }

147
148
149
    if (debug)
    {
        Info<< "<end> Foam::vtkPV3Foam::convertMeshLagrangian" << endl;
Mark Olesen's avatar
Mark Olesen committed
150
        printMemory();
151
    }
152
153
154
155
156
}


void Foam::vtkPV3Foam::convertMeshPatches
(
157
158
    vtkMultiBlockDataSet* output,
    int& blockNo
159
160
)
{
161
162
    arrayRange& range = arrayRangePatches_;
    range.block(blockNo);      // set output block
Mark Olesen's avatar
Mark Olesen committed
163
164
165
166
    label datasetNo = 0;       // restart at dataset 0
    const fvMesh& mesh = *meshPtr_;
    const polyBoundaryMesh& patches = mesh.boundaryMesh();

167
168
    if (debug)
    {
169
        Info<< "<beg> Foam::vtkPV3Foam::convertMeshPatches" << endl;
Mark Olesen's avatar
Mark Olesen committed
170
        printMemory();
171
172
    }

173
    for (int partId = range.start(); partId < range.end(); ++partId)
174
    {
Mark Olesen's avatar
Mark Olesen committed
175
176
        const word patchName = getPartName(partId);
        const label  patchId = patches.findPatchID(patchName);
177

Mark Olesen's avatar
Mark Olesen committed
178
        if (!partStatus_[partId] || patchId < 0)
179
        {
Mark Olesen's avatar
Mark Olesen committed
180
181
            continue;
        }
182

Mark Olesen's avatar
Mark Olesen committed
183
184
185
186
187
        if (debug)
        {
            Info<< "Creating VTK mesh for patch[" << patchId <<"] "
                << patchName  << endl;
        }
188

Mark Olesen's avatar
Mark Olesen committed
189
        vtkPolyData* vtkmesh = patchVTKMesh(patches[patchId]);
190

Mark Olesen's avatar
Mark Olesen committed
191
192
        if (vtkmesh)
        {
193
            AddToBlock(output, vtkmesh, range, datasetNo, patchName);
Mark Olesen's avatar
Mark Olesen committed
194
            vtkmesh->Delete();
195

Mark Olesen's avatar
Mark Olesen committed
196
            partDataset_[partId] = datasetNo++;
197
198
        }
    }
199

Mark Olesen's avatar
Mark Olesen committed
200
    // anything added?
Mark Olesen's avatar
Mark Olesen committed
201
    if (datasetNo)
202
203
204
205
    {
        ++blockNo;
    }

206
207
208
    if (debug)
    {
        Info<< "<end> Foam::vtkPV3Foam::convertMeshPatches" << endl;
Mark Olesen's avatar
Mark Olesen committed
209
        printMemory();
210
    }
211
212
213
214
215
}


void Foam::vtkPV3Foam::convertMeshCellZones
(
216
217
    vtkMultiBlockDataSet* output,
    int& blockNo
218
219
)
{
220
221
    arrayRange& range = arrayRangeCellZones_;
    range.block(blockNo);      // set output block
Mark Olesen's avatar
Mark Olesen committed
222
223
224
225
    label datasetNo = 0;       // restart at dataset 0
    const fvMesh& mesh = *meshPtr_;

    // resize for decomposed polyhedra
226
    zonePolyDecomp_.setSize(range.size());
Mark Olesen's avatar
Mark Olesen committed
227

228
    if (range.empty())
Mark Olesen's avatar
Mark Olesen committed
229
230
231
232
    {
        return;
    }

233
234
    if (debug)
    {
235
        Info<< "<beg> Foam::vtkPV3Foam::convertMeshCellZones" << endl;
Mark Olesen's avatar
Mark Olesen committed
236
        printMemory();
237
238
    }

Mark Olesen's avatar
Mark Olesen committed
239
    const cellZoneMesh& zMesh = mesh.cellZones();
240
    for (int partId = range.start(); partId < range.end(); ++partId)
241
    {
Mark Olesen's avatar
Mark Olesen committed
242
243
        const word zoneName = getPartName(partId);
        const label  zoneId = zMesh.findZoneID(zoneName);
244

Mark Olesen's avatar
Mark Olesen committed
245
        if (!partStatus_[partId] || zoneId < 0)
246
        {
Mark Olesen's avatar
Mark Olesen committed
247
248
            continue;
        }
Mark Olesen's avatar
Mark Olesen committed
249

Mark Olesen's avatar
Mark Olesen committed
250
251
252
253
254
        if (debug)
        {
            Info<< "Creating VTK mesh for cellZone[" << zoneId << "] "
                << zoneName << endl;
        }
255

Mark Olesen's avatar
Mark Olesen committed
256
257
        fvMeshSubset subsetter(mesh);
        subsetter.setLargeCellSubset(zMesh[zoneId]);
258

Mark Olesen's avatar
Mark Olesen committed
259
260
261
262
263
        vtkUnstructuredGrid* vtkmesh = volumeVTKMesh
        (
            subsetter.subMesh(),
            zonePolyDecomp_[datasetNo]
        );
264

Mark Olesen's avatar
Mark Olesen committed
265
266
267
268
        if (vtkmesh)
        {
            // superCells + addPointCellLabels must contain global cell ids
            inplaceRenumber
269
            (
Mark Olesen's avatar
Mark Olesen committed
270
271
272
273
274
275
276
                subsetter.cellMap(),
                zonePolyDecomp_[datasetNo].superCells()
            );
            inplaceRenumber
            (
                subsetter.cellMap(),
                zonePolyDecomp_[datasetNo].addPointCellLabels()
277
278
            );

Mark Olesen's avatar
Mark Olesen committed
279
280
            // copy pointMap as well, otherwise pointFields fail
            zonePolyDecomp_[datasetNo].pointMap() = subsetter.pointMap();
Mark Olesen's avatar
Mark Olesen committed
281

282
            AddToBlock(output, vtkmesh, range, datasetNo, zoneName);
Mark Olesen's avatar
Mark Olesen committed
283
284
285
            vtkmesh->Delete();

            partDataset_[partId] = datasetNo++;
286
287
        }
    }
288

Mark Olesen's avatar
Mark Olesen committed
289
    // anything added?
Mark Olesen's avatar
Mark Olesen committed
290
    if (datasetNo)
291
292
293
294
    {
        ++blockNo;
    }

295
296
297
    if (debug)
    {
        Info<< "<end> Foam::vtkPV3Foam::convertMeshCellZones" << endl;
Mark Olesen's avatar
Mark Olesen committed
298
        printMemory();
299
    }
300
301
302
}


303
void Foam::vtkPV3Foam::convertMeshCellSets
304
(
305
306
    vtkMultiBlockDataSet* output,
    int& blockNo
307
308
)
{
309
310
    arrayRange& range = arrayRangeCellSets_;
    range.block(blockNo);      // set output block
Mark Olesen's avatar
Mark Olesen committed
311
312
313
314
    label datasetNo = 0;       // restart at dataset 0
    const fvMesh& mesh = *meshPtr_;

    // resize for decomposed polyhedra
315
    csetPolyDecomp_.setSize(range.size());
Mark Olesen's avatar
Mark Olesen committed
316

317
318
    if (debug)
    {
319
        Info<< "<beg> Foam::vtkPV3Foam::convertMeshCellSets" << endl;
Mark Olesen's avatar
Mark Olesen committed
320
        printMemory();
321
322
    }

323
    for (int partId = range.start(); partId < range.end(); ++partId)
324
    {
Mark Olesen's avatar
Mark Olesen committed
325
326
327
        const word partName = getPartName(partId);

        if (!partStatus_[partId])
328
        {
Mark Olesen's avatar
Mark Olesen committed
329
330
            continue;
        }
331

Mark Olesen's avatar
Mark Olesen committed
332
333
334
335
        if (debug)
        {
            Info<< "Creating VTK mesh for cellSet=" << partName << endl;
        }
336

Mark Olesen's avatar
Mark Olesen committed
337
338
339
        const cellSet cSet(mesh, partName);
        fvMeshSubset subsetter(mesh);
        subsetter.setLargeCellSubset(cSet);
340

Mark Olesen's avatar
Mark Olesen committed
341
342
343
344
345
        vtkUnstructuredGrid* vtkmesh = volumeVTKMesh
        (
            subsetter.subMesh(),
            csetPolyDecomp_[datasetNo]
        );
346

Mark Olesen's avatar
Mark Olesen committed
347
348
349
350
351
352
353
354
355
        if (vtkmesh)
        {
            // superCells + addPointCellLabels must contain global cell ids
            inplaceRenumber
            (
                subsetter.cellMap(),
                csetPolyDecomp_[datasetNo].superCells()
            );
            inplaceRenumber
356
            (
Mark Olesen's avatar
Mark Olesen committed
357
358
                subsetter.cellMap(),
                csetPolyDecomp_[datasetNo].addPointCellLabels()
359
360
            );

Mark Olesen's avatar
Mark Olesen committed
361
362
            // copy pointMap as well, otherwise pointFields fail
            csetPolyDecomp_[datasetNo].pointMap() = subsetter.pointMap();
Mark Olesen's avatar
Mark Olesen committed
363

364
            AddToBlock(output, vtkmesh, range, datasetNo, partName);
Mark Olesen's avatar
Mark Olesen committed
365
366
367
            vtkmesh->Delete();

            partDataset_[partId] = datasetNo++;
368
369
        }
    }
370

Mark Olesen's avatar
Mark Olesen committed
371
    // anything added?
Mark Olesen's avatar
Mark Olesen committed
372
    if (datasetNo)
373
374
375
376
    {
        ++blockNo;
    }

377
378
    if (debug)
    {
379
        Info<< "<end> Foam::vtkPV3Foam::convertMeshCellSets" << endl;
Mark Olesen's avatar
Mark Olesen committed
380
        printMemory();
381
    }
382
383
}

384

385
386
void Foam::vtkPV3Foam::convertMeshFaceZones
(
387
388
    vtkMultiBlockDataSet* output,
    int& blockNo
389
390
)
{
391
392
    arrayRange& range = arrayRangeFaceZones_;
    range.block(blockNo);      // set output block
Mark Olesen's avatar
Mark Olesen committed
393
394
395
    label datasetNo = 0;       // restart at dataset 0
    const fvMesh& mesh = *meshPtr_;

396
    if (range.empty())
Mark Olesen's avatar
Mark Olesen committed
397
398
399
400
    {
        return;
    }

401
402
    if (debug)
    {
403
        Info<< "<beg> Foam::vtkPV3Foam::convertMeshFaceZones" << endl;
Mark Olesen's avatar
Mark Olesen committed
404
        printMemory();
405
406
    }

Mark Olesen's avatar
Mark Olesen committed
407
    const faceZoneMesh& zMesh = mesh.faceZones();
408
    for (int partId = range.start(); partId < range.end(); ++partId)
409
    {
Mark Olesen's avatar
Mark Olesen committed
410
411
        const word zoneName = getPartName(partId);
        const label  zoneId = zMesh.findZoneID(zoneName);
412

Mark Olesen's avatar
Mark Olesen committed
413
        if (!partStatus_[partId] || zoneId < 0)
414
        {
Mark Olesen's avatar
Mark Olesen committed
415
416
            continue;
        }
417

Mark Olesen's avatar
Mark Olesen committed
418
419
420
421
422
        if (debug)
        {
            Info<< "Creating VTKmesh for faceZone[" << zoneId << "] "
                << zoneName << endl;
        }
423

Mark Olesen's avatar
Mark Olesen committed
424
425
426
        vtkPolyData* vtkmesh = faceZoneVTKMesh(mesh, zMesh[zoneId]);
        if (vtkmesh)
        {
427
            AddToBlock(output, vtkmesh, range, datasetNo, zoneName);
Mark Olesen's avatar
Mark Olesen committed
428
            vtkmesh->Delete();
Mark Olesen's avatar
Mark Olesen committed
429

Mark Olesen's avatar
Mark Olesen committed
430
            partDataset_[partId] = datasetNo++;
431
432
        }
    }
433

Mark Olesen's avatar
Mark Olesen committed
434
    // anything added?
Mark Olesen's avatar
Mark Olesen committed
435
    if (datasetNo)
436
437
438
439
    {
        ++blockNo;
    }

440
441
442
    if (debug)
    {
        Info<< "<end> Foam::vtkPV3Foam::convertMeshFaceZones" << endl;
Mark Olesen's avatar
Mark Olesen committed
443
        printMemory();
444
    }
445
446
447
}


448
void Foam::vtkPV3Foam::convertMeshFaceSets
449
(
450
451
    vtkMultiBlockDataSet* output,
    int& blockNo
452
453
)
{
454
455
    arrayRange& range = arrayRangeFaceSets_;
    range.block(blockNo);      // set output block
Mark Olesen's avatar
Mark Olesen committed
456
457
458
    label datasetNo = 0;       // restart at dataset 0
    const fvMesh& mesh = *meshPtr_;

459
460
    if (debug)
    {
461
        Info<< "<beg> Foam::vtkPV3Foam::convertMeshFaceSets" << endl;
Mark Olesen's avatar
Mark Olesen committed
462
        printMemory();
463
464
    }

465
    for (int partId = range.start(); partId < range.end(); ++partId)
466
    {
Mark Olesen's avatar
Mark Olesen committed
467
        const word partName = getPartName(partId);
468

Mark Olesen's avatar
Mark Olesen committed
469
470
471
472
        if (!partStatus_[partId])
        {
            continue;
        }
473

Mark Olesen's avatar
Mark Olesen committed
474
475
476
477
        if (debug)
        {
            Info<< "Creating VTK mesh for faceSet=" << partName << endl;
        }
478

Mark Olesen's avatar
Mark Olesen committed
479
        const faceSet fSet(mesh, partName);
480

Mark Olesen's avatar
Mark Olesen committed
481
482
483
        vtkPolyData* vtkmesh = faceSetVTKMesh(mesh, fSet);
        if (vtkmesh)
        {
484
            AddToBlock(output, vtkmesh, range, datasetNo, partName);
Mark Olesen's avatar
Mark Olesen committed
485
            vtkmesh->Delete();
Mark Olesen's avatar
Mark Olesen committed
486

Mark Olesen's avatar
Mark Olesen committed
487
            partDataset_[partId] = datasetNo++;
488
489
        }
    }
490

Mark Olesen's avatar
Mark Olesen committed
491
    // anything added?
Mark Olesen's avatar
Mark Olesen committed
492
    if (datasetNo)
493
494
495
496
    {
        ++blockNo;
    }

497
498
    if (debug)
    {
499
        Info<< "<end> Foam::vtkPV3Foam::convertMeshFaceSets" << endl;
Mark Olesen's avatar
Mark Olesen committed
500
        printMemory();
501
    }
502
503
504
505
506
}


void Foam::vtkPV3Foam::convertMeshPointZones
(
507
508
    vtkMultiBlockDataSet* output,
    int& blockNo
509
510
)
{
511
512
    arrayRange& range = arrayRangePointZones_;
    range.block(blockNo);      // set output block
Mark Olesen's avatar
Mark Olesen committed
513
    label datasetNo = 0;       // restart at dataset 0
514
    const fvMesh& mesh = *meshPtr_;
Mark Olesen's avatar
Mark Olesen committed
515

516
517
    if (debug)
    {
518
        Info<< "<beg> Foam::vtkPV3Foam::convertMeshPointZones" << endl;
Mark Olesen's avatar
Mark Olesen committed
519
        printMemory();
520
521
    }

522
    if (range.size())
523
    {
Mark Olesen's avatar
Mark Olesen committed
524
        const pointZoneMesh& zMesh = mesh.pointZones();
525
        for (int partId = range.start(); partId < range.end(); ++partId)
526
        {
Mark Olesen's avatar
Mark Olesen committed
527
            word zoneName = getPartName(partId);
Mark Olesen's avatar
Mark Olesen committed
528
            label zoneId = zMesh.findZoneID(zoneName);
529

Mark Olesen's avatar
Mark Olesen committed
530
            if (!partStatus_[partId] || zoneId < 0)
531
532
533
534
            {
                continue;
            }

Mark Olesen's avatar
Mark Olesen committed
535
536
            vtkPolyData* vtkmesh = pointZoneVTKMesh(mesh, zMesh[zoneId]);
            if (vtkmesh)
537
            {
538
                AddToBlock(output, vtkmesh, range, datasetNo, zoneName);
Mark Olesen's avatar
Mark Olesen committed
539
540
                vtkmesh->Delete();

Mark Olesen's avatar
Mark Olesen committed
541
                partDataset_[partId] = datasetNo++;
542
543
544
            }
        }
    }
545

Mark Olesen's avatar
Mark Olesen committed
546
    // anything added?
Mark Olesen's avatar
Mark Olesen committed
547
    if (datasetNo)
548
549
550
551
    {
        ++blockNo;
    }

552
553
554
    if (debug)
    {
        Info<< "<end> Foam::vtkPV3Foam::convertMeshPointZones" << endl;
Mark Olesen's avatar
Mark Olesen committed
555
        printMemory();
556
    }
557
558
559
560
}



561
void Foam::vtkPV3Foam::convertMeshPointSets
562
(
563
564
    vtkMultiBlockDataSet* output,
    int& blockNo
565
566
)
{
567
568
    arrayRange& range = arrayRangePointSets_;
    range.block(blockNo);      // set output block
Mark Olesen's avatar
Mark Olesen committed
569
570
571
    label datasetNo = 0;       // restart at dataset 0
    const fvMesh& mesh = *meshPtr_;

572
573
    if (debug)
    {
574
        Info<< "<beg> Foam::vtkPV3Foam::convertMeshPointSets" << endl;
Mark Olesen's avatar
Mark Olesen committed
575
        printMemory();
576
577
    }

578
    for (int partId = range.start(); partId < range.end(); ++partId)
579
    {
Mark Olesen's avatar
Mark Olesen committed
580
        word partName = getPartName(partId);
581

Mark Olesen's avatar
Mark Olesen committed
582
583
584
585
        if (!partStatus_[partId])
        {
            continue;
        }
586

Mark Olesen's avatar
Mark Olesen committed
587
588
589
590
        if (debug)
        {
            Info<< "Creating VTK mesh for pointSet=" << partName << endl;
        }
591

Mark Olesen's avatar
Mark Olesen committed
592
        const pointSet pSet(mesh, partName);
593

Mark Olesen's avatar
Mark Olesen committed
594
595
596
        vtkPolyData* vtkmesh = pointSetVTKMesh(mesh, pSet);
        if (vtkmesh)
        {
597
            AddToBlock(output, vtkmesh, range, datasetNo, partName);
Mark Olesen's avatar
Mark Olesen committed
598
            vtkmesh->Delete();
Mark Olesen's avatar
Mark Olesen committed
599

Mark Olesen's avatar
Mark Olesen committed
600
            partDataset_[partId] = datasetNo++;
601
602
        }
    }
603

Mark Olesen's avatar
Mark Olesen committed
604
    // anything added?
Mark Olesen's avatar
Mark Olesen committed
605
    if (datasetNo)
606
607
608
609
    {
        ++blockNo;
    }

610
611
    if (debug)
    {
612
        Info<< "<end> Foam::vtkPV3Foam::convertMeshPointSets" << endl;
Mark Olesen's avatar
Mark Olesen committed
613
        printMemory();
614
    }
615
616
}

617

618
// ************************************************************************* //