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
finiteVolume
gradSchemes
extendedLeastSquaresGrad
extendedLeastSquaresGrad.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::fv::extendedLeastSquaresGrad
26
27
Description
28
Second-order gradient scheme using least-squares.
29
30
SourceFiles
31
extendedLeastSquaresGrad.C
32
33
\*---------------------------------------------------------------------------*/
34
35
#ifndef extendedLeastSquaresGrad_H
36
#define extendedLeastSquaresGrad_H
37
38
#include <
finiteVolume/gradScheme.H
>
39
40
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41
42
namespace
Foam
43
{
44
45
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46
47
namespace
fv
48
{
49
50
/*---------------------------------------------------------------------------*\
51
Class extendedLeastSquaresGrad Declaration
52
\*---------------------------------------------------------------------------*/
53
54
template
<
class
Type>
55
class
extendedLeastSquaresGrad
56
:
57
public
fv::gradScheme
<Type>
58
{
59
// Private Data
60
61
//- Minimum determinant criterion to choose extra cells
62
scalar minDet_;
63
64
65
// Private Member Functions
66
67
//- Disallow default bitwise copy construct
68
extendedLeastSquaresGrad
(
const
extendedLeastSquaresGrad
&);
69
70
//- Disallow default bitwise assignment
71
void
operator=(
const
extendedLeastSquaresGrad
&);
72
73
74
public
:
75
76
//- Runtime type information
77
TypeName
(
"extendedLeastSquares"
);
78
79
80
// Constructors
81
82
//- Construct from Istream
83
extendedLeastSquaresGrad
(
const
fvMesh
&
mesh
,
Istream
& schemeData)
84
:
85
gradScheme
<Type>(mesh),
86
minDet_(
readScalar
(schemeData))
87
{
88
if
(minDet_ < 0 || minDet_ > 8)
89
{
90
FatalIOErrorIn
91
(
92
"extendedLeastSquaresGrad"
93
"(const fvMesh&, Istream& schemeData)"
,
94
schemeData
95
) <<
"Minimum determinant = "
<< minDet_
96
<<
" should be >= 0 and <= 8"
97
<<
exit
(
FatalIOError
);
98
}
99
}
100
101
102
// Member Functions
103
104
tmp
105
<
106
GeometricField
107
<
typename
outerProduct<vector, Type>::type
,
fvPatchField
,
volMesh
>
108
>
grad
109
(
110
const
GeometricField<Type, fvPatchField, volMesh>
&
111
)
const
;
112
};
113
114
115
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
116
117
}
// End namespace fv
118
119
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
120
121
}
// End namespace Foam
122
123
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
124
125
#ifdef NoRepository
126
# include <
finiteVolume/extendedLeastSquaresGrad.C
>
127
#endif
128
129
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
130
131
#endif
132
133
// ************************ vim: set sw=4 sts=4 et: ************************ //