1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
11 OpenFOAM is free software: you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by
13 the Free Software Foundation, either version 3 of the License, or
14 (at your option) any later version.
16 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 Foam::surfaceInterpolateFields
28 Linear interpolates volFields to surfaceFields
30 - at write it writes the fields
31 - it executes every time step
33 so it can either be used to calculate and write the interpolate or
34 (since the interpolates are registered) use some other functionObject
39 type surfaceInterpolateFields;
42 outputControl outputTime;
44 // Name of volField and corresponding surfaceField
45 fields ((p pInterpolate)(U UInterpolate));
50 surfaceInterpolateFields.C
51 IOsurfaceInterpolateFields.H
53 \*---------------------------------------------------------------------------*/
55 #ifndef surfaceInterpolateFields_H
56 #define surfaceInterpolateFields_H
59 #include "surfaceFields.H"
62 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
67 // Forward declaration of classes
72 /*---------------------------------------------------------------------------*\
73 Class surfaceInterpolateFields Declaration
74 \*---------------------------------------------------------------------------*/
76 class surfaceInterpolateFields
82 //- Name of this set of surfaceInterpolateFields object
85 const objectRegistry& obr_;
92 List<Tuple2<word, word> > fieldSet_;
94 //- Locally constructed fields
95 PtrList<surfaceScalarField> ssf_;
96 PtrList<surfaceVectorField> svf_;
97 PtrList<surfaceSphericalTensorField> sSpheretf_;
98 PtrList<surfaceSymmTensorField> sSymmtf_;
99 PtrList<surfaceTensorField> stf_;
102 // Protected Member Functions
104 //- Disallow default bitwise copy construct
105 surfaceInterpolateFields(const surfaceInterpolateFields&);
107 //- Disallow default bitwise assignment
108 void operator=(const surfaceInterpolateFields&);
111 void interpolateFields
113 PtrList<GeometricField<Type, fvsPatchField, surfaceMesh> >&
119 //- Runtime type information
120 TypeName("surfaceInterpolateFields");
125 //- Construct for given objectRegistry and dictionary.
126 // Allow the possibility to load fields from files
127 surfaceInterpolateFields
130 const objectRegistry&,
132 const bool loadFromFiles = false
137 virtual ~surfaceInterpolateFields();
142 //- Return name of the surfaceInterpolateFields object
143 virtual const word& name() const
148 //- Read the field min/max data
149 virtual void read(const dictionary&);
151 //- Execute, currently does nothing
152 virtual void execute();
154 //- Execute at the final time-loop, currently does nothing
158 virtual void write();
160 //- Update for changes of mesh
161 virtual void updateMesh(const mapPolyMesh&)
164 //- Update for changes of mesh
165 virtual void movePoints(const pointField&)
170 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
172 } // End namespace Foam
174 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
177 # include "surfaceInterpolateFieldsTemplates.C"
180 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
184 // ************************************************************************* //