leastSquaresCellCellStencil.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) 2017 OpenCFD Ltd.
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::cellCellStencils::leastSquares
28 
29 Description
30  Least-squares-weighted interpolation stencil.
31 
32  Base machinery is similar to inverse distance interpolation stencil
33  but weights minimize error in LSQ sense recovering exact solution
34  for linear solution problems. Gradient and values are found
35  simultaneously.
36 
37 SourceFiles
38  leastSquaresCellCellStencil.C
39 
40 \*---------------------------------------------------------------------------*/
41 
42 #ifndef cellCellStencils_leastSquares_H
43 #define cellCellStencils_leastSquares_H
44 
46 
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 
49 namespace Foam
50 {
51 
52 namespace cellCellStencils
53 {
54 
55 /*---------------------------------------------------------------------------*\
56  Class leastSquares Declaration
57 \*---------------------------------------------------------------------------*/
58 
59 class leastSquares
60 :
61  public inverseDistance
62 {
63  // Private Member Functions
64 
65  //- No copy construct
66  leastSquares(const leastSquares&) = delete;
67 
68  //- No copy assignment
69  void operator=(const leastSquares&) = delete;
70 
71 
72 public:
73 
74  //- Runtime type information
75  TypeName("leastSquares");
76 
77 
78  // Constructors
79 
80  //- Construct from fvMesh
81  leastSquares(const fvMesh&, const dictionary&, const bool);
82 
83 
84  //- Destructor
85  virtual ~leastSquares();
86 
87 
88  // Member Functions
89 
90  //- Calculate lsq weights for single acceptor
91  virtual void stencilWeights
92  (
93  const point& sample,
94  const pointList& donorCcs,
95  scalarList& weights
96  ) const;
97 };
98 
99 
100 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
101 
102 } // End namespace cellCellStencils
103 } // End namespace Foam
104 
105 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
106 
107 #endif
108 
109 // ************************************************************************* //
inverseDistanceCellCellStencil.H
Foam::cellCellStencils::leastSquares::TypeName
TypeName("leastSquares")
Runtime type information.
Foam::cellCellStencils::inverseDistance
Inverse-distance-weighted interpolation stencil.
Definition: inverseDistanceCellCellStencil.H:67
Foam::cellCellStencils::leastSquares::~leastSquares
virtual ~leastSquares()
Destructor.
Definition: leastSquaresCellCellStencil.C:175
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam::fvMesh
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:85
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::cellCellStencils::leastSquares::stencilWeights
virtual void stencilWeights(const point &sample, const pointList &donorCcs, scalarList &weights) const
Calculate lsq weights for single acceptor.
Definition: leastSquaresCellCellStencil.C:46
Foam::Vector< scalar >
Foam::List
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: BitOps.H:63
Foam::cellCellStencils::leastSquares
Least-squares-weighted interpolation stencil.
Definition: leastSquaresCellCellStencil.H:58
sample
Minimal example by using system/controlDict.functions: