OpenFOAM: API Guide
v2112
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].computeObjectiveSensitivities();
64
}
65
}
66
67
runTime
.printExecutionTime(Info);
68
69
Info
<<
"End\n"
<<
endl
;
70
71
return
0;
72
}
73
74
75
// ************************************************************************* //
adjointBoundaryCondition.H
adjointSolverManager.H
adjointSolver.H
runTime
engineTime & runTime
Definition:
createEngineTime.H:13
createMesh.H
Required Variables.
createTime.H
fvCFD.H
incompressibleAdjointVars.H
incompressibleVars.H
Foam::Info
messageStream Info
Information stream (stdout output on master, null elsewhere)
Foam::endl
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition:
Ostream.H:372
optimisationManager.H
primalSolver.H
setRootCase.H
forAll
#define forAll(list, i)
Loop across all elements in list.
Definition:
stdFoam.H:333
adjointSolverManagers
PtrList< adjointSolverManager > & adjointSolverManagers
Definition:
createFields.H:8
applications
utilities
postProcessing
optimisation
computeSensitivities
computeSensitivities.C
Generated by
1.9.5
OPENFOAM® is a registered
trademark
of OpenCFD Ltd.