ArmijoConditions Class Reference

Class satisfying the Armijo line search conditions. More...

Inheritance diagram for ArmijoConditions:
Collaboration diagram for ArmijoConditions:

Public Member Functions

 TypeName ("ArmijoConditions")
 Runtime type information. More...
 
 ArmijoConditions (const dictionary &dict, const Time &time, updateMethod &UpdatheMethod)
 Construct from components. More...
 
virtual ~ArmijoConditions ()=default
 
virtual bool converged ()
 Return the correction of the design variables. More...
 
virtual void updateStep ()
 Update the line search step based on the specific line search strategy, e.g. bisection, quadratic fit, etc. More...
 
- Public Member Functions inherited from lineSearch
 TypeName ("lineSearch")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, lineSearch, dictionary,(const dictionary &dict, const Time &time, updateMethod &UpdateMethod),(dict, time, UpdateMethod))
 
 lineSearch (const dictionary &dict, const Time &time, updateMethod &UpdateMethod)
 Construct from components. More...
 
virtual ~lineSearch ()=default
 Destructor. More...
 
virtual void setDeriv (const scalar deriv)
 Set directional derivative. More...
 
virtual void setNewDeriv (const scalar deriv)
 Set new directional derivative. More...
 
void setDirection (const scalarField &direction)
 Set direction. More...
 
void setNewMeritValue (const scalar value)
 Set new objective value. More...
 
void setOldMeritValue (const scalar value)
 Set old objective value. More...
 
virtual void reset ()
 Reset step to initial value. More...
 
label innerIter () const
 Get inner line search iteration. More...
 
label maxIters () const
 Get max number of iterations. More...
 
scalar step () const
 Get current step. More...
 
virtual void updateStep (const scalar newStep)
 Update the step using the supplied value. More...
 
virtual void updateCorrection (scalarField &correction)
 Update the correction. More...
 
virtual bool loop ()
 Return true if lineSearch should continue and if so increment inner. More...
 
virtual bool computeGradient () const
 Does line search need to update the gradient? More...
 
virtual void postUpdate ()
 Execute steps at the end of the line search iterations. More...
 
virtual lineSearchoperator++ ()
 Increment iteration number and store merit value corresponding to the previous optimisation cycle. More...
 
virtual lineSearchoperator++ (int)
 Postfix increment. Necessary for compilation. More...
 

Protected Attributes

scalar c1_
 Multiplier of the merit function reduction computed using a first-order Taylor expansion. More...
 
- Protected Attributes inherited from lineSearch
const dictionary dict_
 Subdict within updateMethod. More...
 
IOdictionary lineSearchDict_
 IOdictionary under time/uniform for continuation. More...
 
scalar directionalDeriv_
 Directional derivative of the merit function. More...
 
scalarField direction_
 Update direction. More...
 
scalar oldMeritValue_
 Old merit value from this opt cycle. More...
 
scalar newMeritValue_
 New merit value from this opt cycle. More...
 
scalar prevMeritDeriv_
 Merit directional deriv from the previous opt cycle. More...
 
scalar initialStep_
 Correction multiplier at the first step of line search. More...
 
scalar minStep_
 Minimum allowed correction multiplier. More...
 
scalar step_
 Correction multiplier. More...
 
label iter_
 Optimisation cycle. More...
 
label innerIter_
 Inner line search iteration. More...
 
label maxIters_
 Maximum line search iterations. More...
 
bool extrapolateInitialStep_
 Whether to extrapolate the correction multiplier for this optimisation cycle based on the previous ones. More...
 
autoPtr< stepUpdatestepUpdate_
 Mechanism to update method if line search conditions are not set. More...
 
updateMethodupdateMethod_
 Reference to the update method related to the line search. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from lineSearch
static autoPtr< lineSearchNew (const dictionary &dict, const Time &time, updateMethod &UpdateMethod)
 Return a reference to the selected turbulence model. More...
 
- Protected Member Functions inherited from lineSearch
const dictionarycoeffsDict ()
 Optional coeffs dict. More...
 

Detailed Description

Class satisfying the Armijo line search conditions.

Source files

Definition at line 48 of file ArmijoConditions.H.

Constructor & Destructor Documentation

◆ ArmijoConditions()

ArmijoConditions ( const dictionary dict,
const Time time,
updateMethod UpdatheMethod 
)

Construct from components.

Definition at line 43 of file ArmijoConditions.C.

◆ ~ArmijoConditions()

virtual ~ArmijoConditions ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "ArmijoConditions"  )

Runtime type information.

◆ converged()

bool converged ( )
virtual

Return the correction of the design variables.

Implements lineSearch.

Definition at line 56 of file ArmijoConditions.C.

References ArmijoConditions::c1_, DebugInfo, lineSearch::directionalDeriv_, Foam::endl(), lineSearch::newMeritValue_, lineSearch::oldMeritValue_, and lineSearch::step_.

Here is the call graph for this function:

◆ updateStep()

void updateStep ( )
virtual

Update the line search step based on the specific line search strategy, e.g. bisection, quadratic fit, etc.

Implements lineSearch.

Definition at line 72 of file ArmijoConditions.C.

References Foam::endl(), and Foam::Info.

Here is the call graph for this function:

Member Data Documentation

◆ c1_

scalar c1_
protected

Multiplier of the merit function reduction computed using a first-order Taylor expansion.

Definition at line 60 of file ArmijoConditions.H.

Referenced by ArmijoConditions::converged().


The documentation for this class was generated from the following files: