67 void operator=(
const BFGS&) =
delete;
131 virtual ~BFGS() =
default;
144 virtual void write();
SquareMatrix< scalar > HessianInvOld_
The previous Hessian inverse.
scalarField derivativesOld_
The previous derivatives.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
void allocateMatrices()
Allocate matrices in the first optimisation cycle.
scalar curvatureThreshold_
Curvature threshold.
Abstract base class for optimisation methods.
TypeName("BFGS")
Runtime type information.
virtual void write()
Write old info to dict.
scalarField correctionOld_
The previous correction.
label nSteepestDescent_
Number of first steepest descent steps.
void readFromDict()
Read old info from dict.
void updateHessian()
Update approximation of the inverse Hessian.
virtual ~BFGS()=default
Destructor.
scalar etaHessian_
Step for the Newton method.
void update()
Update design variables.
SquareMatrix< scalar > HessianInv_
The Hessian inverse. Should have the size of the active design variables.
The quasi-Newton BFGS formula.
Mesh data needed to do the Finite Volume discretisation.
bool scaleFirstHessian_
Scale the iniitial unitary Hessian approximation.
labelList activeDesignVars_
Map to active design variables.
virtual void updateOldCorrection(const scalarField &oldCorrection)
Update old correction. Useful for quasi-Newton methods coupled with line search.
label counter_
Optimisation cycle counter.
void computeCorrection()
Compute design variables correction.