1 /*---------------------------------------------------------------------------*\
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 -------------------------------------------------------------------------------
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/>.
28 A class that holds the data needed to identify a zone in a dynamic mesh.
30 The zone is identified by name.
31 Its index in the zoneMesh is updated if the mesh has changed.
33 \*---------------------------------------------------------------------------*/
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 template<class ZoneType, class MeshType> class ZoneMesh;
49 // Forward declaration of friend functions and operators
51 template<class ZoneType> class ZoneID;
53 template<class ZoneType>
54 Ostream& operator<<(Ostream&, const ZoneID<ZoneType>&);
56 /*---------------------------------------------------------------------------*\
57 Class ZoneID Declaration
58 \*---------------------------------------------------------------------------*/
60 template<class ZoneType>
76 //- Construct from name
77 ZoneID(const word& name, const ZoneMesh<ZoneType, polyMesh>& zm)
80 index_(zm.findZoneID(name))
83 //- Construct from Istream
84 ZoneID(Istream& is, const ZoneMesh<ZoneType, polyMesh>& zm)
87 index_(zm.findZoneID(name_))
91 // Destructor - default
99 const word& name() const
110 //- Has the zone been found
119 void update(const ZoneMesh<ZoneType, polyMesh>& zm)
121 index_ = zm.findZoneID(name_);
125 // IOstream Operators
127 friend Ostream& operator<< <ZoneType>
129 Ostream& os, const ZoneID<ZoneType>& p
134 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
136 template<class ZoneType>
139 Ostream& os, const ZoneID<ZoneType>& p
142 os << token::BEGIN_LIST
143 << p.name_ << token::SPACE
147 // Check state of Ostream
148 os.check("Ostream& operator<<(Ostream&, const ZoneID<ZoneType>&)");
154 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
156 } // End namespace Foam
158 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
162 // ************************************************************************* //