BUGFIX: Illegal use of uninitialised value (backport)
[foam-extend-3.2.git] / applications / utilities / postProcessing / dataConversion / foamToVTK / vtkMesh.C
blobf68c2b9fbc8de01e822cdb9ddd2330ccd70880d4
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Description
27 \*---------------------------------------------------------------------------*/
29 #include "vtkMesh.H"
30 #include "fvMeshSubset.H"
31 #include "Time.H"
32 #include "cellSet.H"
34 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
37 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
39 // Construct from components
40 Foam::vtkMesh::vtkMesh
42     const IOobject& io,
43     const word& setName
46     fvMesh(io),
47     subsetMesh_
48     (
49         IOobject
50         (
51             "subset",
52             io.time().constant(),
53             *this,
54             IOobject::NO_READ,
55             IOobject::NO_WRITE
56         ),
57         *this
58     ),
59     setName_(setName)
61     if (setName.size())
62     {
63         // Read cellSet using whole mesh
64         cellSet currentSet(*this, setName_);
66         // Set current subset
67         subsetMesh_.setLargeCellSubset(currentSet);
68     }
72 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
74 Foam::vtkMesh::~vtkMesh()
78 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
80 Foam::polyMesh::readUpdateState Foam::vtkMesh::readUpdate()
82     polyMesh::readUpdateState meshState = fvMesh::readUpdate();
84     if (meshState != polyMesh::UNCHANGED)
85     {
86         // Note: since fvMeshSubset has no movePoints() functionality,
87         //  reconstruct the subset even if only movement.
89         topoPtr_.clear();
91         if (setName_.size())
92         {
93             Info<< "Subsetting mesh based on cellSet " << setName_ << endl;
95             // Read cellSet using whole mesh
96             cellSet currentSet(*this, setName_);
98             subsetMesh_.setLargeCellSubset(currentSet);
99         }
100     }
102     return meshState;
106 // ************************************************************************* //