Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / applications / solvers / surfaceTracking / freeSurface / patchCorrectedSnGrad / patchCorrectedSnGrad.H
blob8b47a92ca627c40540e8ee1ad42c4d451e7f3159
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend 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 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     patchCorrectedSnGrad
27 Description
28     Simple central-difference snGrad scheme with non-orthogonal correction.
30 SourceFiles
31     patchCorrectedSnGrad.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef patchCorrectedSnGrad_H
36 #define patchCorrectedSnGrad_H
38 #include "snGradScheme.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 namespace fv
50 /*---------------------------------------------------------------------------*\
51                  Class patchCorrectedSnGrad Declaration
52 \*---------------------------------------------------------------------------*/
54 template<class Type>
55 class patchCorrectedSnGrad
57     public snGradScheme<Type>
59     // Private Member Functions
61         //- Disallow default bitwise assignment
62         void operator=(const patchCorrectedSnGrad&);
65 public:
67     //- Runtime type information
68     TypeName("patchCorrected");
71     // Constructors
73         //- Construct from mesh
74         patchCorrectedSnGrad(const fvMesh& mesh)
75         :
76             snGradScheme<Type>(mesh)
77         {}
80         //- Construct from mesh and data stream
81         patchCorrectedSnGrad(const fvMesh& mesh, Istream&)
82         :
83             snGradScheme<Type>(mesh)
84         {}
87     // Destructor
89         virtual ~patchCorrectedSnGrad();
92     // Member Functions
94         //- Return the interpolation weighting factors for the given field
95         virtual tmp<surfaceScalarField> deltaCoeffs
96         (
97             const GeometricField<Type, fvPatchField, volMesh>&
98         ) const
99         {
100             return this->mesh().deltaCoeffs();
101         }
103         //- Return true if this scheme uses an explicit correction
104         virtual bool corrected() const
105         {
106             return !this->mesh().orthogonal();
107         }
109         //- Return the explicit correction to the patchCorrectedSnGrad
110         //  for the given field
111         virtual tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
112         correction(const GeometricField<Type, fvPatchField, volMesh>&) const;
116 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
118 } // End namespace fv
120 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
122 } // End namespace Foam
124 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126 #ifdef NoRepository
127 #   include "patchCorrectedSnGrad.C"
128 #endif
130 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
132 #endif
134 // ************************************************************************* //