Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
BFGS Class Reference

The quasi-Newton BFGS formula. More...

Inheritance diagram for BFGS:
Inheritance graph
[legend]
Collaboration diagram for BFGS:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("BFGS")
 
 BFGS (const fvMesh &mesh, const dictionary &dict)
 
virtual ~BFGS ()=default
 
void computeCorrection ()
 
virtual void updateOldCorrection (const scalarField &oldCorrection)
 
virtual void write ()
 
- Public Member Functions inherited from updateMethod
 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)
 
scalarFieldreturnCorrection ()
 
void writeCorrection ()
 
virtual scalar computeMeritFunction ()
 
virtual scalar meritFunctionDirectionalDerivative ()
 
boolinitialEtaSet ()
 

Protected Member Functions

void allocateMatrices ()
 
void updateHessian ()
 
void update ()
 
void readFromDict ()
 
- Protected Member Functions inherited from updateMethod
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 > HessianInv_
 
SquareMatrix< scalar > HessianInvOld_
 
scalarField derivativesOld_
 
scalarField correctionOld_
 
label counter_
 
- Protected Attributes inherited from updateMethod
const fvMeshmesh_
 
const dictionary dict_
 
IOdictionary optMethodIODict_
 
scalarField objectiveDerivatives_
 
PtrList< scalarFieldconstraintDerivatives_
 
scalar objectiveValue_
 
scalarField cValues_
 
scalarField correction_
 
scalarField cumulativeCorrection_
 
scalar eta_
 
bool initialEtaSet_
 
word correctionFolder_
 
bool globalSum_
 

Additional Inherited Members

- Static Public Member Functions inherited from updateMethod
static autoPtr< updateMethodNew (const fvMesh &mesh, const dictionary &dict)
 

Detailed Description

The quasi-Newton BFGS formula.

Source files

Definition at line 50 of file BFGS.H.

Constructor & Destructor Documentation

◆ BFGS()

BFGS ( const fvMesh mesh,
const dictionary dict 
)

Definition at line 162 of file BFGS.C.

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

Here is the call graph for this function:

◆ ~BFGS()

virtual ~BFGS ( )
virtualdefault

Member Function Documentation

◆ allocateMatrices()

void allocateMatrices ( )
protected

Definition at line 42 of file BFGS.C.

References BFGS::activeDesignVars_, BFGS::HessianInv_, BFGS::HessianInvOld_, Foam::I, Foam::identity(), and updateMethod::objectiveDerivatives_.

Here is the call graph for this function:

◆ updateHessian()

void updateHessian ( )
protected

Definition at line 60 of file BFGS.C.

References DebugInfo, Foam::endl(), forAll, Foam::Info, s, Foam::sqr(), WarningInFunction, y, and Foam::Zero.

Here is the call graph for this function:

◆ update()

void update ( )
protected

Definition at line 102 of file BFGS.C.

References Foam::endl(), forAll, Foam::Info, Field::map(), and Foam::Zero.

Here is the call graph for this function:

◆ readFromDict()

void readFromDict ( )
protected

Definition at line 137 of file BFGS.C.

References Foam::identity(), n, and Foam::Zero.

Here is the call graph for this function:

◆ TypeName()

TypeName ( "BFGS"  )

◆ computeCorrection()

void computeCorrection ( )
virtual

Implements updateMethod.

Definition at line 210 of file BFGS.C.

References update().

Here is the call graph for this function:

◆ updateOldCorrection()

void updateOldCorrection ( const scalarField oldCorrection)
virtual

Reimplemented from updateMethod.

Definition at line 226 of file BFGS.C.

References updateMethod::updateOldCorrection().

Here is the call graph for this function:

◆ write()

void write ( )
virtual

Reimplemented from updateMethod.

Definition at line 233 of file BFGS.C.

References updateMethod::write().

Here is the call graph for this function:

Member Data Documentation

◆ etaHessian_

scalar etaHessian_
protected

Definition at line 70 of file BFGS.H.

◆ nSteepestDescent_

label nSteepestDescent_
protected

Definition at line 73 of file BFGS.H.

◆ activeDesignVars_

labelList activeDesignVars_
protected

Definition at line 76 of file BFGS.H.

Referenced by BFGS::allocateMatrices().

◆ scaleFirstHessian_

bool scaleFirstHessian_
protected

Definition at line 79 of file BFGS.H.

◆ curvatureThreshold_

scalar curvatureThreshold_
protected

Definition at line 82 of file BFGS.H.

◆ HessianInv_

SquareMatrix<scalar> HessianInv_
protected

Definition at line 86 of file BFGS.H.

Referenced by BFGS::allocateMatrices().

◆ HessianInvOld_

SquareMatrix<scalar> HessianInvOld_
protected

Definition at line 89 of file BFGS.H.

Referenced by BFGS::allocateMatrices().

◆ derivativesOld_

scalarField derivativesOld_
protected

Definition at line 92 of file BFGS.H.

◆ correctionOld_

scalarField correctionOld_
protected

Definition at line 95 of file BFGS.H.

◆ counter_

label counter_
protected

Definition at line 98 of file BFGS.H.


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