BUGFIX: Illegal use of uninitialised value (backport)
[foam-extend-3.2.git] / src / dynamicMesh / dynamicFvMesh / dynamicTopoFvMesh / changeMap.H
blobf23754d0e08f0eb9aa9ac3e4e52599762380d813
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 Class
26     changeMap
28 Description
29     Accumulate topology change statistics
31 Author
32     Sandeep Menon
33     University of Massachusetts Amherst
34     All rights reserved
36 SourceFiles
37     changeMapI.H
39 \*---------------------------------------------------------------------------*/
41 #ifndef changeMap_H
42 #define changeMap_H
44 #include "objectMap.H"
45 #include "labelList.H"
46 #include "dictionary.H"
47 #include "DynamicList.H"
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51 namespace Foam
54 // Class forward declarations
55 class changeMap;
57 // * * * * * * * * Forward declaration of friend fuctions  * * * * * * * * * //
59 Ostream& operator<<(Ostream&, const changeMap&);
62 /*---------------------------------------------------------------------------*\
63                            Class changeMap Declaration
64 \*---------------------------------------------------------------------------*/
66 class changeMap
68     public dictionary
70     // Entity index
71     label index_;
73     // Coupled patch index
74     label pIndex_;
76     // Type
77     label type_;
79     // Entities that were added during the operation.
80     DynamicList<objectMap> addedPoints_;
81     DynamicList<objectMap> addedEdges_;
82     DynamicList<objectMap> addedFaces_;
83     DynamicList<objectMap> addedCells_;
85     // Entities that were removed during the operation
86     DynamicList<label> removedPoints_;
87     DynamicList<label> removedEdges_;
88     DynamicList<label> removedFaces_;
89     DynamicList<label> removedCells_;
91 public:
93     // Constructor
94     changeMap()
95     :
96         index_(-1),
97         pIndex_(-1),
98         type_(-1),
99         addedPoints_(5),
100         addedEdges_(5),
101         addedFaces_(5),
102         addedCells_(5),
103         removedPoints_(5),
104         removedEdges_(5),
105         removedFaces_(5),
106         removedCells_(5)
107     {}
109     //- Access
111         // Entity index
112         inline label& index();
113         inline label index() const;
115         // Coupled patch index
116         inline label& patchIndex();
117         inline label patchIndex() const;
119         // Type
120         inline label& type();
121         inline label type() const;
123         // Added entities
124         inline void addPoint
125         (
126             const label pIndex,
127             const labelList& master = labelList()
128         );
130         inline void addEdge
131         (
132             const label eIndex,
133             const labelList& master = labelList()
134         );
136         inline void addFace
137         (
138             const label fIndex,
139             const labelList& master = labelList()
140         );
142         inline void addCell
143         (
144             const label cIndex,
145             const labelList& master = labelList()
146         );
148         // Return the list of added entities
149         inline const List<objectMap>& addedPointList() const;
150         inline const List<objectMap>& addedEdgeList() const;
151         inline const List<objectMap>& addedFaceList() const;
152         inline const List<objectMap>& addedCellList() const;
154         // Removed entities
155         inline void removePoint(const label pIndex);
156         inline void removeEdge(const label eIndex);
157         inline void removeFace(const label fIndex);
158         inline void removeCell(const label cIndex);
160         // Return the list of removed entities
161         inline const labelList& removedPointList() const;
162         inline const labelList& removedEdgeList() const;
163         inline const labelList& removedFaceList() const;
164         inline const labelList& removedCellList() const;
166     //- Edit
168         // Clear existing lists
169         inline void clear();
171     //- Operators
173         inline void operator=(const changeMap& rhs);
175     //- IOstream Operators
177         inline friend Ostream& operator<<(Ostream&, const changeMap&);
181 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
183 } // End namespace Foam
185 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
187 #include "changeMapI.H"
189 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
191 #endif
193 // ************************************************************************* //