surfaceInterpolationSchemes.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2016 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 \*---------------------------------------------------------------------------*/
27 
29 
30 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
31 
32 namespace Foam
33 {
34 
35 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
36 
37 #define makeBaseSurfaceInterpolationScheme(Type) \
38  \
39 defineNamedTemplateTypeNameAndDebug(surfaceInterpolationScheme<Type>, 0); \
40  \
41 defineTemplateRunTimeSelectionTable \
42 ( \
43  surfaceInterpolationScheme<Type>, \
44  Mesh \
45 ); \
46  \
47 defineTemplateRunTimeSelectionTable \
48 ( \
49  surfaceInterpolationScheme<Type>, \
50  MeshFlux \
51 );
52 
58 
59 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
60 
61 } // End namespace Foam
62 
63 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
64 
65 template<>
67 <
69  <
73  >
74 >
76 (
77  const surfaceVectorField& Sf,
78  const GeometricField<scalar, fvPatchField, volMesh>&
79 ) const
80 {
82 
83  return
84  tmp
85  <
86  GeometricField
87  <
89  fvsPatchField,
90  surfaceMesh
91  >
92  >
93  (
94  GeometricField
95  <
97  fvsPatchField,
98  surfaceMesh
99  >::null()
100  );
101 }
102 
103 
104 // ************************************************************************* //
type
Types of root.
Definition: Roots.H:52
Mesh data needed to do the Finite Volume discretisation.
Definition: surfaceMesh.H:43
GeometricField< vector, fvsPatchField, surfaceMesh > surfaceVectorField
Tensor< scalar > tensor
Definition: symmTensor.H:57
Generic GeometricField class.
SymmTensor< scalar > symmTensor
SymmTensor of scalars, i.e. SymmTensor<scalar>.
Definition: symmTensor.H:55
#define makeBaseSurfaceInterpolationScheme(Type)
Vector< scalar > vector
Definition: vector.H:57
static tmp< GeometricField< typename innerProduct< typename SFType::value_type, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate(const SFType &Sf, const GeometricField< Type, fvPatchField, volMesh > &vf, const tmp< surfaceScalarField > &tlambdas)
Return the face-interpolate of the given cell field.
SphericalTensor< scalar > sphericalTensor
SphericalTensor of scalars, i.e. SphericalTensor<scalar>.
A class for managing temporary objects.
Definition: HashPtrTable.H:50
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
Definition: error.H:696
typeOfRank< typename pTraits< arg1 >::cmptType, direction(pTraits< arg1 >::rank)+direction(pTraits< arg2 >::rank) - 2 >::type type
Definition: products.H:155
An abstract base class with a fat-interface to all derived classes covering all possible ways in whic...
Namespace for OpenFOAM.