stepUpdate.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::stepUpdate
31 
32 Description
33  Abstract base class for step update methods used in line search
34 
35 SourceFiles
36  stepUpdate.C
37 
38 \*---------------------------------------------------------------------------*/
39 
40 #ifndef stepUpdate_H
41 #define stepUpdate_H
42 
43 #include "runTimeSelectionTables.H"
44 #include "dictionary.H"
45 
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 
48 namespace Foam
49 {
50 
51 /*---------------------------------------------------------------------------*\
52  Class stepUpdate Declaration
53 \*---------------------------------------------------------------------------*/
54 
55 class stepUpdate
56 {
57 protected:
58 
59  // Protected data
60 
61  const dictionary dict_;
62 
63 
64  // Protected Member Functions
65 
66  //- Optional coeffs dict
67  const dictionary& coeffsDict();
68 
69 
70 private:
71 
72  // Private Member Functions
73 
74  //- No copy construct
75  stepUpdate(const stepUpdate&);
76 
77  //- No copy assignment
78  void operator=(const stepUpdate&);
79 
80 
81 public:
82 
83  //- Runtime type information
84  TypeName("stepUpdate");
85 
86 
87  // Declare run-time constructor selection table
88 
90  (
91  autoPtr,
92  stepUpdate,
93  dictionary,
94  (
95  const dictionary& dict
96  ),
97  (dict)
98  );
99 
100 
101  // Constructors
102 
103  //- Construct from components
104  stepUpdate(const dictionary& dict);
105 
106 
107  // Selectors
108 
109  //- Return a reference to the selected turbulence model
110  static autoPtr<stepUpdate> New(const dictionary& dict);
111 
112 
113  //- Destructor
114  virtual ~stepUpdate() = default;
115 
116 
117  // Member Functions
118 
119  //- Update the line search step
120  virtual void updateStep(scalar& step) = 0;
121 
122  //- Set objective derivative
123  virtual void setDeriv(const scalar deriv);
124 
125  //- Set new merit value
126  virtual void setNewMeritValue(const scalar value);
127 
128  //- Set old merit value
129  virtual void setOldMeritValue(const scalar value);
130 };
131 
132 
133 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
134 
135 } // End namespace Foam
136 
137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
138 
139 #endif
140 
141 // ************************************************************************* //
Foam::stepUpdate::setDeriv
virtual void setDeriv(const scalar deriv)
Set objective derivative.
Definition: stepUpdate.C:85
Foam::stepUpdate::~stepUpdate
virtual ~stepUpdate()=default
Destructor.
Foam::stepUpdate::TypeName
TypeName("stepUpdate")
Runtime type information.
Foam::stepUpdate::New
static autoPtr< stepUpdate > New(const dictionary &dict)
Return a reference to the selected turbulence model.
Definition: stepUpdate.C:59
Foam::stepUpdate::coeffsDict
const dictionary & coeffsDict()
Optional coeffs dict.
Definition: stepUpdate.C:43
Foam::stepUpdate::updateStep
virtual void updateStep(scalar &step)=0
Update the line search step.
Foam::stepUpdate::setNewMeritValue
virtual void setNewMeritValue(const scalar value)
Set new merit value.
Definition: stepUpdate.C:91
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::stepUpdate::setOldMeritValue
virtual void setOldMeritValue(const scalar value)
Set old merit value.
Definition: stepUpdate.C:97
Foam::autoPtr
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: HashPtrTable.H:53
Foam::stepUpdate::dict_
const dictionary dict_
Definition: stepUpdate.H:60
runTimeSelectionTables.H
Macros to ease declaration of run-time selection tables.
dictionary.H
Foam::stepUpdate::declareRunTimeSelectionTable
declareRunTimeSelectionTable(autoPtr, stepUpdate, dictionary,(const dictionary &dict),(dict))
Foam::stepUpdate
Abstract base class for step update methods used in line search.
Definition: stepUpdate.H:54