Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / applications / utilities / postProcessing / dataConversion / foamToTecplot360 / vtkMesh.C
blob628887d1d909d388aba3b25579453166acfcd32d
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 \*---------------------------------------------------------------------------*/
26 #include "vtkMesh.H"
27 #include "fvMeshSubset.H"
28 #include "foamTime.H"
29 #include "cellSet.H"
31 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
33 // Construct from components
34 Foam::vtkMesh::vtkMesh
36     const IOobject& io,
37     const word& setName
40     fvMesh(io),
41     subsetMesh_
42     (
43         IOobject
44         (
45             "subset",
46             io.time().constant(),
47             *this,
48             IOobject::NO_READ,
49             IOobject::NO_WRITE
50         ),
51         *this
52     ),
53     setName_(setName)
55     if (setName.size() > 0)
56     {
57         // Read cellSet using whole mesh
58         cellSet currentSet(*this, setName_);
60         // Set current subset
61         subsetMesh_.setLargeCellSubset(currentSet);
62     }
66 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
68 Foam::vtkMesh::~vtkMesh()
72 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
74 Foam::polyMesh::readUpdateState Foam::vtkMesh::readUpdate()
76     polyMesh::readUpdateState meshState = fvMesh::readUpdate();
78     if (meshState != polyMesh::UNCHANGED)
79     {
80         // Note: since fvMeshSubset has no movePoints() functionality
81         // reconstruct the subset even if only movement.
83         if (setName_.size())
84         {
85             Info<< "Subsetting mesh based on cellSet " << setName_ << endl;
87             // Read cellSet using whole mesh
88             cellSet currentSet(*this, setName_);
90             subsetMesh_.setLargeCellSubset(currentSet);
91         }
92     }
94     return meshState;
98 // ************************************************************************* //