constraintProjection.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 -------------------------------------------------------------------------------
12 License
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 
29 Class
30  Foam::constraintProjection
31 
32 Description
33  Update design variables using Rosen's projection method.
34 
35  Can handle multiple constraints.
36  Optionally includes a non-linearity correction
37 
38 SourceFiles
39  constraintProjection.C
40 
41 \*---------------------------------------------------------------------------*/
42 
43 #ifndef constraintProjection_H
44 #define constraintProjection_H
45 
47 
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 
50 namespace Foam
51 {
52 
53 /*---------------------------------------------------------------------------*\
54  Class constraintProjection Declaration
55 \*---------------------------------------------------------------------------*/
56 
58 :
60 {
61 protected:
62 
63  // Protected data
64 
65  //- Correct for non-linearities
66  bool useCorrection_;
67 
68 
69 private:
70 
71  // Private Member Functions
72 
73  //- No copy construct
75 
76  //- No copy assignment
77  void operator=(const constraintProjection&) = delete;
78 
79 
80 public:
81 
82  //- Runtime type information
83  TypeName("constraintProjection");
84 
85 
86  // Constructors
87 
88  //- Construct from components
90 
91 
92  //- Destructor
93  virtual ~constraintProjection() = default;
94 
95 
96  // Member Functions
97 
98  //- Compute design variables correction
99  void computeCorrection();
100 };
101 
102 
103 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
104 
105 } // End namespace Foam
106 
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
108 
109 #endif
110 
111 // ************************************************************************* //
Foam::constraintProjection::~constraintProjection
virtual ~constraintProjection()=default
Destructor.
Foam::constraintProjection
Update design variables using Rosen's projection method.
Definition: constraintProjection.H:56
Foam::constrainedOptimisationMethod
Abstract base class for optimisation methods supporting constraints. Does not add functionality to up...
Definition: constrainedOptimisationMethod.H:55
Foam::constraintProjection::useCorrection_
bool useCorrection_
Correct for non-linearities.
Definition: constraintProjection.H:65
dict
dictionary dict
Definition: searchingEngine.H:14
constrainedOptimisationMethod.H
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
mesh
dynamicFvMesh & mesh
Definition: createDynamicFvMesh.H:6
Foam::fvMesh
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:85
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::constraintProjection::TypeName
TypeName("constraintProjection")
Runtime type information.
Foam::constraintProjection::computeCorrection
void computeCorrection()
Compute design variables correction.
Definition: constraintProjection.C:71