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
surfaceInterpolation
limitedSchemes
upwind
upwind.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::upwind
26
27
Description
28
Upwind differencing scheme class.
29
30
SourceFiles
31
upwind.C
32
33
\*---------------------------------------------------------------------------*/
34
35
#ifndef upwind_H
36
#define upwind_H
37
38
#include <
finiteVolume/limitedSurfaceInterpolationScheme.H
>
39
#include <
finiteVolume/volFields.H
>
40
#include <
finiteVolume/surfaceFields.H
>
41
42
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43
44
namespace
Foam
45
{
46
47
/*---------------------------------------------------------------------------*\
48
Class upwind Declaration
49
\*---------------------------------------------------------------------------*/
50
51
template
<
class
Type>
52
class
upwind
53
:
54
public
limitedSurfaceInterpolationScheme
<Type>
55
{
56
// Private Member Functions
57
58
//- Disallow default bitwise assignment
59
void
operator=(
const
upwind
&);
60
61
62
public
:
63
64
//- Runtime type information
65
TypeName
(
"upwind"
);
66
67
68
// Constructors
69
70
//- Construct from faceFlux
71
upwind
72
(
73
const
fvMesh
&
mesh
,
74
const
surfaceScalarField
& faceFlux
75
)
76
:
77
limitedSurfaceInterpolationScheme<Type>
(
mesh
, faceFlux)
78
{}
79
80
//- Construct from Istream.
81
// The name of the flux field is read from the Istream and looked-up
82
// from the mesh objectRegistry
83
upwind
84
(
85
const
fvMesh
& mesh,
86
Istream
& is
87
)
88
:
89
limitedSurfaceInterpolationScheme<Type>
(
mesh
, is)
90
{}
91
92
//- Construct from faceFlux and Istream
93
upwind
94
(
95
const
fvMesh
& mesh,
96
const
surfaceScalarField
& faceFlux,
97
Istream
&
98
)
99
:
100
limitedSurfaceInterpolationScheme<Type>
(
mesh
, faceFlux)
101
{}
102
103
104
// Member Functions
105
106
//- Return the interpolation limiter
107
virtual
tmp<surfaceScalarField>
limiter
108
(
109
const
GeometricField<Type, fvPatchField, volMesh>
&
110
)
const
111
{
112
return
tmp<surfaceScalarField>
113
(
114
new
surfaceScalarField
115
(
116
IOobject
117
(
118
"upwindLimiter"
,
119
this->
mesh
().time().
timeName
(),
120
this->
mesh
()
121
),
122
this->
mesh
(),
123
dimensionedScalar
(
"upwindLimiter"
,
dimless
, 0.0)
124
)
125
);
126
}
127
128
//- Return the interpolation weighting factors
129
tmp<surfaceScalarField>
weights
()
const
130
{
131
return
pos
(this->
faceFlux_
);
132
}
133
134
//- Return the interpolation weighting factors
135
virtual
tmp<surfaceScalarField>
weights
136
(
137
const
GeometricField<Type, fvPatchField, volMesh>
&
138
)
const
139
{
140
return
weights
();
141
}
142
};
143
144
145
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146
147
}
// End namespace Foam
148
149
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150
151
#endif
152
153
// ************************ vim: set sw=4 sts=4 et: ************************ //