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
fields
fvsPatchFields
basic
sliced
slicedFvsPatchField.C
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
\*---------------------------------------------------------------------------*/
25
26
#include <
finiteVolume/slicedFvsPatchField.H
>
27
28
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
29
30
namespace
Foam
31
{
32
33
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
34
35
template
<
class
Type>
36
slicedFvsPatchField<Type>::slicedFvsPatchField
37
(
38
const
fvPatch
&
p
,
39
const
DimensionedField<Type, surfaceMesh>
& iF,
40
const
Field<Type>
& completeField
41
)
42
:
43
fvsPatchField<Type>
(
p
, iF,
Field<Type>
())
44
{
45
// Set the fvsPatchField to a slice of the given complete field
46
UList<Type>::operator=
(p.
patchSlice
(completeField));
47
}
48
49
50
template
<
class
Type>
51
slicedFvsPatchField<Type>::slicedFvsPatchField
52
(
53
const
fvPatch
&
p
,
54
const
DimensionedField<Type, surfaceMesh>
& iF
55
)
56
:
57
fvsPatchField<Type>
(
p
, iF)
58
{}
59
60
61
template
<
class
Type>
62
slicedFvsPatchField<Type>::slicedFvsPatchField
63
(
64
const
slicedFvsPatchField<Type>
& ptf,
65
const
fvPatch
& p,
66
const
DimensionedField<Type, surfaceMesh>
& iF,
67
const
fvPatchFieldMapper
& mapper
68
)
69
:
70
fvsPatchField<Type>
(ptf,
p
, iF, mapper)
71
{
72
notImplemented
73
(
74
"slicedFvsPatchField<Type>::"
75
"slicedFvsPatchField(const slicedFvsPatchField<Type>&, "
76
"const fvPatch&, const Field<Type>&, const fvPatchFieldMapper&)"
77
);
78
}
79
80
81
template
<
class
Type>
82
slicedFvsPatchField<Type>::slicedFvsPatchField
83
(
84
const
fvPatch
& p,
85
const
DimensionedField<Type, surfaceMesh>
& iF,
86
const
dictionary
& dict
87
)
88
:
89
fvsPatchField<Type>
(
p
, iF,
Field<Type>
(
"value"
, dict, p.
size
()))
90
{
91
notImplemented
92
(
93
"slicedFvsPatchField<Type>::"
94
"slicedFvsPatchField(const Field<Type>&, const dictionary&)"
95
);
96
}
97
98
99
template
<
class
Type>
100
slicedFvsPatchField<Type>::slicedFvsPatchField
101
(
102
const
slicedFvsPatchField<Type>
& ptf,
103
const
DimensionedField<Type, surfaceMesh>
& iF
104
)
105
:
106
fvsPatchField<Type>
(ptf.
patch
(), iF,
Field<Type>
())
107
{
108
// Transfer the slice from the argument
109
UList<Type>::operator=
(ptf);
110
}
111
112
template
<
class
Type>
113
tmp<fvsPatchField<Type>
>
slicedFvsPatchField<Type>::clone
()
const
114
{
115
return
tmp<fvsPatchField<Type>
>
116
(
117
new
slicedFvsPatchField<Type>
(*this)
118
);
119
}
120
121
122
template
<
class
Type>
123
slicedFvsPatchField<Type>::slicedFvsPatchField
124
(
125
const
slicedFvsPatchField<Type>
& ptf
126
)
127
:
128
fvsPatchField<Type>
129
(
130
ptf.
patch
(),
131
ptf.
dimensionedInternalField
(),
132
Field<Type>
()
133
)
134
{
135
// Transfer the slice from the argument
136
UList<Type>::operator=
(ptf);
137
}
138
139
140
template
<
class
Type>
141
tmp<fvsPatchField<Type>
>
slicedFvsPatchField<Type>::clone
142
(
143
const
DimensionedField<Type, surfaceMesh>
& iF
144
)
const
145
{
146
return
tmp<fvsPatchField<Type>
>
147
(
148
new
slicedFvsPatchField<Type>
(*
this
, iF)
149
);
150
}
151
152
153
template
<
class
Type>
154
slicedFvsPatchField<Type>
::~slicedFvsPatchField<Type>()
155
{
156
// Set the fvsPatchField storage pointer to NULL before its destruction
157
// to protect the field it a slice of.
158
UList<Type>::operator=
(
UList<Type>
(NULL, 0));
159
}
160
161
162
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
163
164
template
<
class
Type>
165
void
slicedFvsPatchField<Type>::write
(
Ostream
& os)
const
166
{
167
fvsPatchField<Type>::write
(os);
168
this->writeEntry(
"value"
, os);
169
}
170
171
172
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
173
174
}
// End namespace Foam
175
176
// ************************ vim: set sw=4 sts=4 et: ************************ //