The quasi-Newton Symmetric Rank One formula. More...
Public Member Functions | |
TypeName ("SR1") | |
SR1 (const fvMesh &mesh, const dictionary &dict) | |
virtual | ~SR1 ()=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_ |
scalar | ratioThreshold_ |
labelList | activeDesignVars_ |
SquareMatrix< scalar > | HessianInv_ |
SquareMatrix< scalar > | HessianInvOld_ |
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 Symmetric Rank One formula.
SR1 | ( | const fvMesh & | mesh, |
const dictionary & | dict | ||
) |
Definition at line 152 of file SR1.C.
References SR1::activeDesignVars_, updateMethod::coeffsDict(), Foam::endl(), Foam::Info, and SR1::readFromDict().
|
virtualdefault |
|
protected |
Definition at line 42 of file SR1.C.
References SR1::activeDesignVars_, forAll, SR1::HessianInv_, SR1::HessianInvOld_, Foam::identity(), updateMethod::objectiveDerivatives_, and Foam::Zero.
|
protected |
Definition at line 64 of file SR1.C.
References Foam::endl(), s, Foam::sqr(), Foam::sqrt(), WarningInFunction, y, and Foam::Zero.
|
protected |
Definition at line 95 of file SR1.C.
References Foam::endl(), forAll, Foam::Info, Field::map(), and Foam::Zero.
|
protected |
Definition at line 128 of file SR1.C.
References Foam::identity(), n, and Foam::Zero.
Referenced by SR1::SR1().
TypeName | ( | "SR1" | ) |
|
virtual |
Implements updateMethod.
Definition at line 194 of file SR1.C.
References update().
|
virtual |
Reimplemented from updateMethod.
Definition at line 210 of file SR1.C.
References updateMethod::updateOldCorrection().
|
virtual |
Reimplemented from updateMethod.
Definition at line 217 of file SR1.C.
References updateMethod::write().
|
protected |
Definition at line 68 of file SR1.H.
Referenced by SR1::allocateMatrices(), and SR1::SR1().
|
protected |
Definition at line 72 of file SR1.H.
Referenced by SR1::allocateMatrices().
|
protected |
Definition at line 75 of file SR1.H.
Referenced by SR1::allocateMatrices().
|
protected |
|
protected |
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.