121 void operator=(
const SQP&) =
delete;
128 void allocateMatrices();
131 void updateHessian();
134 void computeLagrangeMultipliersAndCorrect();
137 void storeOldFields();
156 virtual ~SQP() =
default;
177 virtual void write();
label counter_
Optimisation cycle count.
A class for handling file names.
autoPtr< OFstream > meritFunctionFile_
File including the l1 merit function.
Abstract base class for optimisation methods supporting constraints. Does not add functionality to up...
A list of keyword definitions, which are a keyword followed by a number of values (eg...
TypeName("SQP")
Runtime type information.
virtual ~SQP()=default
Destructor.
scalar etaHessian_
Step for the Newton method.
SquareMatrix< scalar > Hessian_
The Hessian inverse. Should have the size of the active design variables.
labelList activeDesignVars_
Map to active design variables.
scalarField objectiveDerivativesOld_
The previous objective derivatives.
scalar mu_
Penalty value for the merit function.
scalar dumpingThreshold_
Curvature threshold.
bool scaleFirstHessian_
Scale the initial unitary Hessian approximation.
fileName objFunctionFolder_
Name of the objective folder.
void computeCorrection()
Compute design variables correction.
scalarField lamdas_
Lagrange multipliers.
SquareMatrix< scalar > HessianOld_
The previous Hessian inverse.
The quasi-Newton SQP formula for constrained optimisation.
virtual void updateOldCorrection(const scalarField &oldCorrection)
Update old correction. Useful for quasi-Newton methods coupled with line search.
scalarField correctionOld_
The previous correction.
Mesh data needed to do the Finite Volume discretisation.
virtual scalar meritFunctionDirectionalDerivative()
Derivative of the merit function. Could be different than the objective derivative in the presence of...
virtual void write()
Write useful quantities to files.
scalar delta_
Safety factor.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
virtual scalar computeMeritFunction()
Compute merit function. Could be different than the objective in the presence of constraints.
List< scalarField > constraintDerivativesOld_
The previous constraint derivatives.
scalarField LagrangianDerivatives_
Derivatives of the Lagrangian function.