simplexSmoother.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | cfMesh: A library for mesh generation
4  \\ / O peration |
5  \\ / A nd | Author: Franjo Juretic (franjo.juretic@c-fields.com)
6  \\/ M anipulation | Copyright (C) Creative Fields, Ltd.
7 -------------------------------------------------------------------------------
8 License
9  This file is part of cfMesh.
10 
11  cfMesh is free software; you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by the
13  Free Software Foundation; either version 3 of the License, or (at your
14  option) any later version.
15 
16  cfMesh 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 cfMesh. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  simplexSmoother
26 
27 Description
28  Mesh smoothing without any topological changes. The vertex is put into
29  location which minimises the objective function.
30 
31 SourceFiles
32  simplexSmoother.C
33 
34 \*---------------------------------------------------------------------------*/
35 
36 #ifndef simplexSmoother_H
37 #define simplexSmoother_H
38 
39 #include "point.H"
40 #include "DynList.H"
41 #include "partTet.H"
42 #include "boundBox.H"
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 
49 // Forward declarations
50 class partTetMeshSimplex;
51 
52 /*---------------------------------------------------------------------------*\
53  Class simplexSmoother Declaration
54 \*---------------------------------------------------------------------------*/
55 
56 //- class for volume optimizer
57 class simplexSmoother
58 {
59  protected:
60 
61  // Protected data
62  //- mesh points
64 
65  //- list tets around the given vertex
67 
68  //- label of the point
69  const label pointI_;
70 
71  //- bound box
72  boundBox bb_;
73 
74 private:
75 
76  // Private member functions
77  //- Disallow default bitwise copy construct
79 
80  //- Disallow default bitwise assignment
81  void operator=(const simplexSmoother&);
82 
83  public:
84 
85  // Constructor
86  //- construct from partTetMeshSimplex
88 
89  // Destructor
90  virtual ~simplexSmoother();
91 
92  // Member functions
93  //- improve the position of the centre node
94  virtual void optimizeNodePosition(const scalar tol = 0.001) = 0;
95 };
96 
97 
98 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
99 
100 } // End namespace Foam
101 
102 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
103 
104 #endif
105 
106 // ************************************************************************* //
Foam::partTetMeshSimplex
Definition: partTetMeshSimplex.H:52
point.H
Foam::simplexSmoother::simplexSmoother
simplexSmoother(const simplexSmoother &)
Disallow default bitwise copy construct.
Foam::simplexSmoother::operator=
void operator=(const simplexSmoother &)
Disallow default bitwise assignment.
Foam::label
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
Foam::simplexSmoother
class for volume optimizer
Definition: simplexSmoother.H:56
partTetMeshSimplex
A simplex which is used for smoothing purposes.
Foam::simplexSmoother::points_
DynList< point, 128 > & points_
mesh points
Definition: simplexSmoother.H:62
Foam::simplexSmoother::pointI_
const label pointI_
label of the point
Definition: simplexSmoother.H:68
Foam::simplexSmoother::tets_
const DynList< partTet, 128 > & tets_
list tets around the given vertex
Definition: simplexSmoother.H:65
Foam::simplexSmoother::~simplexSmoother
virtual ~simplexSmoother()
Definition: simplexSmoother.C:76
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::DynList
Definition: DynList.H:53
Foam::simplexSmoother::optimizeNodePosition
virtual void optimizeNodePosition(const scalar tol=0.001)=0
improve the position of the centre node
boundBox.H
Foam::simplexSmoother::bb_
boundBox bb_
bound box
Definition: simplexSmoother.H:71
Foam::boundBox
A bounding box defined in terms of the points at its extremities.
Definition: boundBox.H:55
DynList.H
partTet.H