fix consistancy of gradient on coupled patches
[OpenFOAM-1.6-ext.git] / src / finiteVolume / interpolation / surfaceInterpolation / limitedSchemes / LimitedScheme / LimitFuncs.C
blob16be733909740b66f53baeece403172bc71ca06f
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
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 \*---------------------------------------------------------------------------*/
27 #include "volFields.H"
29 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
31 namespace Foam
34 namespace limitFuncs
37 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
39 template<class Type>
40 inline tmp<volScalarField> magSqr<Type>::operator()
42     const GeometricField<Type, fvPatchField, volMesh>& phi
43 ) const
45     return Foam::magSqr(phi);
49 template<>
50 inline tmp<volScalarField> magSqr<scalar>::operator()
52     const volScalarField& phi
53 ) const
55     return phi;
59 template<>
60 inline tmp<volScalarField> magSqr<tensor>::operator()
62     const volTensorField& phi
63 ) const
65     return Foam::tr(phi);
69 template<class Type>
70 inline tmp<volScalarField> rhoMagSqr<Type>::operator()
72     const GeometricField<Type, fvPatchField, volMesh>& phi
73 ) const
75     const volScalarField& rho =
76         phi.db().objectRegistry::lookupObject<volScalarField>("rho");
77     return Foam::magSqr(phi/rho);
81 template<>
82 inline tmp<volScalarField> rhoMagSqr<scalar>::operator()
84     const volScalarField& phi
85 ) const
87     const volScalarField& rho =
88         phi.db().objectRegistry::lookupObject<volScalarField>("rho");
89     return phi/rho;
93 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
95 } // End namespace limitFuncs
96 } // End namespace Foam
98 // ************************************************************************* //