Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / conversion / ensight / part / ensightParts.H
blob19fbf6b882d48d03dc30d16ef142e0fef77dddf0
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::ensightParts
27 Description
28     A collection of several ensightPart elements
30 SourceFiles
31     ensightParts.C
32     ensightPartsI.H
34 \*---------------------------------------------------------------------------*/
36 #ifndef ensightParts_H
37 #define ensightParts_H
39 #include "ensightPart.H"
40 #include "ensightPartFaces.H"
41 #include "ensightPartCells.H"
42 #include "volFields.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 namespace Foam
49 /*---------------------------------------------------------------------------*\
50                        Class ensightParts Declaration
51 \*---------------------------------------------------------------------------*/
53 class ensightParts
55     // Private Data
57         //- list of parts
58         PtrList<ensightPart> partsList_;
60     // Private Member Functions
62         //- Disallow default bitwise copy construct
63         ensightParts(const ensightParts&);
65         //- Disallow default bitwise assignment
66         void operator=(const ensightParts&);
69 public:
71     // Constructors
73         //- Construct from polyMesh
74         ensightParts(const polyMesh&);
76         //- Construct from IOobject
77         ensightParts(const IOobject&);
80     //- Destructor
81     ~ensightParts();
84     // Member functions
86         //- clear old information and construct anew from polyMesh
87         void recalculate(const polyMesh&);
89         //- renumber elements
90         void renumber
91         (
92             const labelList& origCellId,
93             const labelList& origFaceId
94         );
96         //- number of parts
97         label size() const
98         {
99             return partsList_.size();
100         }
102         //- write the geometry
103         void writeGeometry(ensightGeoFile&) const;
105         //- write summary information about the objects
106         bool writeSummary(Ostream&) const;
108         //- write the lists
109         void writeData(Ostream&) const;
111         //- write scalar field
112         void writeScalarField
113         (
114             ensightFile&,
115             const List<scalar>& field,
116             bool useFaceData = false
117         ) const;
119         //- write vector field components
120         void writeVectorField
121         (
122             ensightFile&,
123             const List<scalar>& field0,
124             const List<scalar>& field1,
125             const List<scalar>& field2,
126             bool useFaceData = false
127         ) const;
130         //- write generalized field components
131         template <class Type>
132         void writeField
133         (
134             ensightFile&,
135             const GeometricField<Type, fvPatchField, volMesh>&
136         ) const;
139     // Friend Operators
141         friend ensightGeoFile& operator<<
142         (
143             ensightGeoFile&,
144             const ensightParts&
145         );
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 } // End namespace Foam
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 #ifdef NoRepository
156 #   include "ensightPartsI.H"
157 #endif
159 #endif
161 // ************************************************************************* //