initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / finiteVolume / finiteVolume / snGradSchemes / correctedSnGrad / correctedSnGrad.H
blob235886706689e0d2f6673fd9ea63802dcc0e52cb
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
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.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Class
26     Foam::fv::correctedSnGrad
28 Description
29     Simple central-difference snGrad scheme with non-orthogonal correction.
31 SourceFiles
32     correctedSnGrad.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef correctedSnGrad_H
37 #define correctedSnGrad_H
39 #include "snGradScheme.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 namespace fv
51 /*---------------------------------------------------------------------------*\
52                  Class correctedSnGrad Declaration
53 \*---------------------------------------------------------------------------*/
55 template<class Type>
56 class correctedSnGrad
58     public snGradScheme<Type>
60     // Private Member Functions
62         //- Disallow default bitwise assignment
63         void operator=(const correctedSnGrad&);
66 public:
68     //- Runtime type information
69     TypeName("corrected");
72     // Constructors
74         //- Construct from mesh
75         correctedSnGrad(const fvMesh& mesh)
76         :
77             snGradScheme<Type>(mesh)
78         {}
81         //- Construct from mesh and data stream
82         correctedSnGrad(const fvMesh& mesh, Istream&)
83         :
84             snGradScheme<Type>(mesh)
85         {}
88     // Destructor
90         virtual ~correctedSnGrad();
93     // Member Functions
95         //- Return the interpolation weighting factors for the given field
96         virtual tmp<surfaceScalarField> deltaCoeffs
97         (
98             const GeometricField<Type, fvPatchField, volMesh>&
99         ) const
100         {
101             return this->mesh().deltaCoeffs();
102         }
104         //- Return true if this scheme uses an explicit correction
105         virtual bool corrected() const
106         {
107             return !this->mesh().orthogonal();
108         }
110         //- Return the explicit correction to the correctedSnGrad
111         //  for the given field
112         virtual tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
113         correction(const GeometricField<Type, fvPatchField, volMesh>&) const;
117 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
119 } // End namespace fv
121 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
123 } // End namespace Foam
125 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
127 #ifdef NoRepository
128 #   include "correctedSnGrad.C"
129 #endif
131 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
133 #endif
135 // ************************************************************************* //