100 quasiNewton(
const quasiNewton&) =
delete;
103 void operator=(
const quasiNewton&) =
delete;
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
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.
void computeCorrection()
Compute design variables correction.
scalarField correctionOld_
The previous correction.
autoPtr< SquareMatrix< scalar > > Hessian_
The Hessian or its inverse, depending on the deriving class.
virtual bool writeData(Ostream &os) const
Write useful quantities to files.
virtual ~quasiNewton()=default
Destructor.
label nSteepestDescent_
Number of first steepest descent steps.
virtual void updateHessian()=0
Update approximation of the inverse Hessian.
scalar etaHessian_
Step for the Newton method.
virtual void update()=0
Update design variables.
bool scaleFirstHessian_
Scale the initial unitary Hessian approximation.
scalarField derivativesOld_
The previous derivatives.
TypeName("quasiNewton")
Runtime type information.
virtual void updateOldCorrection(const scalarField &oldCorrection)
Update old correction. Useful for quasi-Newton methods coupled with line search.
void allocateHessian()
Allocate the Hessian matrix.
label nConstraints() const
Get the number of constraints.
A class for handling words, derived from Foam::string.
OBJstream os(runTime.globalPath()/outputName)
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.