OpenFOAM
v2312
The open source CFD toolbox
computeSensitivities.C
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
Application
29
computeSensitivities
30
31
Description
32
Computes the sensitivities wrt what is defined in the optimisationDict
33
34
\*---------------------------------------------------------------------------*/
35
36
#include "
fvCFD.H
"
37
#include "
optimisationManager.H
"
38
#include "
primalSolver.H
"
39
#include "
adjointSolver.H
"
40
#include "
incompressibleVars.H
"
41
#include "
incompressibleAdjointVars.H
"
42
#include "
adjointBoundaryCondition.H
"
43
#include "
adjointSolverManager.H
"
44
45
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46
47
int
main(
int
argc,
char
*argv[])
48
{
49
#include "
setRootCase.H
"
50
#include "
createTime.H
"
51
#include "
createMesh.H
"
52
#include "createFields.H"
53
54
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
55
56
forAll
(
adjointSolverManagers
, amI)
57
{
58
PtrList<adjointSolver>& adjointSolvers =
59
adjointSolverManagers
[amI].adjointSolvers();
60
forAll
(adjointSolvers, asI)
61
{
62
adjointSolvers[asI].getObjectiveManager().updateAndWrite();
63
adjointSolvers[asI].
64
computeObjectiveSensitivities(
om
.getDesignVariables());
65
}
66
}
67
68
runTime
.printExecutionTime(
Info
);
69
70
Info
<<
"End\n"
<<
endl
;
71
72
return
0;
73
}
74
75
76
// ************************************************************************* //
fvCFD.H
incompressibleAdjointVars.H
runTime
engineTime & runTime
Definition:
createEngineTime.H:13
Foam::endl
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition:
Ostream.H:531
om
optimisationManager & om
Definition:
createFields.H:6
createTime.H
forAll
#define forAll(list, i)
Loop across all elements in list.
Definition:
stdFoam.H:421
primalSolver.H
adjointSolverManager.H
adjointBoundaryCondition.H
createMesh.H
Required Classes.
setRootCase.H
Foam::Info
messageStream Info
Information stream (stdout output on master, null elsewhere)
optimisationManager.H
incompressibleVars.H
adjointSolverManagers
PtrList< adjointSolverManager > & adjointSolverManagers
Definition:
createFields.H:8
adjointSolver.H
applications
utilities
postProcessing
optimisation
computeSensitivities
computeSensitivities.C
Generated by
1.8.14