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
meshTools
cellDist
patchWave
patchDataWave.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::patchDataWave
26
27
Description
28
Takes a set of patches to start MeshWave from.
29
30
Holds after construction distance at cells and distance at patches
31
(like patchWave), but also additional transported data.
32
It is used, for example, in the y+ calculation.
33
34
See Also
35
The patchWave class.
36
37
SourceFiles
38
patchDataWave.C
39
40
\*---------------------------------------------------------------------------*/
41
42
#ifndef patchDataWave_H
43
#define patchDataWave_H
44
45
#include <
meshTools/cellDistFuncs.H
>
46
#include <
OpenFOAM/FieldField.H
>
47
#include <
OpenFOAM/UPtrList.H
>
48
49
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50
51
namespace
Foam
52
{
53
54
// Forward declaration of classes
55
class
polyMesh;
56
class
wallPoint;
57
template
<
class
Type>
class
MeshWave;
58
59
/*---------------------------------------------------------------------------*\
60
Class patchDataWave Declaration
61
\*---------------------------------------------------------------------------*/
62
63
template
<
class
TransferType>
64
class
patchDataWave
65
:
66
public
cellDistFuncs
67
{
68
69
private
:
70
71
typedef
typename
TransferType::dataType Type;
72
73
74
// Private Member Data
75
76
//- Current patch subset (stored as patchIDs)
77
labelHashSet
patchIDs_;
78
79
//- Reference to initial extra data at patch faces
80
const
UPtrList<Field<Type>
>& initialPatchValuePtrs_;
81
82
//- Do accurate distance calculation for near-wall cells.
83
bool
correctWalls_;
84
85
//
86
// After construction:
87
//
88
89
//- Number of cells/faces unset after MeshWave has finished
90
label nUnset_;
91
92
//- Distance at cell centres
93
scalarField
distance_;
94
95
//- Distance at patch faces
96
FieldField<Field, scalar>
patchDistance_;
97
98
//- Extra data at cell centres
99
Field<Type>
cellData_;
100
101
//- Extra data at patch faces
102
FieldField<Field, Type>
patchData_;
103
104
105
// Private Member Functions
106
107
//- Set initial set of changed faces
108
void
setChangedFaces
109
(
110
const
labelHashSet
& patchIDs,
111
labelList
&,
112
List<TransferType>
&
113
)
const
;
114
115
//- Copy MeshWave values into *this
116
label getValues(
const
MeshWave<TransferType>
&);
117
118
119
public
:
120
121
// Constructors
122
123
//- Construct from mesh, information on patches to initialize and flag
124
// whether or not to correct wall.
125
// Calculate for all cells. correctWalls : correct wall (face&point)
126
// cells for correct distance, searching neighbours.
127
patchDataWave
128
(
129
const
polyMesh
&
mesh
,
130
const
labelHashSet
& patchIDs,
131
const
UPtrList
<
Field<Type>
>& initialPatchValuePtrs,
132
bool
correctWalls =
true
133
);
134
135
136
// Destructor
137
138
virtual
~patchDataWave
();
139
140
141
// Member Functions
142
143
//- Correct for mesh geom/topo changes
144
virtual
void
correct
();
145
146
147
const
scalarField
&
distance
()
const
148
{
149
return
distance_;
150
}
151
152
//- Non const access so we can 'transfer' contents for efficiency.
153
scalarField
&
distance
()
154
{
155
return
distance_;
156
}
157
158
const
FieldField<Field, scalar>
&
patchDistance
()
const
159
{
160
return
patchDistance_;
161
}
162
163
FieldField<Field, scalar>
&
patchDistance
()
164
{
165
return
patchDistance_;
166
}
167
168
const
Field<Type>
&
cellData
()
const
169
{
170
return
cellData_;
171
}
172
173
Field<Type>
&
cellData
()
174
{
175
return
cellData_;
176
}
177
178
const
FieldField<Field, Type>
&
patchData
()
const
179
{
180
return
patchData_;
181
}
182
183
FieldField<Field, Type>
&
patchData
()
184
{
185
return
patchData_;
186
}
187
188
label
nUnset
()
const
189
{
190
return
nUnset_;
191
}
192
};
193
194
195
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
196
197
}
// End namespace Foam
198
199
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
200
201
#ifdef NoRepository
202
# include "
patchDataWave.C
"
203
#endif
204
205
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
206
207
#endif
208
209
// ************************ vim: set sw=4 sts=4 et: ************************ //