Forward compatibility: flex
[foam-extend-3.2.git] / applications / utilities / postProcessing / dataConversion / foamToVTK / vtkMesh.C
blobf08b46590c1e33affc7632c18516a6d57058f971
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend 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 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Description
26 \*---------------------------------------------------------------------------*/
28 #include "vtkMesh.H"
29 #include "fvMeshSubset.H"
30 #include "foamTime.H"
31 #include "cellSet.H"
33 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
36 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
38 // Construct from components
39 Foam::vtkMesh::vtkMesh
41     const IOobject& io,
42     const word& setName
45     fvMesh(io),
46     subsetMesh_
47     (
48         IOobject
49         (
50             "subset",
51             io.time().constant(),
52             *this,
53             IOobject::NO_READ,
54             IOobject::NO_WRITE
55         ),
56         *this
57     ),
58     setName_(setName)
60     if (setName.size())
61     {
62         // Read cellSet using whole mesh
63         cellSet currentSet(*this, setName_);
65         // Set current subset
66         subsetMesh_.setLargeCellSubset(currentSet);
67     }
71 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
73 Foam::vtkMesh::~vtkMesh()
77 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
79 Foam::polyMesh::readUpdateState Foam::vtkMesh::readUpdate()
81     polyMesh::readUpdateState meshState = fvMesh::readUpdate();
83     if (meshState != polyMesh::UNCHANGED)
84     {
85         // Note: since fvMeshSubset has no movePoints() functionality,
86         //  reconstruct the subset even if only movement.
88         topoPtr_.clear();
90         if (setName_.size())
91         {
92             Info<< "Subsetting mesh based on cellSet " << setName_ << endl;
94             // Read cellSet using whole mesh
95             cellSet currentSet(*this, setName_);
97             subsetMesh_.setLargeCellSubset(currentSet);
98         }
99     }
101     return meshState;
105 // ************************************************************************* //