Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 #ifndef volPointInterpolation_H
00037 #define volPointInterpolation_H
00038 
00039 #include <OpenFOAM/MeshObject.H>
00040 #include <finiteVolume/pointPatchInterpolation.H>
00041 
00042 
00043 
00044 namespace Foam
00045 {
00046 
00047 class fvMesh;
00048 class pointMesh;
00049 
00050 
00051 
00052 
00053 
00054 class volPointInterpolation
00055 :
00056     public MeshObject<fvMesh, volPointInterpolation>
00057 {
00058     
00059 
00060         
00061         pointPatchInterpolation boundaryInterpolator_;
00062 
00063         
00064         scalarListList pointWeights_;
00065 
00066 
00067     
00068 
00069         
00070         void makeWeights();
00071 
00072         
00073         volPointInterpolation(const volPointInterpolation&);
00074 
00075         
00076         void operator=(const volPointInterpolation&);
00077 
00078 
00079 public:
00080 
00081     
00082     ClassName("volPointInterpolation");
00083 
00084 
00085     
00086 
00087         
00088         explicit volPointInterpolation(const fvMesh&);
00089 
00090 
00091     
00092 
00093         ~volPointInterpolation();
00094 
00095 
00096     
00097 
00098         
00099 
00100             const fvMesh& mesh() const
00101             {
00102                 return boundaryInterpolator_.mesh();
00103             }
00104 
00105 
00106         
00107 
00108             
00109             void updateMesh();
00110 
00111             
00112             bool movePoints();
00113 
00114 
00115     
00116 
00117         
00118         
00119         template<class Type>
00120         void interpolateInternalField
00121         (
00122             const GeometricField<Type, fvPatchField, volMesh>&,
00123             GeometricField<Type, pointPatchField, pointMesh>&
00124         ) const;
00125 
00126         
00127         
00128         template<class Type>
00129         void interpolate
00130         (
00131             const GeometricField<Type, fvPatchField, volMesh>&,
00132             GeometricField<Type, pointPatchField, pointMesh>&
00133         ) const;
00134 
00135         
00136         
00137         template<class Type>
00138         tmp<GeometricField<Type, pointPatchField, pointMesh> > interpolate
00139         (
00140             const GeometricField<Type, fvPatchField, volMesh>&,
00141             const wordList& patchFieldTypes
00142         ) const;
00143 
00144         
00145         
00146         template<class Type>
00147         tmp<GeometricField<Type, pointPatchField, pointMesh> > interpolate
00148         (
00149             const tmp<GeometricField<Type, fvPatchField, volMesh> >&,
00150             const wordList& patchFieldTypes
00151         ) const;
00152 
00153         
00154         
00155         template<class Type>
00156         tmp<GeometricField<Type, pointPatchField, pointMesh> > interpolate
00157         (
00158             const GeometricField<Type, fvPatchField, volMesh>&
00159         ) const;
00160 
00161         
00162         
00163         template<class Type>
00164         tmp<GeometricField<Type, pointPatchField, pointMesh> > interpolate
00165         (
00166             const tmp<GeometricField<Type, fvPatchField, volMesh> >&
00167         ) const;
00168 };
00169 
00170 
00171 
00172 
00173 } 
00174 
00175 
00176 
00177 #ifdef NoRepository
00178 #   include "volPointInterpolate.C"
00179 #endif
00180 
00181 
00182 
00183 #endif
00184 
00185