/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . Class Foam::surfaceInterpolateFields Description Linear interpolates volFields to surfaceFields - at write it writes the fields - it executes every time step so it can either be used to calculate and write the interpolate or (since the interpolates are registered) use some other functionObject to work on them. sampleSomeFields { type surfaceInterpolateFields; .. enabled true; outputControl outputTime; .. // Name of volField and corresponding surfaceField fields ((p pInterpolate)(U UInterpolate)); } SourceFiles surfaceInterpolateFields.C IOsurfaceInterpolateFields.H \*---------------------------------------------------------------------------*/ #ifndef surfaceInterpolateFields_H #define surfaceInterpolateFields_H #include "OFstream.H" #include "surfaceFields.H" #include "Tuple2.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { // Forward declaration of classes class objectRegistry; class dictionary; class mapPolyMesh; /*---------------------------------------------------------------------------*\ Class surfaceInterpolateFields Declaration \*---------------------------------------------------------------------------*/ class surfaceInterpolateFields { protected: // Protected data //- Name of this set of surfaceInterpolateFields object word name_; const objectRegistry& obr_; //- on/off switch bool active_; //- Fields to process //wordList fieldSet_; List > fieldSet_; //- Locally constructed fields PtrList ssf_; PtrList svf_; PtrList sSpheretf_; PtrList sSymmtf_; PtrList stf_; // Protected Member Functions //- Disallow default bitwise copy construct surfaceInterpolateFields(const surfaceInterpolateFields&); //- Disallow default bitwise assignment void operator=(const surfaceInterpolateFields&); template void interpolateFields ( PtrList >& ) const; public: //- Runtime type information TypeName("surfaceInterpolateFields"); // Constructors //- Construct for given objectRegistry and dictionary. // Allow the possibility to load fields from files surfaceInterpolateFields ( const word& name, const objectRegistry&, const dictionary&, const bool loadFromFiles = false ); //- Destructor virtual ~surfaceInterpolateFields(); // Member Functions //- Return name of the surfaceInterpolateFields object virtual const word& name() const { return name_; } //- Read the field min/max data virtual void read(const dictionary&); //- Execute, currently does nothing virtual void execute(); //- Execute at the final time-loop, currently does nothing virtual void end(); //- Write virtual void write(); //- Update for changes of mesh virtual void updateMesh(const mapPolyMesh&) {} //- Update for changes of mesh virtual void movePoints(const pointField&) {} }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository # include "surfaceInterpolateFieldsTemplates.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* //