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-------------------------------------------------------------------------------
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
29Class
30 Foam::stepUpdate
31
32Description
33 Abstract base class for step update methods used in line search
34
35SourceFiles
36 stepUpdate.C
37
38\*---------------------------------------------------------------------------*/
39
40#ifndef stepUpdate_H
41#define stepUpdate_H
42
44#include "dictionary.H"
45
46// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47
48namespace Foam
49{
50
51/*---------------------------------------------------------------------------*\
52 Class stepUpdate Declaration
53\*---------------------------------------------------------------------------*/
55class stepUpdate
56{
57protected:
58
59 // Protected data
61 const dictionary dict_;
62
63
64 // Protected Member Functions
65
66 //- Optional coeffs dict
67 const dictionary& coeffsDict();
68
69
70private:
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
81public:
82
83 //- Runtime type information
84 TypeName("stepUpdate");
85
86
87 // Declare run-time constructor selection table
90 (
91 autoPtr,
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// ************************************************************************* //
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: autoPtr.H:66
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
Abstract base class for step update methods used in line search.
Definition: stepUpdate.H:55
declareRunTimeSelectionTable(autoPtr, stepUpdate, dictionary,(const dictionary &dict),(dict))
const dictionary & coeffsDict()
Optional coeffs dict.
Definition: stepUpdate.C:43
virtual void setDeriv(const scalar deriv)
Set objective derivative.
Definition: stepUpdate.C:85
virtual void updateStep(scalar &step)=0
Update the line search step.
virtual void setOldMeritValue(const scalar value)
Set old merit value.
Definition: stepUpdate.C:97
virtual void setNewMeritValue(const scalar value)
Set new merit value.
Definition: stepUpdate.C:91
const dictionary dict_
Definition: stepUpdate.H:60
virtual ~stepUpdate()=default
Destructor.
static autoPtr< stepUpdate > New(const dictionary &dict)
Return a reference to the selected turbulence model.
Definition: stepUpdate.C:59
TypeName("stepUpdate")
Runtime type information.
Namespace for OpenFOAM.
Macros to ease declaration of run-time selection tables.
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes)
dictionary dict
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73