Loading...
Searching...
No Matches
laplacianPointSmoother.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) 2024 OpenCFD Ltd.
9-------------------------------------------------------------------------------
10License
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
26Class
27 Foam::laplacianPointSmoother
28
29Description
30 Laplacian point smoothing (or rather Lloyds). Points are moved towards
31 the average of the surrounding cell centres (or average of boundary
32 face centres for points on boundary)
33
34SourceFiles
35 laplacianPointSmoother.C
36
37\*---------------------------------------------------------------------------*/
38
39#ifndef laplacianPointSmoother_H
40#define laplacianPointSmoother_H
41
42#include "pointSmoother.H"
43
44// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45
46namespace Foam
47{
48namespace pointSmoothers
49{
51/*---------------------------------------------------------------------------*\
52 Class laplacianPointSmoother Declaration
53\*---------------------------------------------------------------------------*/
54
56:
57 public pointSmoother
58{
59public:
60
61 //- Runtime type information
62 TypeName("laplacian");
63
64
65 // Constructors
66
67 //- Construct from a dictionary and a polyMesh
69 (
70 const polyMesh& mesh,
71 const dictionary& dict
72 );
73
74
75 //- Destructor
76 virtual ~laplacianPointSmoother() = default;
78
79 // Member Functions
80
81 //- Calculate the point displacement
82 virtual void calculate
83 (
84 const labelList& facesToMove,
85 const pointField& oldPoints,
86 const pointField& currentPoints,
87 const pointField& faceCentres,
88 const vectorField& faceAreas,
89 const pointField& cellCentres,
90 const scalarField& cellVolumes,
91 vectorField& pointDisplacement
92 ) const;
93};
94
95
96// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
97
98} // End namespace pointSmoothers
99} // End namespace Foam
100
101// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
102
103#endif
104
105// ************************************************************************* //
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
const polyMesh & mesh() const noexcept
Access the mesh.
TypeName("laplacian")
Runtime type information.
virtual void calculate(const labelList &facesToMove, const pointField &oldPoints, const pointField &currentPoints, const pointField &faceCentres, const vectorField &faceAreas, const pointField &cellCentres, const scalarField &cellVolumes, vectorField &pointDisplacement) const
Calculate the point displacement.
laplacianPointSmoother(const polyMesh &mesh, const dictionary &dict)
Construct from a dictionary and a polyMesh.
virtual ~laplacianPointSmoother()=default
Destructor.
Mesh consisting of general polyhedral cells.
Definition polyMesh.H:79
Namespace for OpenFOAM.
List< label > labelList
A List of labels.
Definition List.H:62
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Field< vector > vectorField
Specialisation of Field<T> for vector.
vectorField pointField
pointField is a vectorField.
dictionary dict
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition typeInfo.H:68