Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / applications / utilities / mesh / manipulation / mergeMeshes / mergePolyMesh.H
blob63824b9105d8b85e9fcfc2425f538c195d9d7bef
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 Class
25     Foam::mergePolyMesh
27 Description
28     Add a given mesh to the original mesh to create a single new mesh
30 SourceFiles
31     mergePolyMesh.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef mergePolyMesh_H
36 #define mergePolyMesh_H
38 #include "polyMesh.H"
39 #include "directTopoChange.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 // Forward declaration of classes
48 /*---------------------------------------------------------------------------*\
49                            Class mergePolyMesh Declaration
50 \*---------------------------------------------------------------------------*/
52 class mergePolyMesh
54     public polyMesh
56     // Private data
58         //- Topological change to accumulated all mesh changes
59         directTopoChange meshMod_;
61         //- Patch types
62         DynamicList<word> patchTypes_;
64         //- Patch names
65         DynamicList<word> patchNames_;
67         //- Point zone names
68         DynamicList<word> pointZoneNames_;
70         //- Face zone names
71         DynamicList<word> faceZoneNames_;
73         //- Cell zone names
74         DynamicList<word> cellZoneNames_;
76         //- Point zones
77         DynamicList<label>  pointZones_;
79         //- Face zones
80         DynamicList<label>  faceZones_;
82         //- Face zone Flips
83         DynamicList<bool>  faceZoneFlips_;
85         //- Cell zones
86         DynamicList<label> cellZones_;
89     // Private Member Functions
91         //- Disallow default bitwise copy construct
92         mergePolyMesh(const mergePolyMesh&);
94         //- Disallow default bitwise assignment
95         void operator=(const mergePolyMesh&);
98         //- Return patch index given a name and type
99         label patchIndex(const polyPatch&);
101         //- Return zone index given a list of active zones and a name
102         label zoneIndex(DynamicList<word>&, const word&);
105 public:
107     //- Runtime type information
108     TypeName("mergePolyMesh");
111     // Constructors
113         //- Construct from IOobject
114         mergePolyMesh(const IOobject& io);
117     // Destructor
119         virtual ~mergePolyMesh()
120         {}
123     // Member Functions
125         //- Add a mesh
126         void addMesh(const polyMesh& m);
128         //- Merge meshes
129         void merge();
133 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
135 } // End namespace Foam
137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
139 #endif
141 // ************************************************************************* //