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
fvPatchFields
derived
outletInlet
outletInletFvPatchField.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/outletInletFvPatchField.H
>
27
28
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
29
30
namespace
Foam
31
{
32
33
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
34
35
template
<
class
Type>
36
outletInletFvPatchField<Type>::outletInletFvPatchField
37
(
38
const
fvPatch
&
p
,
39
const
DimensionedField<Type, volMesh>
& iF
40
)
41
:
42
mixedFvPatchField<Type>
(
p
, iF)
43
{
44
this->refValue() = *
this
;
45
this->refGrad() =
pTraits<Type>::zero
;
46
this->valueFraction() = 0.0;
47
}
48
49
50
template
<
class
Type>
51
outletInletFvPatchField<Type>::outletInletFvPatchField
52
(
53
const
outletInletFvPatchField<Type>
& ptf,
54
const
fvPatch
& p,
55
const
DimensionedField<Type, volMesh>
& iF,
56
const
fvPatchFieldMapper
& mapper
57
)
58
:
59
mixedFvPatchField<Type>
(ptf,
p
, iF, mapper)
60
{}
61
62
63
template
<
class
Type>
64
outletInletFvPatchField<Type>::outletInletFvPatchField
65
(
66
const
fvPatch
& p,
67
const
DimensionedField<Type, volMesh>
& iF,
68
const
dictionary
& dict
69
)
70
:
71
mixedFvPatchField<Type>
(
p
, iF)
72
{
73
this->refValue() =
Field<Type>
(
"outletValue"
, dict, p.
size
());
74
75
if
(dict.found(
"value"
))
76
{
77
fvPatchField<Type>::operator
=
78
(
79
Field<Type>
(
"value"
, dict, p.
size
())
80
);
81
}
82
else
83
{
84
fvPatchField<Type>::operator=
(this->refValue());
85
}
86
87
this->refGrad() =
pTraits<Type>::zero
;
88
this->valueFraction() = 0.0;
89
}
90
91
92
template
<
class
Type>
93
outletInletFvPatchField<Type>::outletInletFvPatchField
94
(
95
const
outletInletFvPatchField<Type>
& ptf
96
)
97
:
98
mixedFvPatchField<Type>
(ptf)
99
{}
100
101
102
template
<
class
Type>
103
outletInletFvPatchField<Type>::outletInletFvPatchField
104
(
105
const
outletInletFvPatchField<Type>
& ptf,
106
const
DimensionedField<Type, volMesh>
& iF
107
)
108
:
109
mixedFvPatchField<Type>
(ptf, iF)
110
{}
111
112
113
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
114
115
template
<
class
Type>
116
void
outletInletFvPatchField<Type>::updateCoeffs
()
117
{
118
if
(this->updated())
119
{
120
return
;
121
}
122
123
const
fvsPatchField<scalar>
& phip = this->patch().lookupPatchField
124
(
125
"phi"
,
126
reinterpret_cast<const surfaceScalarField*>(0),
127
reinterpret_cast<const scalar*>(0)
128
);
129
130
this->valueFraction() =
pos
(phip);
131
132
mixedFvPatchField<Type>::updateCoeffs
();
133
}
134
135
136
template
<
class
Type>
137
void
outletInletFvPatchField<Type>::write
(
Ostream
& os)
const
138
{
139
fvPatchField<Type>::write
(os);
140
this->refValue().writeEntry(
"outletValue"
, os);
141
this->writeEntry(
"value"
, os);
142
}
143
144
145
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146
147
}
// End namespace Foam
148
149
// ************************ vim: set sw=4 sts=4 et: ************************ //