optMeshMovementBezier.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) 2007-2019 PCOpt/NTUA
9 Copyright (C) 2013-2019 FOSS GP
10 Copyright (C) 2019 OpenCFD Ltd.
11-------------------------------------------------------------------------------
12License
13 This file is part of OpenFOAM.
14
15 OpenFOAM is free software: you can redistribute it and/or modify it
16 under the terms of the GNU General Public License as published by
17 the Free Software Foundation, either version 3 of the License, or
18 (at your option) any later version.
19
20 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
21 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
23 for more details.
24
25 You should have received a copy of the GNU General Public License
26 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
27
28
29Class
30 Foam::optMeshMovementBezier
31
32Description
33 Converts NURBS control points update to actual mesh movement
34
35SourceFiles
36 optMeshMovementBezier.C
37
38\*---------------------------------------------------------------------------*/
39
40#ifndef optMeshMovementBezier_H
41#define optMeshMovementBezier_H
42
43#include "optMeshMovement.H"
44#include "Bezier.H"
45
46// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47
48namespace Foam
49{
50
51/*---------------------------------------------------------------------------*\
52 Class optMeshMovementBezier Declaration
53\*---------------------------------------------------------------------------*/
56:
57 public optMeshMovement
58{
59protected:
60
61 // Protected data
62
63 //- Parameterization based on NURBS curves
65
66 //- Boundary movement due to change of NURBS control points
68
69 //- Cumulative change of control points
71
72
73 // Protected Member Functions
74
76
77
78private:
79
80 // Private Member Functions
81
82 //- No copy construct
84
85 //- No copy assignment
86 void operator=(const optMeshMovementBezier&) = delete;
87
88
89public:
90
91 //- Runtime type information
92 TypeName("Bezier");
93
94
95 // Constructors
96
97 //- Construct from components
99 (
100 fvMesh& mesh,
101 const dictionary& dict,
102 const labelList& patchIDs
103 );
104
105
106 //- Destructor
107 virtual ~optMeshMovementBezier() = default;
108
109
110 // Member Functions
111
112 //- Calculates surface mesh movement
113 void moveMesh();
114
115 //- Compute eta value based on max displacement
116 virtual scalar computeEta(const scalarField& correction);
117
118 //- Return active design variables
119 virtual labelList getActiveDesignVariables() const;
120};
121
122
123// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
124
125} // End namespace Foam
126
127// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
128
129#endif
130
131// ************************************************************************* //
Calculation of adjoint based sensitivities for Bezier control points.
Definition: Bezier.H:60
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:91
Converts NURBS control points update to actual mesh movement.
virtual ~optMeshMovementBezier()=default
Destructor.
void moveMesh()
Calculates surface mesh movement.
virtual labelList getActiveDesignVariables() const
Return active design variables.
void computeBoundaryMovement(const scalarField &correction)
TypeName("Bezier")
Runtime type information.
vectorField cumulativeChange_
Cumulative change of control points.
pointVectorField dx_
Boundary movement due to change of NURBS control points.
Bezier Bezier_
Parameterization based on NURBS curves.
virtual scalar computeEta(const scalarField &correction)
Compute eta value based on max displacement.
Abstract base class for translating an update of the design variables into mesh movement.
dynamicFvMesh & mesh
Namespace for OpenFOAM.
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
dictionary dict
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73