Go to the documentation of this file.
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();
scalar etaHessian_
Step for the Newton method.
SquareMatrix< scalar > Hessian_
A class for handling file names.
List< scalarField > constraintDerivativesOld_
The previous constraint derivatives.
scalarField LagrangianDerivatives_
Derivatives of the Lagrangian function.
scalarField objectiveDerivativesOld_
The previous objective derivatives.
virtual scalar computeMeritFunction()
scalar dumpingThreshold_
Curvature threshold.
label counter_
Optimisation cycle count.
void computeCorrection()
Compute design variables correction.
SquareMatrix< scalar > HessianOld_
The previous Hessian inverse.
virtual ~SQP()=default
Destructor.
Abstract base class for optimisation methods supporting constraints. Does not add functionality to up...
virtual void updateOldCorrection(const scalarField &oldCorrection)
fileName objFunctionFolder_
Name of the objective folder.
scalarField correctionOld_
The previous correction.
labelList activeDesignVars_
Map to active design variables.
scalar mu_
Penalty value for the merit function.
scalar delta_
Safety factor.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
scalarField lamdas_
Lagrange multipliers.
bool scaleFirstHessian_
Scale the initial unitary Hessian approximation.
Mesh data needed to do the Finite Volume discretisation.
virtual void write()
Write useful quantities to files.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
The quasi-Newton SQP formula for constrained optimisation.
autoPtr< OFstream > meritFunctionFile_
File including the l1 merit function.
virtual scalar meritFunctionDirectionalDerivative()
TypeName("SQP")
Runtime type information.