virtual void update()=0
Update design variables.
label nConstraints() const
Get the number of constraints.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Abstract base class for optimisation methods.
virtual void updateHessian()=0
Update approximation of the inverse Hessian.
bool scaleFirstHessian_
Scale the initial unitary Hessian approximation.
virtual bool writeData(Ostream &os) const
Write useful quantities to files.
TypeName("quasiNewton")
Runtime type information.
void computeCorrection()
Compute design variables correction.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Base class for quasi-Newton methods.
A class for handling words, derived from Foam::string.
autoPtr< SquareMatrix< scalar > > Hessian_
The Hessian or its inverse, depending on the deriving class.
scalarField derivativesOld_
The previous derivatives.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
void allocateHessian()
Allocate the Hessian matrix.
OBJstream os(runTime.globalPath()/outputName)
virtual void updateOldCorrection(const scalarField &oldCorrection)
Update old correction. Useful for quasi-Newton methods coupled with line search.
Mesh data needed to do the Finite Volume discretisation.
virtual ~quasiNewton()=default
Destructor.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
label nSteepestDescent_
Number of first steepest descent steps.
scalar etaHessian_
Step for the Newton method.
scalarField correctionOld_
The previous correction.