68 void operator=(
const LBFGS&) =
delete;
138 virtual ~LBFGS() =
default;
151 virtual void write();
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.
void updateVectors()
Update y and s vectors.
void pivotFields(PtrList< scalarField > &list, const scalarField &f)
void computeCorrection()
Compute design variables correction.
void LBFGSUpdate()
Update based on LBFGS.
void readFromDict()
Read old info from dict.
scalarField correctionOld_
The previous correction.
PtrList< scalarField > s_
The previous correction. Holds nPrevSteps_ fields.
label nSteepestDescent_
Number of first steepest descent steps.
labelList activeDesignVars_
Map to active design variables.
scalar etaHessian_
Step for the Newton method.
label nPrevSteps_
Number of old corrections and grad differences kept.
label counter_
Optimisation cycle counter.
void allocateMatrices()
Allocate matrices in the first optimisation cycle.
scalarField derivativesOld_
The previous derivatives.
virtual void write()
Write old info to dict.
virtual void updateOldCorrection(const scalarField &oldCorrection)
void update()
Update design variables.
void steepestDescentUpdate()
Update based on steepest descent.
virtual ~LBFGS()=default
Destructor.
TypeName("LBFGS")
Runtime type information.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
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.