Go to the documentation of this file.
68 void operator=(
const LBFGS&) =
delete;
138 virtual ~LBFGS() =
default;
151 virtual void write();
void readFromDict()
Read old info from dict.
label nSteepestDescent_
Number of first steepest descent steps.
void allocateMatrices()
Allocate matrices in the first optimisation cycle.
void update()
Update design variables.
The quasi-Newton Limited-memory BFGS formula. Keeps nPrevSteps_ of the y and s vectors and approximat...
PtrList< scalarField > y_
The previous differences of derivatives. Holds nPrevSteps_ fields.
scalarField derivativesOld_
The previous derivatives.
Abstract base class for optimisation methods.
virtual void updateOldCorrection(const scalarField &oldCorrection)
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
TypeName("LBFGS")
Runtime type information.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
scalarField correctionOld_
The previous correction.
Mesh data needed to do the Finite Volume discretisation.
label nPrevSteps_
Number of old corrections and grad differences kept.
void steepestDescentUpdate()
Update based on steepest descent.
virtual void write()
Write old info to dict.
virtual ~LBFGS()=default
Destructor.
labelList activeDesignVars_
Map to active design variables.
PtrList< scalarField > s_
The previous correction. Holds nPrevSteps_ fields.
scalar etaHessian_
Step for the Newton method.
void LBFGSUpdate()
Update based on LBFGS.
void pivotFields(PtrList< scalarField > &list, const scalarField &f)
label counter_
Optimisation cycle counter.
void computeCorrection()
Compute design variables correction.
void updateVectors()
Update y and s vectors.