The quasi-Newton BFGS formula with the dampening proposed by Powell. More...
Public Member Functions | |
TypeName ("DBFGS") | |
DBFGS (const fvMesh &mesh, const dictionary &dict) | |
virtual | ~DBFGS ()=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 | updateHessian () |
void | update () |
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_ |
bool | scaleFirstHessian_ |
scalar | curvatureThreshold_ |
SquareMatrix< scalar > | Hessian_ |
SquareMatrix< scalar > | HessianOld_ |
scalarField | derivativesOld_ |
scalarField | correctionOld_ |
label | counter_ |
scalar | gamma_ |
![]() | |
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 BFGS formula with the dampening proposed by Powell.
DBFGS | ( | const fvMesh & | mesh, |
const dictionary & | dict | ||
) |
Definition at line 166 of file DBFGS.C.
References Foam::endl(), and Foam::Info.
|
virtualdefault |
|
protected |
Definition at line 42 of file DBFGS.C.
References DBFGS::activeDesignVars_, DBFGS::Hessian_, DBFGS::HessianOld_, Foam::I, Foam::identity(), and updateMethod::objectiveDerivatives_.
|
protected |
Definition at line 60 of file DBFGS.C.
References DebugInfo, Foam::endl(), forAll, Foam::Info, s, WarningInFunction, y, and Foam::Zero.
|
protected |
Definition at line 104 of file DBFGS.C.
References Foam::endl(), forAll, Foam::Info, Foam::inv(), Field::map(), and Foam::Zero.
|
protected |
Definition at line 141 of file DBFGS.C.
References Foam::identity(), n, and Foam::Zero.
TypeName | ( | "DBFGS" | ) |
|
virtual |
Implements updateMethod.
Definition at line 217 of file DBFGS.C.
References update().
|
virtual |
Reimplemented from updateMethod.
Definition at line 233 of file DBFGS.C.
References updateMethod::updateOldCorrection().
|
virtual |
Reimplemented from updateMethod.
Definition at line 240 of file DBFGS.C.
References updateMethod::write().
|
protected |
Definition at line 65 of file DBFGS.H.
Referenced by DBFGS::allocateMatrices().
|
protected |
Definition at line 74 of file DBFGS.H.
Referenced by DBFGS::allocateMatrices().
|
protected |
Definition at line 77 of file DBFGS.H.
Referenced by DBFGS::allocateMatrices().
|
protected |
|
protected |
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.