The quasi-Newton Limited-memory BFGS formula. Keeps nPrevSteps_ of the y and s vectors and approximates the inverse areas through them. Values of 3 < nPrevSteps_ < 20 are suggested. More...
Public Member Functions | |
TypeName ("LBFGS") | |
LBFGS (const fvMesh &mesh, const dictionary &dict) | |
virtual | ~LBFGS ()=default |
void | computeCorrection () |
virtual void | updateOldCorrection (const scalarField &oldCorrection) |
virtual void | write () |
![]() | |
TypeName ("updateMethod") | |
declareRunTimeSelectionTable (autoPtr, updateMethod, dictionary,(const fvMesh &mesh, const dictionary &dict),(mesh, dict)) | |
updateMethod (const fvMesh &mesh, const dictionary &dict) | |
virtual | ~updateMethod ()=default |
void | setObjectiveDeriv (const scalarField &derivs) |
void | setConstraintDeriv (const PtrList< scalarField > &derivs) |
void | setObjectiveValue (const scalar value) |
void | setConstraintValues (const scalarField &values) |
void | setStep (const scalar eta) |
void | setGlobalSum (const bool useGlobalSum) |
scalarField & | returnCorrection () |
void | writeCorrection () |
virtual scalar | computeMeritFunction () |
virtual scalar | meritFunctionDirectionalDerivative () |
bool & | initialEtaSet () |
Protected Member Functions | |
void | allocateMatrices () |
void | pivotFields (PtrList< scalarField > &list, const scalarField &f) |
void | updateVectors () |
void | update () |
void | steepestDescentUpdate () |
void | LBFGSUpdate () |
void | readFromDict () |
![]() | |
const scalarField | leftMult (const scalarField &, const SquareMatrix< scalar > &) |
const scalarField | rightMult (const SquareMatrix< scalar > &, const scalarField &) |
SquareMatrix< scalar > | outerProd (const scalarField &, const scalarField &) |
SquareMatrix< scalar > | inv (SquareMatrix< scalar > A) |
scalar | globalSum (const scalarField &field) |
scalar | globalSum (tmp< scalarField > &tfield) |
dictionary | coeffsDict () |
Protected Attributes | |
scalar | etaHessian_ |
label | nSteepestDescent_ |
labelList | activeDesignVars_ |
label | nPrevSteps_ |
PtrList< scalarField > | y_ |
PtrList< scalarField > | s_ |
scalarField | derivativesOld_ |
scalarField | correctionOld_ |
label | counter_ |
![]() | |
const fvMesh & | mesh_ |
const dictionary | dict_ |
IOdictionary | optMethodIODict_ |
scalarField | objectiveDerivatives_ |
PtrList< scalarField > | constraintDerivatives_ |
scalar | objectiveValue_ |
scalarField | cValues_ |
scalarField | correction_ |
scalarField | cumulativeCorrection_ |
scalar | eta_ |
bool | initialEtaSet_ |
word | correctionFolder_ |
bool | globalSum_ |
Additional Inherited Members | |
![]() | |
static autoPtr< updateMethod > | New (const fvMesh &mesh, const dictionary &dict) |
The quasi-Newton Limited-memory BFGS formula. Keeps nPrevSteps_ of the y and s vectors and approximates the inverse areas through them. Values of 3 < nPrevSteps_ < 20 are suggested.
LBFGS | ( | const fvMesh & | mesh, |
const dictionary & | dict | ||
) |
Definition at line 188 of file LBFGS.C.
References Foam::endl(), and Foam::Info.
|
virtualdefault |
|
protected |
Definition at line 42 of file LBFGS.C.
References LBFGS::activeDesignVars_, Foam::identity(), LBFGS::nPrevSteps_, updateMethod::objectiveDerivatives_, LBFGS::s_, LBFGS::y_, and Foam::Zero.
|
protected |
|
protected |
Definition at line 83 of file LBFGS.C.
References DebugInfo, Foam::endl(), and Foam::nl.
|
protected |
Definition at line 102 of file LBFGS.C.
References Foam::endl(), and Foam::Info.
|
protected |
Definition at line 109 of file LBFGS.C.
References Foam::constant::physicoChemical::b, forAll, gamma, Foam::min(), and Foam::Zero.
|
protected |
Definition at line 164 of file LBFGS.C.
References Foam::identity(), and Foam::Zero.
TypeName | ( | "LBFGS" | ) |
|
virtual |
Implements updateMethod.
Definition at line 232 of file LBFGS.C.
References update().
|
virtual |
Reimplemented from updateMethod.
Definition at line 248 of file LBFGS.C.
References updateMethod::updateOldCorrection().
|
virtual |
Reimplemented from updateMethod.
Definition at line 255 of file LBFGS.C.
References updateMethod::write().
|
protected |
Definition at line 77 of file LBFGS.H.
Referenced by LBFGS::allocateMatrices().
|
protected |
Definition at line 80 of file LBFGS.H.
Referenced by LBFGS::allocateMatrices().
|
protected |
Definition at line 83 of file LBFGS.H.
Referenced by LBFGS::allocateMatrices().
|
protected |
Definition at line 86 of file LBFGS.H.
Referenced by LBFGS::allocateMatrices().
|
protected |
|
protected |
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.