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 // ************************************************************************* //
dictionary dict
virtual void setOldMeritValue(const scalar value)
Set old merit value.
Definition: stepUpdate.C:90
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
declareRunTimeSelectionTable(autoPtr, stepUpdate, dictionary,(const dictionary &dict),(dict))
static autoPtr< stepUpdate > New(const dictionary &dict)
Return a reference to the selected turbulence model.
Definition: stepUpdate.C:52
const dictionary & coeffsDict()
Optional coeffs dict.
Definition: stepUpdate.C:36
virtual void updateStep(scalar &step)=0
Update the line search step.
virtual ~stepUpdate()=default
Destructor.
virtual void setDeriv(const scalar deriv)
Set objective derivative.
Definition: stepUpdate.C:78
Abstract base class for step update methods used in line search.
Definition: stepUpdate.H:50
TypeName("stepUpdate")
Runtime type information.
const dictionary dict_
Definition: stepUpdate.H:56
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
Definition: HashPtrTable.H:48
Macros to ease declaration of run-time selection tables.
virtual void setNewMeritValue(const scalar value)
Set new merit value.
Definition: stepUpdate.C:84
Namespace for OpenFOAM.