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
OpenFOAM
fields
pointPatchFields
constraint
processor
processorPointPatchField.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::processorPointPatchField
26
27
Description
28
Foam::processorPointPatchField
29
30
SourceFiles
31
processorPointPatchField.C
32
33
\*---------------------------------------------------------------------------*/
34
35
#ifndef processorPointPatchField_H
36
#define processorPointPatchField_H
37
38
#include <
OpenFOAM/coupledPointPatchField.H
>
39
#include <
OpenFOAM/processorPointPatch.H
>
40
41
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42
43
namespace
Foam
44
{
45
46
/*---------------------------------------------------------------------------*\
47
Class processorPointPatchField Declaration
48
\*---------------------------------------------------------------------------*/
49
50
template
<
class
Type>
51
class
processorPointPatchField
52
:
53
public
coupledPointPatchField
<Type>
54
{
55
// Private data
56
57
//- Local reference to processor patch
58
const
processorPointPatch
& procPatch_;
59
60
61
public
:
62
63
//- Runtime type information
64
TypeName
(processorPointPatch::typeName_());
65
66
67
// Constructors
68
69
//- Construct from patch and internal field
70
processorPointPatchField
71
(
72
const
pointPatch
&,
73
const
DimensionedField<Type, pointMesh>
&
74
);
75
76
//- Construct from patch, internal field and dictionary
77
processorPointPatchField
78
(
79
const
pointPatch
&,
80
const
DimensionedField<Type, pointMesh>
&,
81
const
dictionary
&
82
);
83
84
//- Construct by mapping given patchField<Type> onto a new patch
85
processorPointPatchField
86
(
87
const
processorPointPatchField<Type>
&,
88
const
pointPatch
&,
89
const
DimensionedField<Type, pointMesh>
&,
90
const
pointPatchFieldMapper
&
91
);
92
93
//- Construct and return a clone
94
virtual
autoPtr<pointPatchField<Type>
>
clone
()
const
95
{
96
return
autoPtr<pointPatchField<Type>
>
97
(
98
new
processorPointPatchField<Type>
99
(
100
*this
101
)
102
);
103
}
104
105
//- Construct as copy setting internal field reference
106
processorPointPatchField
107
(
108
const
processorPointPatchField<Type>
&,
109
const
DimensionedField<Type, pointMesh>
&
110
);
111
112
//- Construct and return a clone setting internal field reference
113
virtual
autoPtr<pointPatchField<Type>
>
clone
114
(
115
const
DimensionedField<Type, pointMesh>
& iF
116
)
const
117
{
118
return
autoPtr<pointPatchField<Type>
>
119
(
120
new
processorPointPatchField<Type>
121
(
122
*
this
,
123
iF
124
)
125
);
126
}
127
128
129
// Destructor
130
131
~processorPointPatchField
();
132
133
134
// Member functions
135
136
// Access
137
138
//- Return true if running parallel
139
virtual
bool
coupled
()
const
140
{
141
if
(
Pstream::parRun
())
142
{
143
return
true
;
144
}
145
else
146
{
147
return
false
;
148
}
149
}
150
151
//- Does the patch field perform the transfromation
152
virtual
bool
doTransform
()
const
153
{
154
return
155
!(
156
procPatch_.
procPolyPatch
().
parallel
()
157
||
pTraits<Type>::rank
== 0
158
);
159
}
160
161
162
// Evaluation functions
163
164
//- Evaluate the patch field
165
virtual
void
evaluate
166
(
167
const
Pstream::commsTypes
commsType=
Pstream::blocking
168
)
169
{}
170
171
//- Initialise swap of patch point values
172
virtual
void
initSwapAdd
(
Field<Type>
&)
const
;
173
174
//- Complete swap of patch point values and add to local values
175
virtual
void
swapAdd
(
Field<Type>
&)
const
;
176
};
177
178
179
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
180
181
}
// End namespace Foam
182
183
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
184
185
#ifdef NoRepository
186
# include <
OpenFOAM/processorPointPatchField.C
>
187
#endif
188
189
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
190
191
#endif
192
193
// ************************ vim: set sw=4 sts=4 et: ************************ //