/*---------------------------------------------------------------------------*\
========= |
\\ / 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
// ************************************************************************* //