smoothAlignmentSolver.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) 2013-2016 OpenFOAM Foundation
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::smoothAlignmentSolver
28
29Description
30
31SourceFiles
32 smoothAlignmentSolverI.H
33 smoothAlignmentSolver.C
34 smoothAlignmentSolverIO.C
35
36\*---------------------------------------------------------------------------*/
37
38#ifndef smoothAlignmentSolver_H
39#define smoothAlignmentSolver_H
40
42#include "triadField.H"
43
44// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45
46namespace Foam
47{
48
49/*---------------------------------------------------------------------------*\
50 Class smoothAlignmentSolver Declaration
51\*---------------------------------------------------------------------------*/
54{
55 // Private data
56
58
59
60 // Private Member Functions
61
62 template<class Triangulation, class Type>
63 tmp<Field<Type>> filterFarPoints
64 (
65 const Triangulation& mesh,
66 const Field<Type>& field
67 );
68
69 template<class Triangulation>
71 (
72 const Triangulation& mesh,
73 labelListList& pointPoints
74 );
75
76 template<class Triangulation>
77 autoPtr<mapDistribute> buildReferredMap
78 (
79 const Triangulation& mesh,
80 labelList& indices
81 );
82
83 template<class Triangulation>
84 tmp<triadField> buildAlignmentField(const Triangulation& mesh);
85
86 template<class Triangulation>
87 tmp<pointField> buildPointField(const Triangulation& mesh);
88
89 //- Apply the fixed alignments to the triad
90 void applyBoundaryConditions
91 (
92 const triad& fixedAlignment,
93 triad& t
94 ) const;
95
96 //- No copy construct
98
99 //- No copy assignment
100 void operator=(const smoothAlignmentSolver&) = delete;
101
102
103public:
104
105 // Constructors
106
107 //- Construct null
109
110
111 //- Destructor
113
114
115 // Member Functions
116
117 // Edit
118
119 //- Smooth the alignments on the mesh
120 void smoothAlignments(const label maxSmoothingIterations);
121};
122
123
124// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
125
126} // End namespace Foam
127
128// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129
130#endif
131
132// ************************************************************************* //
Generic templated field type.
Definition: Field.H:82
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: autoPtr.H:66
void smoothAlignments(const label maxSmoothingIterations)
Smooth the alignments on the mesh.
~smoothAlignmentSolver()
Destructor.
smoothAlignmentSolver(cellShapeControlMesh &mesh)
Construct null.
A class for managing temporary objects.
Definition: tmp.H:65
Representation of a 3D Cartesian coordinate system as a Vector of row vectors.
Definition: triad.H:67
rDeltaTY field()
dynamicFvMesh & mesh
Namespace for OpenFOAM.