Report patch name instead of index in debug
[foam-extend-3.2.git] / src / foam / meshes / polyMesh / polyPatches / basic / generic / genericPolyPatch.H
blob5bc4b2d3638e91a288aad4d16616bef53672a5e8
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::genericPolyPatch
27 Description
28     Determines a mapping between patch face centres and mesh cell centres and
29     processors they're on.
31 Note
32     Storage is not optimal. It stores all face centres and cells on all
33     processors to keep the addressing calculation simple.
35 SourceFiles
36     genericPolyPatch.C
38 \*---------------------------------------------------------------------------*/
40 #ifndef genericPolyPatch_H
41 #define genericPolyPatch_H
43 #include "polyPatch.H"
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 namespace Foam
50 /*---------------------------------------------------------------------------*\
51                       Class genericPolyPatch Declaration
52 \*---------------------------------------------------------------------------*/
54 class genericPolyPatch
56     public polyPatch
58     // Private data
60         word actualTypeName_;
61         dictionary dict_;
63 public:
65     //- Runtime type information
66     TypeName("genericPatch");
69     // Constructors
71         //- Construct from components
72         genericPolyPatch
73         (
74             const word& name,
75             const label size,
76             const label start,
77             const label index,
78             const polyBoundaryMesh& bm
79         );
81         //- Construct from dictionary
82         genericPolyPatch
83         (
84             const word& name,
85             const dictionary& dict,
86             const label index,
87             const polyBoundaryMesh& bm
88         );
90         //- Construct as copy, resetting the boundary mesh
91         genericPolyPatch
92         (
93             const genericPolyPatch&,
94             const polyBoundaryMesh&
95         );
97         //- Construct given the original patch and resetting the
98         //  face list and boundary mesh information
99         genericPolyPatch
100         (
101             const genericPolyPatch& pp,
102             const polyBoundaryMesh& bm,
103             const label index,
104             const label newSize,
105             const label newStart
106         );
108         //- Construct and return a clone, resetting the boundary mesh
109         virtual autoPtr<polyPatch> clone(const polyBoundaryMesh& bm) const
110         {
111             return autoPtr<polyPatch>(new genericPolyPatch(*this, bm));
112         }
114         //- Construct and return a clone, resetting the face list
115         //  and boundary mesh
116         virtual autoPtr<polyPatch> clone
117         (
118             const polyBoundaryMesh& bm,
119             const label index,
120             const label newSize,
121             const label newStart
122         ) const
123         {
124             return autoPtr<polyPatch>
125             (
126                 new genericPolyPatch(*this, bm, index, newSize, newStart)
127             );
128         }
131     // Destructor
133         ~genericPolyPatch();
136     // Member functions
138         //- Write the polyPatch data as a dictionary
139         virtual void write(Ostream&) const;
143 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
145 } // End namespace Foam
147 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
149 #endif
151 // ************************************************************************* //