OpenFOAM: API Guide
v2112
The open source CFD toolbox
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
46
#include "
constrainedOptimisationMethod.H
"
47
48
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49
50
namespace
Foam
51
{
52
53
/*---------------------------------------------------------------------------*\
54
Class constraintProjection Declaration
55
\*---------------------------------------------------------------------------*/
56
57
class
constraintProjection
58
:
59
public
constrainedOptimisationMethod
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
74
constraintProjection
(
const
constraintProjection
&) =
delete
;
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
89
constraintProjection
(
const
fvMesh
&
mesh
,
const
dictionary
&
dict
);
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
src
optimisation
adjointOptimisation
adjoint
optimisation
updateMethod
constraintProjection
constraintProjection.H
Generated by
1.8.17
OPENFOAM® is a registered
trademark
of OpenCFD Ltd.