The open source CFD toolbox
interpolationPointMVC.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 | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2011-2016 OpenFOAM Foundation
9-------------------------------------------------------------------------------
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26Class
27 Foam::interpolationPointMVC
28
29Description
30 Given cell centre values interpolates to vertices and uses these to
31 do a Mean Value Coordinates interpolation.
32
33\*---------------------------------------------------------------------------*/
34
35#ifndef Foam_interpolationPointMVC_H
36#define Foam_interpolationPointMVC_H
37
38#include "interpolation.H"
39#include "pointMVCWeight.H"
40
41// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42
43namespace Foam
44{
45
46/*---------------------------------------------------------------------------*\
47 Class interpolationPointMVC Declaration
48\*---------------------------------------------------------------------------*/
49
50template<class Type>
52:
53 public interpolation<Type>
54{
55protected:
56
57 // Protected Data
58
59 //- Interpolated volfield
61
62
63public:
64
65 //- Runtime type information
66 TypeName("pointMVC");
67
68
69 // Constructors
70
71 //- Construct from components
73 (
75 );
76
77
78 // Member Functions
79
80 //- Inherit interpolate from interpolation
82
83 //- Interpolate field for the given cellPointWeight
84 inline Type interpolate(const pointMVCWeight& cpw) const;
85
86 //- Interpolate field to the given point in the given cell
87 inline Type interpolate
88 (
89 const vector& position,
90 const label celli,
91 const label facei = -1
92 ) const;
93};
94
95
96// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
97
98} // End namespace Foam
99
100// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
101
103
104// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
105
106#ifdef NoRepository
107 #include "interpolationPointMVC.C"
108#endif
109
110// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
111
112#endif
113
114// ************************************************************************* //
Generic GeometricField class.
Given cell centre values interpolates to vertices and uses these to do a Mean Value Coordinates inter...
TypeName("pointMVC")
Runtime type information.
const GeometricField< Type, pointPatchField, pointMesh > psip_
Interpolated volfield.
Type interpolate(const pointMVCWeight &cpw) const
Interpolate field for the given cellPointWeight.
Abstract base class for volume field interpolation.
Definition: interpolation.H:60
const GeometricField< Type, fvPatchField, volMesh > & psi() const noexcept
Return the field to be interpolated.
Container to calculate weights for interpolating directly from vertices of cell using Mean Value Coor...
Namespace for OpenFOAM.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73