CentredFitData.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 | Copyright (C) 2011-2016 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::CentredFitData
26 
27 Description
28  Data for the quadratic fit correction interpolation scheme
29 
30 SourceFiles
31  CentredFitData.C
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef CentredFitData_H
36 #define CentredFitData_H
37 
38 #include "FitData.H"
39 
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
41 
42 namespace Foam
43 {
44 
45 class extendedCentredCellToFaceStencil;
46 
47 /*---------------------------------------------------------------------------*\
48  Class CentredFitData Declaration
49 \*---------------------------------------------------------------------------*/
50 
51 template<class Polynomial>
52 class CentredFitData
53 :
54  public FitData
55  <
56  CentredFitData<Polynomial>,
57  extendedCentredCellToFaceStencil,
58  Polynomial
59  >
60 {
61  // Private data
62 
63  //- For each cell in the mesh store the values which multiply the
64  // values of the stencil to obtain the gradient for each direction
65  List<scalarList> coeffs_;
66 
67 
68  // Private Member Functions
69 
70  //- Calculate the fit for the all the mesh faces
71  // and set the coefficients
72  void calcFit();
73 
74 
75 public:
76 
77  TypeName("CentredFitData");
78 
79 
80  // Constructors
81 
82  //- Construct from components
84  (
85  const fvMesh& mesh,
87  const scalar linearLimitFactor,
88  const scalar centralWeight
89  );
90 
91 
92  //- Destructor
93  virtual ~CentredFitData()
94  {}
95 
96 
97  // Member functions
98 
99  //- Return reference to fit coefficients
100  const List<scalarList>& coeffs() const
101  {
102  return coeffs_;
103  }
104 };
105 
106 
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
108 
109 } // End namespace Foam
110 
111 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
112 
113 #ifdef NoRepository
114  #include "CentredFitData.C"
115 #endif
116 
117 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
118 
119 #endif
120 
121 // ************************************************************************* //
const List< scalarList > & coeffs() const
Return reference to fit coefficients.
const extendedCentredCellToFaceStencil & stencil() const
Return reference to the stencil.
Definition: FitData.H:116
CentredFitData(const fvMesh &mesh, const extendedCentredCellToFaceStencil &stencil, const scalar linearLimitFactor, const scalar centralWeight)
Construct from components.
Data for the quadratic fit correction interpolation scheme.
TypeName("CentredFitData")
scalar linearLimitFactor() const
Factor the fit is allowed to deviate from the base scheme.
Definition: FitData.H:122
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:78
Data for the upwinded and centred polynomial fit interpolation schemes. The linearCorrection_ determi...
Definition: FitData.H:54
Namespace for OpenFOAM.
virtual ~CentredFitData()
Destructor.