linearUpwindV.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
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.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::linearUpwindV
26 
27 Description
28  linearUpwindV interpolation scheme class derived from upwind and returns
29  upwind weighting factors but also applies an explicit correction.
30 
31 SourceFiles
32  linearUpwindV.C
33 
34 \*---------------------------------------------------------------------------*/
35 
36 #ifndef linearUpwindV_H
37 #define linearUpwindV_H
38 
39 #include "upwind.H"
40 #include "gaussGrad.H"
41 
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 
44 namespace Foam
45 {
46 
47 /*---------------------------------------------------------------------------*\
48  Class linearUpwindV Declaration
49 \*---------------------------------------------------------------------------*/
50 
51 template<class Type>
52 class linearUpwindV
53 :
54  public upwind<Type>
55 {
56  // Private Data
57 
58  word gradSchemeName_;
59  tmp<fv::gradScheme<Type>> gradScheme_;
60 
61 
62 public:
63 
64  //- Runtime type information
65  TypeName("linearUpwindV");
66 
67 
68  // Constructors
69 
70  //- Construct from faceFlux
72  (
73  const fvMesh& mesh,
74  const surfaceScalarField& faceFlux
75  );
76 
77  //- Construct from Istream.
78  // The name of the flux field is read from the Istream and looked-up
79  // from the mesh objectRegistry
81  (
82  const fvMesh& mesh,
83  Istream& schemeData
84  );
85 
86  //- Construct from faceFlux and Istream
88  (
89  const fvMesh& mesh,
90  const surfaceScalarField& faceFlux,
91  Istream& schemeData
92  );
93 
94  //- Disallow default bitwise copy construction
95  linearUpwindV(const linearUpwindV&) = delete;
96 
97 
98  // Member Functions
99 
100  //- Return true if this scheme uses an explicit correction
101  virtual bool corrected() const
102  {
103  return true;
104  }
105 
106  //- Return the explicit correction to the face-interpolate
108  correction
109  (
111  ) const;
112 
113 
114  // Member Operators
115 
116  //- Disallow default bitwise assignment
117  void operator=(const linearUpwindV&) = delete;
118 };
119 
120 
121 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
122 
123 } // End namespace Foam
124 
125 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126 
127 #ifdef NoRepository
128  #include "linearUpwindVTemplates.C"
129 #endif
130 
131 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
132 
133 #endif
134 
135 // ************************************************************************* //
void operator=(const linearUpwindV &)=delete
Disallow default bitwise assignment.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
Definition: Istream.H:57
linearUpwindV(const fvMesh &mesh, const surfaceScalarField &faceFlux)
Construct from faceFlux.
const fvMesh & mesh() const
Return mesh reference.
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction(const GeometricField< Type, fvPatchField, volMesh > &) const
Return the explicit correction to the face-interpolate.
TypeName("linearUpwindV")
Runtime type information.
A class for handling words, derived from string.
Definition: word.H:59
Upwind interpolation scheme class.
Definition: upwind.H:51
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:95
virtual bool corrected() const
Return true if this scheme uses an explicit correction.
A class for managing temporary objects.
Definition: PtrList.H:53
linearUpwindV interpolation scheme class derived from upwind and returns upwind weighting factors but...
Definition: linearUpwindV.H:51
Namespace for OpenFOAM.