pointLinear.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 | 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 Class
27  Foam::pointLinear
28 
29 Group
30  grpFvSurfaceInterpolationSchemes
31 
32 Description
33  Face-point interpolation scheme class derived from linear and
34  returns linear weighting factors but also applies an explicit correction.
35 
36  Uses volPointInterpolation to obtain the field values at the face-points.
37 
38 SourceFiles
39  pointLinear.C
40 
41 \*---------------------------------------------------------------------------*/
42 
43 #ifndef pointLinear_H
44 #define pointLinear_H
45 
46 #include "linear.H"
47 
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 
50 namespace Foam
51 {
52 
53 /*---------------------------------------------------------------------------*\
54  Class pointLinear Declaration
55 \*---------------------------------------------------------------------------*/
56 
57 template<class Type>
58 class pointLinear
59 :
60  public linear<Type>
61 {
62  // Private Member Functions
63 
64  //- No copy construct
65  pointLinear(const pointLinear&) = delete;
66 
67  //- No copy assignment
68  void operator=(const pointLinear&) = delete;
69 
70 
71 public:
72 
73  //- Runtime type information
74  TypeName("pointLinear");
75 
76 
77  // Constructors
78 
79  //- Construct from mesh
80  pointLinear(const fvMesh& mesh)
81  :
82  linear<Type>(mesh)
83  {}
84 
85 
86  //- Construct from mesh and Istream
88  (
89  const fvMesh& mesh,
90  Istream&
91  )
92  :
93  linear<Type>(mesh)
94  {}
95 
96 
97  //- Construct from mesh, faceFlux and Istream
99  (
100  const fvMesh& mesh,
101  const surfaceScalarField&,
102  Istream&
103  )
104  :
105  linear<Type>(mesh)
106  {}
107 
108 
109  // Member Functions
110 
111  //- Return true if this scheme uses an explicit correction
112  virtual bool corrected() const
113  {
114  return true;
115  }
116 
117  //- Return the explicit correction to the face-interpolate
119  correction
120  (
122  ) const;
123 };
124 
125 
126 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
127 
128 } // End namespace Foam
129 
130 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 
132 #endif
133 
134 // ************************************************************************* //
Foam::tmp
A class for managing temporary objects.
Definition: PtrList.H:61
Foam::pointLinear::corrected
virtual bool corrected() const
Return true if this scheme uses an explicit correction.
Definition: pointLinear.H:111
Foam::pointLinear::pointLinear
pointLinear(const fvMesh &mesh)
Construct from mesh.
Definition: pointLinear.H:79
Foam::Istream
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Definition: Istream.H:61
Foam::pointLinear::TypeName
TypeName("pointLinear")
Runtime type information.
Foam::pointLinear
Face-point interpolation scheme class derived from linear and returns linear weighting factors but al...
Definition: pointLinear.H:57
Foam::fvMesh
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:85
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::pointLinear::correction
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction(const GeometricField< Type, fvPatchField, volMesh > &vf) const
Return the explicit correction to the face-interpolate.
Definition: pointLinear.C:39
Foam::surfaceInterpolationScheme::mesh
const fvMesh & mesh() const
Return mesh reference.
Definition: surfaceInterpolationScheme.H:144
Foam::linear
Central-differencing interpolation scheme class.
Definition: linear.H:55
Foam::GeometricField< scalar, fvsPatchField, surfaceMesh >