interpolationCellPoint.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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
19  for more details.
20 
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/>.
23 
24 Class
25  Foam::interpolationCellPoint
26 
27 Description
28  Given cell centre values and point (vertex) values decompose into
29  tetrahedra and linear interpolate within them.
30 
31 \*---------------------------------------------------------------------------*/
32 
33 #ifndef interpolationCellPoint_H
34 #define interpolationCellPoint_H
35 
36 #include "interpolation.H"
37 #include "cellPointWeight.H"
38 
39 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40 
41 namespace Foam
42 {
43 
44 /*---------------------------------------------------------------------------*\
45  Class interpolationCellPoint Declaration
46 \*---------------------------------------------------------------------------*/
47 
48 template<class Type>
50 :
51  public interpolation<Type>
52 {
53 protected:
54 
55  // Protected data
56 
57  //- Interpolated volfield
59 
60 
61 public:
62 
63  //- Runtime type information
64  TypeName("cellPoint");
65 
66 
67  // Constructors
68 
69  //- Construct from components
71  (
73  );
74 
75 
76  // Member Functions
77 
78  //- Interpolate field for the given cellPointWeight
79  inline Type interpolate(const cellPointWeight& cpw) const;
80 
81  //- Interpolate field to the given point in the given cell
82  inline Type interpolate
83  (
84  const vector& position,
85  const label cellI,
86  const label faceI = -1
87  ) const;
88 
89  //- Interpolate field to the given point in the tetrahedron
90  // defined by the given indices.
91  inline Type interpolate
92  (
93  const vector& position,
94  const tetIndices& tetIs,
95  const label faceI = -1
96  ) const;
97 };
98 
99 
100 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
101 
102 } // End namespace Foam
103 
104 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
105 
106 #include "interpolationCellPointI.H"
107 
108 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
109 
110 #ifdef NoRepository
111 # include "interpolationCellPoint.C"
112 #endif
113 
114 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
115 
116 #endif
117 
118 // ************************************************************************* //
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
Abstract base class for interpolation.
Namespace for OpenFOAM.
Foam::cellPointWeight.
Type interpolate(const cellPointWeight &cpw) const
Interpolate field for the given cellPointWeight.
const GeometricField< Type, fvPatchField, volMesh > & psi() const
Return the field to be interpolated.
Given cell centre values and point (vertex) values decompose into tetrahedra and linear interpolate w...
TypeName("cellPoint")
Runtime type information.
Generic GeometricField class.
const GeometricField< Type, pointPatchField, pointMesh > psip_
Interpolated volfield.
Storage and named access for the indices of a tet which is part of the decomposition of a cell...
Definition: tetIndices.H:73
interpolationCellPoint(const GeometricField< Type, fvPatchField, volMesh > &psi)
Construct from components.