Forward compatibility: flex
[foam-extend-3.2.git] / src / foam / meshes / patchIdentifier / patchIdentifier.H
blob45650117f803eb97a33367a61de39b110d34e54d
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::patchIdentifier
27 Description
28     Identifies patch by name, patch index and physical type
30 SourceFiles
31     patchIdentifier.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef patchIdentifier_H
36 #define patchIdentifier_H
38 #include "word.H"
39 #include "label.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 class dictionary;
48 // Forward declaration of friend functions and operators
50 class patchIdentifier;
51 Ostream& operator<<(Ostream&, const patchIdentifier&);
54 /*---------------------------------------------------------------------------*\
55                            Class patchIdentifier Declaration
56 \*---------------------------------------------------------------------------*/
58 class patchIdentifier
60     // Private data
62         //- Name of patch
63         word name_;
65         //- Index of patch in boundary
66         label index_;
68         //- Optional physical type
69         mutable word physicalType_;
72 public:
74     // Constructors
76         //- Construct from components
77         patchIdentifier
78         (
79             const word& name,
80             const label index,
81             const word& physicalType = word::null
82         );
84         //- Construct from dictionary
85         patchIdentifier
86         (
87             const word& name,
88             const dictionary&,
89             const label index
90         );
92         //- Construct from geometric patch, resetting the index
93         patchIdentifier
94         (
95             const patchIdentifier&,
96             const label index
97         );
100     // Destructor
102         virtual ~patchIdentifier();
105     // Member Functions
107         //- Return name
108         const word& name() const
109         {
110             return name_;
111         }
113         //- Return name for modification
114         word& name()
115         {
116             return name_;
117         }
119         //- Return the optional physical type of the patch
120         const word& physicalType() const
121         {
122             return physicalType_;
123         }
125         //- Return the optional physical type of the patch for modification
126         word& physicalType()
127         {
128             return physicalType_;
129         }
131         //- Return the index of this patch in the boundaryMesh
132         label index() const
133         {
134             return index_;
135         }
137         //- Return the index of this patch in the boundaryMesh for modification
138         label& index()
139         {
140             return index_;
141         }
143         //- Write patchIdentifier as a dictionary
144         void write(Ostream&) const;
147     // Ostream Operator
149         friend Ostream& operator<<(Ostream&, const patchIdentifier&);
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 } // End namespace Foam
157 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
159 #endif
161 // ************************************************************************* //