Loading...
Searching...
No Matches
singleRun.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-2023 PCOpt/NTUA
9 Copyright (C) 2013-2023 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\*---------------------------------------------------------------------------*/
29
30#include "singleRun.H"
32
33// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
34
35namespace Foam
36{
38 addToRunTimeSelectionTable(optimisationManager, singleRun, dictionary);
39}
40
41
42// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
43
44Foam::singleRun::singleRun(fvMesh& mesh)
45:
47 cycles_(Zero)
48{
49 initialize();
50 if (designVars_)
51 {
52 designVars_().setInitialValues();
53 }
54}
55
56
57// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
58
63}
64
69}
70
73{
74 return end();
75}
76
77
79{
80 // Force execution of a single loop
81 return cycles_ > 1;
82}
83
84
86{
87 // No update in singleRun cases
88 return false;
89}
90
91
93{
94 // No update in singleRun cases
95}
96
97
98// ************************************************************************* //
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
Mesh data needed to do the Finite Volume discretisation.
Definition fvMesh.H:85
Abstract base class for optimisation methods.
virtual void initialize()
Initialization. Construct primal and adjoint solvers.
autoPtr< designVariables > designVars_
Design variables of the optimisation problem.
Update design variables using steepest descent.
Definition singleRun.H:52
virtual optimisationManager & operator++()
Prefix increment.
Definition singleRun.C:52
virtual void updateDesignVariables()
Update design variables.
Definition singleRun.C:85
virtual bool update()
Whether to update the design variables.
Definition singleRun.C:78
virtual bool checkEndOfLoopAndUpdate()
Return true if end of optimisation run.
Definition singleRun.C:65
virtual bool end()
Return true if end of optimisation run.
Definition singleRun.C:71
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Definition className.H:142
dynamicFvMesh & mesh
Namespace for OpenFOAM.
static constexpr const zero Zero
Global zero (0).
Definition zero.H:127