119 void operator=(
const DBFGS&) =
delete;
134 virtual ~DBFGS() =
default;
147 virtual void write();
The quasi-Newton BFGS formula with the dampening proposed by Powell.
void computeCorrection()
Compute design variables correction.
scalar curvatureThreshold_
Curvature threshold.
SquareMatrix< scalar > HessianOld_
The previous Hessian.
void readFromDict()
Read old info from dict.
scalar gamma_
Threshold for damping.
scalarField correctionOld_
The previous correction.
label nSteepestDescent_
Number of first steepest descent steps.
labelList activeDesignVars_
Map to active design variables.
scalar etaHessian_
Step for the Newton method.
label counter_
Optimisation cycle counter.
void allocateMatrices()
Allocate matrices in the first optimisation cycle.
SquareMatrix< scalar > Hessian_
The Hessian. Should have the size of the active design variables.
bool scaleFirstHessian_
Scale the initial unitary Hessian approximation.
scalarField derivativesOld_
The previous derivatives.
virtual ~DBFGS()=default
Destructor.
virtual void write()
Write old info to dict.
virtual void updateOldCorrection(const scalarField &oldCorrection)
TypeName("DBFGS")
Runtime type information.
void update()
Update design variables.
void updateHessian()
Update approximation of the inverse Hessian.
A templated (N x N) square matrix of objects of <Type>, containing N*N elements, derived from Matrix.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Mesh data needed to do the Finite Volume discretisation.
Abstract base class for optimisation methods.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.