Loading...
Searching...
No Matches
laplacianConstraintPointSmoother.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::laplacianConstraintPointSmoother
28
29Description
30 Laplacian point smoothing. Points are moved towards the average of the
31 surrounding points. In case of constraints (boundary points) only
32 use average of equal or higher constrained points.
33
34SourceFiles
35 laplacianConstraintPointSmoother.C
36
37\*---------------------------------------------------------------------------*/
38
39#ifndef laplacianConstraintPointSmoother_H
40#define laplacianConstraintPointSmoother_H
41
42#include "pointSmoother.H"
43
44// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45
46namespace Foam
47{
48namespace pointSmoothers
49{
51/*---------------------------------------------------------------------------*\
52 Class laplacianConstraintPointSmoother Declaration
53\*---------------------------------------------------------------------------*/
54
56:
57 public pointSmoother
58{
59public:
60
61 //- Runtime type information
62 TypeName("laplacianConstraint");
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 ~laplacianConstraintPointSmoother() = 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.
laplacianConstraintPointSmoother(const polyMesh &mesh, const dictionary &dict)
Construct from a dictionary and a polyMesh.
virtual ~laplacianConstraintPointSmoother()=default
Destructor.
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.
TypeName("laplacianConstraint")
Runtime type information.
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