Home
Downloads
Documentation
Installation
User Guide
man-pages
API Documentation
README
Release Notes
Changes
License
Support
SourceForge Project
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
finiteVolume
interpolation
volPointInterpolation
volPointInterpolation.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) 1991-2010 OpenCFD Ltd.
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::volPointInterpolation
26
27
Description
28
Foam::volPointInterpolation
29
30
SourceFiles
31
volPointInterpolation.C
32
volPointInterpolate.C
33
34
\*---------------------------------------------------------------------------*/
35
36
#ifndef volPointInterpolation_H
37
#define volPointInterpolation_H
38
39
#include <
OpenFOAM/MeshObject.H
>
40
#include <
finiteVolume/pointPatchInterpolation.H
>
41
42
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43
44
namespace
Foam
45
{
46
47
class
fvMesh;
48
class
pointMesh;
49
50
/*---------------------------------------------------------------------------*\
51
Class volPointInterpolation Declaration
52
\*---------------------------------------------------------------------------*/
53
54
class
volPointInterpolation
55
:
56
public
MeshObject
<fvMesh, volPointInterpolation>
57
{
58
// Private data
59
60
//- Boundary interpolation engine.
61
pointPatchInterpolation
boundaryInterpolator_;
62
63
//- Interpolation scheme weighting factor array.
64
scalarListList
pointWeights_;
65
66
67
// Private member functions
68
69
//- Construct point weighting factors
70
void
makeWeights();
71
72
//- Disallow default bitwise copy construct
73
volPointInterpolation
(
const
volPointInterpolation
&);
74
75
//- Disallow default bitwise assignment
76
void
operator=(
const
volPointInterpolation
&);
77
78
79
public
:
80
81
// Declare name of the class and its debug switch
82
ClassName
(
"volPointInterpolation"
);
83
84
85
// Constructors
86
87
//- Constructor given fvMesh and pointMesh.
88
explicit
volPointInterpolation
(
const
fvMesh
&);
89
90
91
// Destructor
92
93
~volPointInterpolation
();
94
95
96
// Member functions
97
98
// Access
99
100
const
fvMesh
&
mesh
()
const
101
{
102
return
boundaryInterpolator_.
mesh
();
103
}
104
105
106
// Edit
107
108
//- Update mesh topology using the morph engine
109
void
updateMesh
();
110
111
//- Correct weighting factors for moving mesh.
112
bool
movePoints
();
113
114
115
// Interpolation functions
116
117
//- Interpolate internal field from volField to pointField
118
// using inverse distance weighting
119
template
<
class
Type>
120
void
interpolateInternalField
121
(
122
const
GeometricField<Type, fvPatchField, volMesh>
&,
123
GeometricField<Type, pointPatchField, pointMesh>
&
124
)
const
;
125
126
//- Interpolate from volField to pointField
127
// using inverse distance weighting
128
template
<
class
Type>
129
void
interpolate
130
(
131
const
GeometricField<Type, fvPatchField, volMesh>
&,
132
GeometricField<Type, pointPatchField, pointMesh>
&
133
)
const
;
134
135
//- Interpolate volField using inverse distance weighting
136
// returning pointField with the same patchField types
137
template
<
class
Type>
138
tmp<GeometricField<Type, pointPatchField, pointMesh>
>
interpolate
139
(
140
const
GeometricField<Type, fvPatchField, volMesh>
&,
141
const
wordList
& patchFieldTypes
142
)
const
;
143
144
//- Interpolate tmp<volField> using inverse distance weighting
145
// returning pointField with the same patchField types
146
template
<
class
Type>
147
tmp<GeometricField<Type, pointPatchField, pointMesh>
>
interpolate
148
(
149
const
tmp
<
GeometricField<Type, fvPatchField, volMesh>
>&,
150
const
wordList
& patchFieldTypes
151
)
const
;
152
153
//- Interpolate volField using inverse distance weighting
154
// returning pointField
155
template
<
class
Type>
156
tmp<GeometricField<Type, pointPatchField, pointMesh>
>
interpolate
157
(
158
const
GeometricField<Type, fvPatchField, volMesh>
&
159
)
const
;
160
161
//- Interpolate tmp<volField> using inverse distance weighting
162
// returning pointField
163
template
<
class
Type>
164
tmp<GeometricField<Type, pointPatchField, pointMesh>
>
interpolate
165
(
166
const
tmp
<
GeometricField<Type, fvPatchField, volMesh>
>&
167
)
const
;
168
};
169
170
171
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
172
173
}
// End namespace Foam
174
175
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
176
177
#ifdef NoRepository
178
# include "
volPointInterpolate.C
"
179
#endif
180
181
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
182
183
#endif
184
185
// ************************ vim: set sw=4 sts=4 et: ************************ //