Forward compatibility: flex
[foam-extend-3.2.git] / src / postProcessing / functionObjects / field / surfaceInterpolateFields / surfaceInterpolateFields.H
blob5d91cae7db2b097c0368166c6f6bb9cbcc2a88fe
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::surfaceInterpolateFields
27 Description
28     Reads fields from the time folders and adds them to the mesh database
29     for further post-processing.
31 SourceFiles
32     surfaceInterpolateFields.C
33     IOsurfaceInterpolateFields.H
35 \*---------------------------------------------------------------------------*/
37 #ifndef surfaceInterpolateFields_H
38 #define surfaceInterpolateFields_H
40 #include "OFstream.H"
41 //#include "pointFieldFwd.H"
42 #include "surfaceFields.H"
43 #include "Tuple2.H"
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 namespace Foam
50 // Forward declaration of classes
51 class objectRegistry;
52 class dictionary;
53 class mapPolyMesh;
55 /*---------------------------------------------------------------------------*\
56                          Class surfaceInterpolateFields Declaration
57 \*---------------------------------------------------------------------------*/
59 class surfaceInterpolateFields
61 protected:
63     // Protected data
65         //- Name of this set of surfaceInterpolateFields object
66         word name_;
68         const objectRegistry& obr_;
70         //- on/off switch
71         bool active_;
73         //- Fields to process
74         //wordList fieldSet_;
75         List<Tuple2<word, word> > fieldSet_;
77         //- Locally constructed fields
78         PtrList<surfaceScalarField> ssf_;
79         PtrList<surfaceVectorField> svf_;
80         PtrList<surfaceSphericalTensorField> sSpheretf_;
81         PtrList<surfaceSymmTensorField> sSymmtf_;
82         PtrList<surfaceTensorField> stf_;
85     // Protected Member Functions
87         //- Disallow default bitwise copy construct
88         surfaceInterpolateFields(const surfaceInterpolateFields&);
90         //- Disallow default bitwise assignment
91         void operator=(const surfaceInterpolateFields&);
93         template<class Type>
94         void interpolateFields
95         (
96             PtrList<GeometricField<Type, fvsPatchField, surfaceMesh> >&
97         ) const;
100 public:
102     //- Runtime type information
103     TypeName("surfaceInterpolateFields");
106     // Constructors
108         //- Construct for given objectRegistry and dictionary.
109         //  Allow the possibility to load fields from files
110         surfaceInterpolateFields
111         (
112             const word& name,
113             const objectRegistry&,
114             const dictionary&,
115             const bool loadFromFiles = false
116         );
119     //- Destructor
120     virtual ~surfaceInterpolateFields();
123     // Member Functions
125         //- Return name of the surfaceInterpolateFields object
126         virtual const word& name() const
127         {
128             return name_;
129         }
131         //- Read the field min/max data
132         virtual void read(const dictionary&);
134         //- Execute, currently does nothing
135         virtual void execute();
137         //- Execute at the final time-loop, currently does nothing
138         virtual void end();
140         //- Write
141         virtual void write();
143         //- Update for changes of mesh
144         virtual void updateMesh(const mapPolyMesh&)
145         {}
147         //- Update for changes of mesh
148         virtual void movePoints(const pointField&)
149         {}
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 } // End namespace Foam
157 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
159 #ifdef NoRepository
160 #   include "surfaceInterpolateFieldsTemplates.C"
161 #endif
163 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
165 #endif
167 // ************************************************************************* //